bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnulib-tool: fix filelist for AIX, HP-UX ksh


From: Ralf Wildenhues
Subject: Re: gnulib-tool: fix filelist for AIX, HP-UX ksh
Date: Sun, 17 Jan 2010 08:42:47 +0100
User-agent: Mutt/1.5.20 (2009-10-28)

Hi Bruno,

* Bruno Haible wrote on Sun, Jan 17, 2010 at 04:59:05AM CET:
> Ralf Wildenhues wrote:
> > AIX and HP-UX ksh do not like expanding an empty variable in a
> > double-quoted shell case pattern:

> > The fix is to simply avoid the quotes.  I added a documentation note
> > of caution
> 
> It's ugly, but with good comments it's OK. Can you add a comment explaining
> the rationale of omitting the double-quotes very near? Rationales belong
> in comments, not (only) in the ChangeLog entry.

I've added a comment before the first instance, as below, and pushed
this patch and the other two, after modifying as you suggested.

Thanks for the quick review!

Cheers,
Ralf

2010-01-17  Ralf Wildenhues  <address@hidden>

        gnulib-tool: fix filelist for AIX, HP-UX ksh.
        * gnulib-tool (func_filter_filelist): Do not quote possibly-empty
        variables in shell case patterns, for AIX and HP-UX ksh.

diff --git a/gnulib-tool b/gnulib-tool
index 96578ee..ce1bbe9 100755
--- a/gnulib-tool
+++ b/gnulib-tool
@@ -1428,6 +1428,7 @@ func_get_filelist ()
 # elements starting with prefix and ending with suffix are considered.
 # Processing: removed_prefix and removed_suffix are removed from each element,
 # added_prefix and added_suffix are added to each element.
+# prefix, suffix should not contain shell-special characters.
 # removed_prefix, removed_suffix should not contain the characters "$`\{}[]^|.
 # added_prefix, added_suffix should not contain the characters \|&.
 func_filter_filelist ()
@@ -1439,8 +1440,10 @@ func_filter_filelist ()
         }; then
     ffflist=
     for fff in $3; do
+      # Do not quote possibly-empty parameters in case patterns,
+      # AIX and HP-UX ksh won't match them if they are empty.
       case "$fff" in
-        "$4"*"$5")
+        $4*$5)
           if test -n "$6"; then
             func_remove_prefix fff "$6"
           fi
@@ -1460,7 +1463,7 @@ func_filter_filelist ()
     sed_fff_filter="s|^$6\(.*\)$7\$|$8\\1$9|"
     ffflist=`for fff in $3; do
                case "$fff" in
-                 "$4"*"$5") echo "$fff" ;;
+                 $4*$5) echo "$fff" ;;
                esac
              done | sed -e "$sed_fff_filter"`
   fi




reply via email to

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