* fnmatch.c (L_): Renamed from L, to work around a bug in
[gnulib.git] / gnulib-tool
index 45c1449..362de0e 100755 (executable)
@@ -22,7 +22,7 @@
 
 progname=$0
 package=gnulib
-cvsdatestamp='$Date: 2006-01-19 09:05:56 $'
+cvsdatestamp='$Date: 2006-01-26 12:51:48 $'
 last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 
@@ -152,7 +152,7 @@ func_tmpdir ()
   {
     # Use the mktemp program if available. If not available, hide the error
     # message.
-    tmp=`(umask 077 && mktemp -d -q "$TMPDIR/glXXXXXX") 2>/dev/null` &&
+    tmp=`(umask 077 && mktemp -d "$TMPDIR/glXXXXXX") 2>/dev/null` &&
     test -n "$tmp" && test -d "$tmp"
   } ||
   {
@@ -1080,7 +1080,8 @@ func_import ()
     echo "$g""$delimiter""$f"
   done | LC_ALL=C sort > "$tmp"/new-files
   # First the files that are in old-files, but not in new-files:
-  for g in `LC_ALL=C join -t"$delimiter" -v1 "$tmp"/old-files "$tmp"/new-files | sed -e 's,'"$delimiter"'.*,,'`; do
+  sed_take_first_column='s,'"$delimiter"'.*,,'
+  for g in `LC_ALL=C join -t"$delimiter" -v1 "$tmp"/old-files "$tmp"/new-files | sed -e "$sed_take_first_column"`; do
     # Remove the file. Do nothing if the user already removed it.
     if test -f "$destdir/$g"; then
       if $doit; then
@@ -1150,8 +1151,9 @@ func_import ()
     rm -f "$destdir/$g.tmp"
   }
   # Then the files that are in new-files, but not in old-files:
+  sed_take_last_column='s,^.*'"$delimiter"',,'
   already_present=
-  for f in `LC_ALL=C join -t"$delimiter" -v2 "$tmp"/old-files "$tmp"/new-files | sed -e 's,'^.*"$delimiter"',,'`; do
+  for f in `LC_ALL=C join -t"$delimiter" -v2 "$tmp"/old-files "$tmp"/new-files | sed -e "$sed_take_last_column"`; do
     case "$f" in
       build-aux/*) g=`echo "$f" | sed -e "s,^build-aux/,$auxdir/,"` ;;
       lib/*) g=`echo "$f" | sed -e "s,^lib/,$sourcebase/,"` ;;
@@ -1163,7 +1165,7 @@ func_import ()
   done
   # Then the files that are in new-files and in old-files:
   already_present=true
-  for f in `LC_ALL=C join -t"$delimiter" "$tmp"/old-files "$tmp"/new-files | sed -e 's,'^.*"$delimiter"',,'`; do
+  for f in `LC_ALL=C join -t"$delimiter" "$tmp"/old-files "$tmp"/new-files | sed -e "$sed_take_last_column"`; do
     case "$f" in
       build-aux/*) g=`echo "$f" | sed -e "s,^build-aux/,$auxdir/,"` ;;
       lib/*) g=`echo "$f" | sed -e "s,^lib/,$sourcebase/,"` ;;
@@ -1174,7 +1176,13 @@ func_import ()
     func_add_or_update
   done
   rm -rf "$tmp"
-  trap - 0 1 2 3 15
+  # Undo the effect of the previous 'trap' command. Some shellology:
+  # We cannot use "trap - 0 1 2 3 15", because Solaris sh would attempt to
+  # execute the command "-". "trap '' ..." is fine only for signal 0 (= normal
+  # exit); for the others we need to call 'exit' explicitly. The value of $? is
+  # 128 + signal number and is set before the trap-registered command is run.
+  trap '' 0
+  trap 'exit $?' 1 2 3 15
 
   # Command-line invocation printed in a comment in generated gnulib-cache.m4.
   actioncmd="gnulib-tool --import"