aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2015-10-10 18:03:49 -0700
committerPaul Eggert2015-10-10 18:11:27 -0700
commit29dfca23553b9995a8ec3b50090a652a6a0ecb01 (patch)
treea5d968df7cadd8259e029d89e6150dfe6762cb96 /src
parentec0d4d24fd11b5040de9f7657b486c3b1e743071 (diff)
downloademacs-29dfca23553b9995a8ec3b50090a652a6a0ecb01.tar.gz
emacs-29dfca23553b9995a8ec3b50090a652a6a0ecb01.zip
Use ‘echo’ safely with ‘\’ or leading ‘-’
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’.
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 1fb770d6657..f73575938d3 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -443,7 +443,7 @@ all: emacs$(EXEEXT) $(OTHER_FILES)
443shortlisp = 443shortlisp =
444lisp.mk: $(lispsource)/loadup.el 444lisp.mk: $(lispsource)/loadup.el
445 @rm -f $@ 445 @rm -f $@
446 ${AM_V_GEN}( echo "shortlisp = \\"; \ 446 ${AM_V_GEN}( printf 'shortlisp = \\\n'; \
447 sed -n 's/^[ \t]*(load "\([^"]*\)".*/\1/p' $< | \ 447 sed -n 's/^[ \t]*(load "\([^"]*\)".*/\1/p' $< | \
448 sed -e 's/$$/.elc \\/' -e 's/\.el\.elc/.el/'; \ 448 sed -e 's/$$/.elc \\/' -e 's/\.el\.elc/.el/'; \
449 echo "" ) > $@ 449 echo "" ) > $@