bug-gnulib
[Top][All Lists]
Advanced

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

gnulib-tool nits


From: Ralf Wildenhues
Subject: gnulib-tool nits
Date: Fri, 22 Jun 2007 20:24:26 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

Another rough pass over gnulib-tool's tendency to spawn more processes
than it needs to.  OK to install?

Note the IFS initialization is needed because POSIX allows shells to
have it unset at script start, in which case field splitting is required
to work as if IFS was set properly, but it would break the IFS=$save_IFS
restoration done later.  Some dash version present on older RedHat
systems exposed this issue.

Cheers,
Ralf

        * gnulib-tool (IFS): Initialize early, so we don't set it to
        empty later.
        (self_abspathname): Rewrite algorithm to set it, reindent.
        (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am)
        (func_create_megatestdir): Merge some sed scripts.

Index: gnulib-tool
===================================================================
RCS file: /cvsroot/gnulib/gnulib/gnulib-tool,v
retrieving revision 1.234
diff -u -r1.234 gnulib-tool
--- gnulib-tool 22 Jun 2007 18:16:40 -0000      1.234
+++ gnulib-tool 22 Jun 2007 18:20:49 -0000
@@ -27,6 +27,7 @@
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 nl='
 '
+IFS=" ""       $nl"
 
 # You can set AUTOCONFPATH to empty if autoconf 2.57 is already in your PATH.
 AUTOCONFPATH=
@@ -739,16 +740,23 @@
 case "$0" in
   /*) self_abspathname="$0" ;;
   */*) self_abspathname=`pwd`/"$0" ;;
-  *) for d in `echo ":$PATH:" | sed -e 's/:::*/:.:/g' | sed -e 's/:/ /g'`; do
-       if test -x "$d/$0" && test ! -d "$d/$0"; then
-         self_abspathname="$d/$0"
-         break
-       fi
-     done
-     if test -z "$self_abspathname"; then
-       func_fatal_error "could not locate the gnulib-tool program - how did 
you invoke it?"
-     fi
-     ;;
+  *)
+  
+  save_IFS=$IFS
+  IFS=:
+  for d in $PATH; do
+    IFS=$save_IFS
+    test -z "$d" && d=.
+    if test -x "$d/$0" && test ! -d "$d/$0"; then
+      self_abspathname=$d/$0
+      break
+    fi
+  done
+  IFS=$save_IFS
+  if test -z "$self_abspathname"; then
+    func_fatal_error "could not locate the gnulib-tool program - how did you 
invoke it?"
+  fi
+  ;;
 esac
 while test -h "$self_abspathname"; do
   # Resolve symbolic link.
@@ -1256,12 +1264,12 @@
         {
           func_get_automake_snippet "$module" |
             sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \
-                -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' |
-            sed -e "$sed_eliminate_LDFLAGS" |
-            sed -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' |
-            sed -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
-                -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' |
-            sed -e "$sed_transform_check_PROGRAMS"
+                -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' \
+                -e "$sed_eliminate_LDFLAGS" \
+                -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' \
+                -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
+                -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' \
+                -e "$sed_transform_check_PROGRAMS"
           if test "$module" = 'alloca'; then
             echo "${libname}_${libext}_LIBADD += @${perhapsLT}ALLOCA@"
             echo "${libname}_${libext}_DEPENDENCIES += @${perhapsLT}ALLOCA@"
@@ -1401,12 +1409,12 @@
         {
           func_get_automake_snippet "$module" |
             sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \
-                -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' |
-            sed -e "$sed_eliminate_LDFLAGS" |
-            sed -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' |
-            sed -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
-                -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' |
-            sed -e "$sed_transform_check_PROGRAMS"
+                -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' \
+                -e "$sed_eliminate_LDFLAGS" \
+                -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' \
+                -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
+                -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' \
+                -e "$sed_transform_check_PROGRAMS"
         } > amsnippet.tmp
         # Skip the contents if its entirely empty.
         if grep '[^     ]' amsnippet.tmp > /dev/null ; then
@@ -2901,8 +2909,8 @@
                    -e 's,October,10,'   -e 's,Oct,10,' \
                    -e 's,November,11,'  -e 's,Nov,11,' \
                    -e 's,December,12,'  -e 's,Dec,12,' \
-             | sed -e 's,^,00,' | sed -e 's,^[0-9]*\([0-9][0-9] \),\1,' \
-             | sed -e 's,^\([0-9]*\) \([0-9]*\) \([0-9]*\),\3\2\1,'`
+                   -e 's,^,00,'         -e 's,^[0-9]*\([0-9][0-9] \),\1,' \
+                   -e 's,^\([0-9]*\) \([0-9]*\) \([0-9]*\),\3\2\1,'`
   (echo '#!/bin/sh'
    echo "CVSDATE=$cvsdate"
    echo "test -d logs || mkdir logs"




reply via email to

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