From 29dfca23553b9995a8ec3b50090a652a6a0ecb01 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 10 Oct 2015 18:03:49 -0700 Subject: =?UTF-8?q?Use=20=E2=80=98echo=E2=80=99=20safely=20with=20?= =?UTF-8?q?=E2=80=98\=E2=80=99=20or=20leading=20=E2=80=98-=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit POSIX says that ‘echo FOO’ produces implementation-defined output if FOO contains leading ‘-’, or ‘\’ anywhere, so don’t assume GNU behavior in that case. * Makefile.in (removenullpaths): Remove. (epaths-force): Rewrite to avoid the need for ‘echo’. (install-etc): Be clearer about escaping the shell metacharacters ‘\’ and ‘$’. * Makefile.in (install-arch-indep, install-etcdoc): * admin/charsets/mapconv, admin/merge-gnulib, admin/merge-pkg-config: * admin/quick-install-emacs, build-aux/gitlog-to-emacslog: * configure.ac, lib-src/rcs2log, make-dist: * src/Makefile.in (lisp.mk): Don’t assume ‘echo’ outputs ‘\’ and leading ‘-’ unscathed. For example, use ‘printf '%s\n' "$foo"’ rather than ‘echo "$foo"’ if $foo can contain arbitrary characters. * lisp/Makefile.in (TAGS): Use ‘ls’, not ‘echo’, to avoid ‘\’ issues. * doc/lispref/two-volume.make (vol1.pdf): * test/etags/make-src/Makefile (web ftp publish): Use ‘printf’ rather than ‘echo -e’. --- admin/charsets/mapconv | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'admin/charsets') diff --git a/admin/charsets/mapconv b/admin/charsets/mapconv index 32ba6421a86..3747ae2ad77 100755 --- a/admin/charsets/mapconv +++ b/admin/charsets/mapconv @@ -64,7 +64,7 @@ case "$3" in KANJI-DATABASE) SOURCE="http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4";; *) - echo "Unknown file type: $3"; + printf 'Unknown file type: %s\n' "$3" exit 1;; esac @@ -147,7 +147,6 @@ elif [ "$3" = "KANJI-DATABASE" ] ; then | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ | sort | ${AWKPROG} else - echo "Invalid arguments: $3" + printf 'Invalid arguments: %s\n' "$3" exit 1 fi - -- cgit v1.2.1