[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Failure running gnulib-tool update on z/OS
From: |
Paul Eggert |
Subject: |
Re: Failure running gnulib-tool update on z/OS |
Date: |
Thu, 2 Jun 2022 17:22:11 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 |
On 5/30/22 20:55, Mike Fulton wrote:
/bin/sh gnulib/gnulib-tool –update
The error is on line 1571, where the z/OS shell (an older POSIX ‘sh’) issues:
FSUM7728 bad ${} modifier
I must be missing context, as current gnulib/gnulib-tool's line 1571
says "autoconf_minversion=" which doesn't have anything to do with ${}
modifiers. And although I do see the following code starting on line
1966, I don't see how the failure occurs because the funny ${} modifier
is inside a single-quoted string that should not be eval'ed.
Is the problem that the z/OS shell accepts ${f//o/e} but rejects
${1//[!a-zA-Z0-9_]/_}? If so, the fix to gnulib-tool should be simple.
-----
if (f=foo; eval echo '${f//o/e}') < /dev/null 2>/dev/null | grep
fee >/dev/null; then
# Bash 2.0 and newer, ksh, and zsh support the syntax
# ${param//pattern/replacement}
# as a shorthand for
# `echo "$param" | sed -e "s/pattern/replacement/g"`.
# Note: The 'eval' is necessary for dash and NetBSD /bin/sh.
eval 'func_cache_var ()
{
cachevar=c_${1//[!a-zA-Z0-9_]/_}
}'
else
func_cache_var ()
{
case $1 in
*[!a-zA-Z0-9_]*)
cachevar=c_`echo "$1" | LC_ALL=C sed -e
's/[^a-zA-Z0-9_]/_/g'` ;;
*)
cachevar=c_$1 ;;
esac
}
fi
- Re: Failure running gnulib-tool update on z/OS,
Paul Eggert <=