bug-gnulib
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]