automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-188-g


From: Ralf Wildenhues
Subject: [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-188-gb268a1f
Date: Sat, 21 Aug 2010 05:42:25 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=b268a1f605ba5eb00d15c6e169d535633fa3d39b

The branch, maint has been updated
       via  b268a1f605ba5eb00d15c6e169d535633fa3d39b (commit)
      from  999865553137b48a0770b5073cfd4f91c1e49593 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b268a1f605ba5eb00d15c6e169d535633fa3d39b
Author: Ralf Wildenhues <address@hidden>
Date:   Sat Aug 21 07:27:12 2010 +0200

    Improve robustness of mdate-sh script.
    
    * lib/mdate-sh: Sanitize zsh behavior on startup, to ensure
    $ls_command is word-split properly upon invocation.
    (error): New function.
    (main): Use it.  Improve error checking to avoid endless loop
    in case $ls_command gave bogus output.  Fix eval quotation.
    * tests/mdate6.test: New test, to expose eval quotation error.
    * tests/Makefile.am: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                        |   11 +++++++++++
 lib/mdate-sh                     |   23 +++++++++++++++++++++--
 tests/Makefile.am                |    1 +
 tests/Makefile.in                |    1 +
 tests/{all2.test => mdate6.test} |   21 +++++++++++----------
 5 files changed, 45 insertions(+), 12 deletions(-)
 copy tests/{all2.test => mdate6.test} (67%)

diff --git a/ChangeLog b/ChangeLog
index 934eba6..98011dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-21  Ralf Wildenhues  <address@hidden>
+
+       Improve robustness of mdate-sh script.
+       * lib/mdate-sh: Sanitize zsh behavior on startup, to ensure
+       $ls_command is word-split properly upon invocation.
+       (error): New function.
+       (main): Use it.  Improve error checking to avoid endless loop
+       in case $ls_command gave bogus output.  Fix eval quotation.
+       * tests/mdate6.test: New test, to expose eval quotation error.
+       * tests/Makefile.am: Update.
+
 2010-08-18  Stefano Lattarini  <address@hidden>
 
        Fix potential regressions in depcomp{3,5}.test.
diff --git a/lib/mdate-sh b/lib/mdate-sh
index c477512..60dc485 100755
--- a/lib/mdate-sh
+++ b/lib/mdate-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # Get modification time of a file or directory and pretty-print it.
 
-scriptversion=2010-02-22.21; # UTC
+scriptversion=2010-08-21.06; # UTC
 
 # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009, 2010
 # Free Software Foundation, Inc.
@@ -29,6 +29,15 @@ scriptversion=2010-02-22.21; # UTC
 # bugs to <address@hidden> or send patches to
 # <address@hidden>.
 
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+fi
+
 case $1 in
   '')
      echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
@@ -51,6 +60,13 @@ EOF
     ;;
 esac
 
+error ()
+{
+  echo "$0: $1" >&2
+  exit 1
+}
+
+
 # Prevent date giving response in another language.
 LANG=C
 export LANG
@@ -100,6 +116,7 @@ month=
 command=
 until test $month
 do
+  test $# -gt 0 || error "failed parsing \`$ls_command /' output"
   shift
   # Add another shift to the command.
   command="$command shift;"
@@ -119,8 +136,10 @@ do
   esac
 done
 
+test -n "$month" || error "failed parsing \`$ls_command /' output"
+
 # Get the extended ls output of the file or directory.
-set dummy x`eval "$ls_command \"\$save_arg1\""`
+set dummy x`eval "$ls_command \"\\\$save_arg1\""`
 
 # Remove all preceding arguments
 eval $command
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0558149..3ecc341 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -474,6 +474,7 @@ mdate2.test \
 mdate3.test \
 mdate4.test \
 mdate5.test \
+mdate6.test \
 missing.test \
 missing2.test \
 missing3.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index a06026e..4671ad0 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -712,6 +712,7 @@ mdate2.test \
 mdate3.test \
 mdate4.test \
 mdate5.test \
+mdate6.test \
 missing.test \
 missing2.test \
 missing3.test \
diff --git a/tests/all2.test b/tests/mdate6.test
similarity index 67%
copy from tests/all2.test
copy to tests/mdate6.test
index 38b6f8c..e7f7d69 100755
--- a/tests/all2.test
+++ b/tests/mdate6.test
@@ -14,21 +14,22 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Test to make sure all-local and other -local targets work correctly.
+# mdate-sh can work with weird file names, doesn't eval too much.
 
 . ./defs || Exit 1
 
 set -e
 
-$ACLOCAL
+a=
+file='file  name $a'
+( : > "$file" ) || Exit 77
 
-targets='all install-exec install-data uninstall'
-for target in $targets; do
-  : Doing $target
-  echo "${target}-local:" > Makefile.am
-  $AUTOMAKE
-  grep "${target}-local ${target}-local" Makefile.in && Exit 1
-  grep "${target}-am:.*${target}-local" Makefile.in
-done
+cp "$testsrcdir"/../lib/mdate-sh .
+$SHELL ./mdate-sh "$file" >stdout 2>stderr ||
+  { cat stdout; cat stderr >&2; Exit 1; }
+cat stdout
+cat stderr >&2
+grep '[12][0-9]\{3\}' stdout
+test ! -s stderr
 
 :


hooks/post-receive
-- 
GNU Automake



reply via email to

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