Make install-sh work even when names contain spaces or
authorJim Meyering <jim@meyering.net>
Sun, 10 Nov 2002 14:24:01 +0000 (14:24 +0000)
committerJim Meyering <jim@meyering.net>
Sun, 10 Nov 2002 14:24:01 +0000 (14:24 +0000)
certain (but not all) shell metachars.

* lib/install-sh: Remove lots of unnecessary quoting.
Add double quotes where necessary.
Write diagnostics to stderr, not stdout.
Normalize spacing in diagnostics: use one space (not two,
and not a TAB) after the leading `install:'.
Remove trailing white space.
Remove unnecessary curly braces.
If removing the destination fails, also try to move it aside.
Use `trap' more portably.
* tests/installsh2.test: New file, to test for the above fix.
* tests/Makefile.am (TESTS): Add installsh2.test.

ChangeLog
tests/installsh2.test [new file with mode: 0755]

index 5ef9e91..87f54cd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2002-11-09  Jim Meyering  <jim@meyering.net>
 
+       Make install-sh work even when names contain spaces or
+       certain (but not all) shell metachars.
+
+       * lib/install-sh: Remove lots of unnecessary quoting.
+       Add double quotes where necessary.
+       Write diagnostics to stderr, not stdout.
+       Normalize spacing in diagnostics: use one space (not two,
+       and not a TAB) after the leading `install:'.
+       Remove trailing white space.
+       Remove unnecessary curly braces.
+       If removing the destination fails, also try to move it aside.
+       Use `trap' more portably.
+       * tests/installsh2.test: New file, to test for the above fix.
+       * tests/Makefile.am (TESTS): Add installsh2.test.
+
        * automake.texi: Fix some typos and a grammar nit.
 
 2002-11-07  Alexandre Duret-Lutz  <adl@gnu.org>
diff --git a/tests/installsh2.test b/tests/installsh2.test
new file mode 100755 (executable)
index 0000000..d2eebf9
--- /dev/null
@@ -0,0 +1,28 @@
+#! /bin/sh
+# Copyright (C) 2002  Free Software Foundation, Inc.
+#
+# This file is part of GNU Automake.
+#
+# GNU Automake is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Automake is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with autoconf; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Ensure that install-sh works with names that include spaces
+
+. ./defs || exit 1
+
+touch 'a b'
+mkdir 'x y' || exit 1
+/bin/sh install-sh 'a b' 'x y' || exit 1
+test -f x\ y/a\ b