gnulib-tool: fix filelist for AIX, HP-UX ksh.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sun, 17 Jan 2010 00:07:00 +0000 (01:07 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sun, 17 Jan 2010 07:37:54 +0000 (08:37 +0100)
* gnulib-tool (func_filter_filelist): Do not quote possibly-empty
variables in shell case patterns, for AIX and HP-UX ksh.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ChangeLog
gnulib-tool

index aa16cc3..e3498fa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2010-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       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.
+
        Split large sed scripts, for HP-UX sed.
        * modules/stdio: Split sed scripts around 50 sed commands,
        to avoid HP-UX limit of 99 commands, in the near future.
index 96578ee..ce1bbe9 100755 (executable)
@@ -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