diff options
| author | Paul Eggert | 2015-10-10 18:03:49 -0700 |
|---|---|---|
| committer | Paul Eggert | 2015-10-10 18:11:27 -0700 |
| commit | 29dfca23553b9995a8ec3b50090a652a6a0ecb01 (patch) | |
| tree | a5d968df7cadd8259e029d89e6150dfe6762cb96 | |
| parent | ec0d4d24fd11b5040de9f7657b486c3b1e743071 (diff) | |
| download | emacs-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’.
| -rw-r--r-- | Makefile.in | 25 | ||||
| -rwxr-xr-x | admin/charsets/mapconv | 5 | ||||
| -rwxr-xr-x | admin/merge-gnulib | 6 | ||||
| -rwxr-xr-x | admin/merge-pkg-config | 6 | ||||
| -rwxr-xr-x | admin/quick-install-emacs | 34 | ||||
| -rwxr-xr-x | build-aux/gitlog-to-emacslog | 10 | ||||
| -rw-r--r-- | configure.ac | 158 | ||||
| -rw-r--r-- | doc/lispref/two-volume.make | 47 | ||||
| -rwxr-xr-x | lib-src/rcs2log | 20 | ||||
| -rw-r--r-- | lisp/Makefile.in | 9 | ||||
| -rw-r--r-- | lisp/term.el | 86 | ||||
| -rwxr-xr-x | make-dist | 24 | ||||
| -rw-r--r-- | src/Makefile.in | 2 | ||||
| -rw-r--r-- | test/etags/make-src/Makefile | 8 |
14 files changed, 205 insertions, 235 deletions
diff --git a/Makefile.in b/Makefile.in index 4ee84f96ad6..1245f76fabf 100644 --- a/Makefile.in +++ b/Makefile.in | |||
| @@ -314,8 +314,6 @@ etc-emacsver: | |||
| 314 | ${srcdir}/build-aux/move-if-change emacsver.tex.$$$$ \ | 314 | ${srcdir}/build-aux/move-if-change emacsver.tex.$$$$ \ |
| 315 | ${srcdir}/etc/refcards/emacsver.tex | 315 | ${srcdir}/etc/refcards/emacsver.tex |
| 316 | 316 | ||
| 317 | removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g' | ||
| 318 | |||
| 319 | # Generate epaths.h from epaths.in. This target is invoked by 'configure'. | 317 | # Generate epaths.h from epaths.in. This target is invoked by 'configure'. |
| 320 | # See comments in configure.ac for why it is done this way, as opposed | 318 | # See comments in configure.ac for why it is done this way, as opposed |
| 321 | # to just letting configure generate epaths.h from epaths.in in a | 319 | # to just letting configure generate epaths.h from epaths.in in a |
| @@ -324,20 +322,18 @@ epaths-force: | |||
| 324 | @for dir in '$(abs_srcdir)' '$(lispdir)' '$(archlibdir)'; do \ | 322 | @for dir in '$(abs_srcdir)' '$(lispdir)' '$(archlibdir)'; do \ |
| 325 | case $$dir in \ | 323 | case $$dir in \ |
| 326 | *:*) \ | 324 | *:*) \ |
| 327 | echo >&2 "Build or installation directory '$$dir'"; \ | 325 | printf >&2 "Build or installation directory '%s'\\n" "$$dir"; \ |
| 328 | echo >&2 "cannot contain ':'."; \ | 326 | echo >&2 "cannot contain ':'."; \ |
| 329 | exit 1;; \ | 327 | exit 1;; \ |
| 330 | esac; \ | 328 | esac; \ |
| 331 | done | 329 | done |
| 332 | @(standardlisppath=`echo "${standardlisppath}" | ${removenullpaths}` ; \ | 330 | @(gamedir='${gamedir}'; \ |
| 333 | locallisppath=`echo "${locallisppath}" | ${removenullpaths}` ; \ | ||
| 334 | buildlisppath=`echo "${buildlisppath}" | ${removenullpaths}` ; \ | ||
| 335 | x_default_search_path=`echo ${x_default_search_path}`; \ | ||
| 336 | gamedir=`echo ${gamedir}`; \ | ||
| 337 | sed < ${srcdir}/src/epaths.in > epaths.h.$$$$ \ | 331 | sed < ${srcdir}/src/epaths.in > epaths.h.$$$$ \ |
| 338 | -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'"$${standardlisppath}"'";' \ | 332 | -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "${standardlisppath}";' \ |
| 339 | -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${locallisppath}"'";' \ | 333 | -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "${locallisppath}";' \ |
| 340 | -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'"$${buildlisppath}"'";' \ | 334 | -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "${buildlisppath}";' \ |
| 335 | -e '/^#define PATH_[^ ]*SEARCH /s/\([":]\):*/\1/g' \ | ||
| 336 | -e '/^#define PATH_[^ ]*SEARCH /s/:"/"/' \ | ||
| 341 | -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \ | 337 | -e 's;\(#.*PATH_EXEC\).*$$;\1 "${archlibdir}";' \ |
| 342 | -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ | 338 | -e 's;\(#.*PATH_INFO\).*$$;\1 "${infodir}";' \ |
| 343 | -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ | 339 | -e 's;\(#.*PATH_DATA\).*$$;\1 "${etcdir}";' \ |
| @@ -577,7 +573,7 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} | |||
| 577 | fi; \ | 573 | fi; \ |
| 578 | rm -rf "$${dest}" ; \ | 574 | rm -rf "$${dest}" ; \ |
| 579 | umask 022; ${MKDIR_P} "$${dest}" ; \ | 575 | umask 022; ${MKDIR_P} "$${dest}" ; \ |
| 580 | echo "Copying $${dir} to $${dest}..." ; \ | 576 | printf 'Copying %s to %s...\n' "$$dir" "$$dest" ; \ |
| 581 | (cd $${dir}; tar -chf - . ) \ | 577 | (cd $${dir}; tar -chf - . ) \ |
| 582 | | (cd "$${dest}"; umask 022; \ | 578 | | (cd "$${dest}"; umask 022; \ |
| 583 | tar -xvf - && cat > /dev/null) || exit 1; \ | 579 | tar -xvf - && cat > /dev/null) || exit 1; \ |
| @@ -632,7 +628,8 @@ install-etcdoc: src install-arch-indep | |||
| 632 | if [ "`cd ./etc; /bin/pwd`" != "$$exp_etcdocdir" ]; \ | 628 | if [ "`cd ./etc; /bin/pwd`" != "$$exp_etcdocdir" ]; \ |
| 633 | then \ | 629 | then \ |
| 634 | docfile="DOC"; \ | 630 | docfile="DOC"; \ |
| 635 | echo "Copying etc/$${docfile} to $(DESTDIR)${etcdocdir} ..." ; \ | 631 | printf 'Copying %s to %s ...\n' "etc/$$docfile" \ |
| 632 | "$(DESTDIR)${etcdocdir}"; \ | ||
| 636 | ${INSTALL_DATA} etc/$${docfile} "$(DESTDIR)${etcdocdir}/$${docfile}"; \ | 633 | ${INSTALL_DATA} etc/$${docfile} "$(DESTDIR)${etcdocdir}/$${docfile}"; \ |
| 637 | $(set_installuser); \ | 634 | $(set_installuser); \ |
| 638 | chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true ; \ | 635 | chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true ; \ |
| @@ -721,7 +718,7 @@ install-etc: | |||
| 721 | for icon in $${dir}/${EMACS_ICON}[.-]*; do \ | 718 | for icon in $${dir}/${EMACS_ICON}[.-]*; do \ |
| 722 | [ -r $${icon} ] || continue ; \ | 719 | [ -r $${icon} ] || continue ; \ |
| 723 | ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \ | 720 | ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \ |
| 724 | dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \ | 721 | dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\\.$${ext}\$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \ |
| 725 | ( cd "$${thisdir}"; \ | 722 | ( cd "$${thisdir}"; \ |
| 726 | ${INSTALL_DATA} ${iconsrcdir}/$${icon} "$(DESTDIR)${icondir}/$${dir}/$${dest}" ) \ | 723 | ${INSTALL_DATA} ${iconsrcdir}/$${icon} "$(DESTDIR)${icondir}/$${dir}/$${dest}" ) \ |
| 727 | || exit 1; \ | 724 | || exit 1; \ |
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 | |||
| 64 | KANJI-DATABASE) | 64 | KANJI-DATABASE) |
| 65 | SOURCE="http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4";; | 65 | SOURCE="http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4";; |
| 66 | *) | 66 | *) |
| 67 | echo "Unknown file type: $3"; | 67 | printf 'Unknown file type: %s\n' "$3" |
| 68 | exit 1;; | 68 | exit 1;; |
| 69 | esac | 69 | esac |
| 70 | 70 | ||
| @@ -147,7 +147,6 @@ elif [ "$3" = "KANJI-DATABASE" ] ; then | |||
| 147 | | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ | 147 | | sed -e 's/...\(....\) U+\([0-9A-F]*\).*/0x\1 0x\2/' \ |
| 148 | | sort | ${AWKPROG} | 148 | | sort | ${AWKPROG} |
| 149 | else | 149 | else |
| 150 | echo "Invalid arguments: $3" | 150 | printf 'Invalid arguments: %s\n' "$3" |
| 151 | exit 1 | 151 | exit 1 |
| 152 | fi | 152 | fi |
| 153 | |||
diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 963c3a06e1a..818dc1afce9 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib | |||
| @@ -71,7 +71,7 @@ case $gnulib_srcdir in | |||
| 71 | esac | 71 | esac |
| 72 | case $src in | 72 | case $src in |
| 73 | -*) | 73 | -*) |
| 74 | echo >&2 "$0: usage: $0 [GNULIB_SRCDIR [SRCDIR]] | 74 | printf '%s\n' >&2 "$0: usage: $0 [GNULIB_SRCDIR [SRCDIR]] |
| 75 | 75 | ||
| 76 | SRCDIR is the Emacs source directory (default: working directory). | 76 | SRCDIR is the Emacs source directory (default: working directory). |
| 77 | GNULIB_SRCDIR is the Gnulib source directory (default: SRCDIR/../gnulib)." | 77 | GNULIB_SRCDIR is the Gnulib source directory (default: SRCDIR/../gnulib)." |
| @@ -79,7 +79,7 @@ case $src in | |||
| 79 | esac | 79 | esac |
| 80 | 80 | ||
| 81 | test -x "$src"autogen.sh || { | 81 | test -x "$src"autogen.sh || { |
| 82 | echo >&2 "$0: '${src:-.}' is not an Emacs source directory." | 82 | printf '%s\n' >&2 "$0: '${src:-.}' is not an Emacs source directory." |
| 83 | exit 1 | 83 | exit 1 |
| 84 | } | 84 | } |
| 85 | 85 | ||
| @@ -88,7 +88,7 @@ git clone -- "$GNULIB_URL" "$gnulib_srcdir" || | |||
| 88 | exit | 88 | exit |
| 89 | 89 | ||
| 90 | test -x "$gnulib_srcdir"/gnulib-tool || { | 90 | test -x "$gnulib_srcdir"/gnulib-tool || { |
| 91 | echo >&2 "$0: '$gnulib_srcdir' is not a Gnulib source directory." | 91 | printf '%s\n' >&2 "$0: '$gnulib_srcdir' is not a Gnulib source directory." |
| 92 | exit 1 | 92 | exit 1 |
| 93 | } | 93 | } |
| 94 | 94 | ||
diff --git a/admin/merge-pkg-config b/admin/merge-pkg-config index 2ee633d36c1..302937269df 100755 --- a/admin/merge-pkg-config +++ b/admin/merge-pkg-config | |||
| @@ -49,15 +49,15 @@ | |||
| 49 | 49 | ||
| 50 | test -n "$dir" | 50 | test -n "$dir" |
| 51 | } || { | 51 | } || { |
| 52 | echo >&2 "$0: cannot find pkg.m4" | 52 | printf >&2 '%s\n' "$0: cannot find pkg.m4" |
| 53 | exit 1 | 53 | exit 1 |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | test -d m4 || { | 56 | test -d m4 || { |
| 57 | echo >&2 "$0: please run this command in the main source directory" | 57 | printf >&2 '%s\n' "$0: please run this command in the main source directory" |
| 58 | exit 1 | 58 | exit 1 |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | echo >&2 "$0: copying $dir/pkg.m4 to m4/pkg.m4" | 61 | printf >&2 '%s\n' "$0: copying $dir/pkg.m4 to m4/pkg.m4" |
| 62 | 62 | ||
| 63 | cp $dir/pkg.m4 m4 | 63 | cp $dir/pkg.m4 m4 |
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index 55510fb0252..4de7416e3d6 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs | |||
| @@ -121,11 +121,11 @@ EOF | |||
| 121 | -[!-]?*) | 121 | -[!-]?*) |
| 122 | # split concatenated single-letter options apart | 122 | # split concatenated single-letter options apart |
| 123 | FIRST="$1"; shift | 123 | FIRST="$1"; shift |
| 124 | set -- `echo $FIRST | sed 's/-\(.\)\(.*\)/-\1 -\2/'` "$@" | 124 | set -- `printf '%s\n' "$FIRST" | sed 's/-\(.\)\(.*\)/-\1 -\2/'` "$@" |
| 125 | ;; | 125 | ;; |
| 126 | -*) | 126 | -*) |
| 127 | echo 1>&2 "$me: unrecognized option '$1'" | 127 | printf '%s\n' >&2 "$me: unrecognized option '$1'" |
| 128 | echo 1>&2 "$TRY" | 128 | printf '%s\n' >&2 "$TRY" |
| 129 | exit 1 | 129 | exit 1 |
| 130 | ;; | 130 | ;; |
| 131 | *) | 131 | *) |
| @@ -140,17 +140,18 @@ case $# in | |||
| 140 | 1) BUILD="$1";; | 140 | 1) BUILD="$1";; |
| 141 | 2) BUILD="$1"; prefix="$2";; | 141 | 2) BUILD="$1"; prefix="$2";; |
| 142 | *) | 142 | *) |
| 143 | echo 1>&2 "$USAGE" | 143 | printf '%s\n' >&2 "$USAGE" |
| 144 | echo 1>&2 "$TRY" | 144 | printf '%s\n' >&2 "$TRY" |
| 145 | exit 1 | 145 | exit 1 |
| 146 | ;; | 146 | ;; |
| 147 | esac | 147 | esac |
| 148 | 148 | ||
| 149 | if test ! -d "$BUILD"; then | 149 | if test ! -d "$BUILD"; then |
| 150 | echo 1>&2 "$me: $BUILD: Build tree not found" | 150 | printf '%s\n' >&2 "$me: $BUILD: Build tree not found" |
| 151 | exit 2 | 151 | exit 2 |
| 152 | elif test ! -r "$BUILD/config.status"; then | 152 | elif test ! -r "$BUILD/config.status"; then |
| 153 | echo 1>&2 "$me: $BUILD: Not a proper build tree, config.status not found" | 153 | printf '%s\n' >&2 \ |
| 154 | "$me: $BUILD: Not a proper build tree, config.status not found" | ||
| 154 | exit 2 | 155 | exit 2 |
| 155 | fi | 156 | fi |
| 156 | 157 | ||
| @@ -160,7 +161,8 @@ get_config_var () | |||
| 160 | { sed -n "s/^S[[]\"$1\"[]]=\"\([^\"]*\)\"/\1/p" $CONFIG_STATUS | sed q | grep ''; } || | 161 | { sed -n "s/^S[[]\"$1\"[]]=\"\([^\"]*\)\"/\1/p" $CONFIG_STATUS | sed q | grep ''; } || |
| 161 | { sed -n "s/^s\(.\)@$1@\1\(|#_!!_#|\)*\(.*\)\1.*$/\3/p" $CONFIG_STATUS | sed q | grep ''; } || | 162 | { sed -n "s/^s\(.\)@$1@\1\(|#_!!_#|\)*\(.*\)\1.*$/\3/p" $CONFIG_STATUS | sed q | grep ''; } || |
| 162 | { | 163 | { |
| 163 | echo 1>&2 "$me: $1: Configuration variable not found in $CONFIG_STATUS" | 164 | printf '%s\n' >&2 \ |
| 165 | "$me: $1: Configuration variable not found in $CONFIG_STATUS" | ||
| 164 | exit 4 | 166 | exit 4 |
| 165 | } | 167 | } |
| 166 | } | 168 | } |
| @@ -172,7 +174,7 @@ test x"$ARCH" = x && { ARCH="`get_config_var host`" || exit 4 ; } | |||
| 172 | VERSION=` | 174 | VERSION=` |
| 173 | sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' <$SRC/configure.ac | 175 | sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' <$SRC/configure.ac |
| 174 | ` || exit 4 | 176 | ` || exit 4 |
| 175 | test -n "$VERSION" || { echo >&2 "$me: no version in configure.ac"; exit 4; } | 177 | test -n "$VERSION" || { printf '%s\n' >&2 "$me: no version in configure.ac"; exit 4; } |
| 176 | 178 | ||
| 177 | DST_SHARE="$prefix/share/emacs/$VERSION" | 179 | DST_SHARE="$prefix/share/emacs/$VERSION" |
| 178 | DST_BIN="$prefix/bin" | 180 | DST_BIN="$prefix/bin" |
| @@ -209,7 +211,7 @@ maybe_mkdir "$DST_INFO" | |||
| 209 | PRUNED="" | 211 | PRUNED="" |
| 210 | if test x"$PRUNE" != xno; then | 212 | if test x"$PRUNE" != xno; then |
| 211 | for D in `ls -1t $BUILD/src/emacs-$VERSION.* | sed 1d`; do | 213 | for D in `ls -1t $BUILD/src/emacs-$VERSION.* | sed 1d`; do |
| 212 | echo $REMOVE_CMD $D | 214 | printf '%s\n' "$REMOVE_CMD $D" |
| 213 | PRUNED="$PRUNED $D" | 215 | PRUNED="$PRUNED $D" |
| 214 | done | 216 | done |
| 215 | fi | 217 | fi |
| @@ -219,7 +221,7 @@ test x"$PRUNE" = xonly && exit 0 | |||
| 219 | maybe_emit_copy () | 221 | maybe_emit_copy () |
| 220 | { | 222 | { |
| 221 | if test "$FORCE" = yes || ! cmp -s $1 $2; then | 223 | if test "$FORCE" = yes || ! cmp -s $1 $2; then |
| 222 | echo $LINK_CMD $1 $2 | 224 | printf '%s\n' "$LINK_CMD $1 $2" |
| 223 | fi | 225 | fi |
| 224 | } | 226 | } |
| 225 | 227 | ||
| @@ -240,7 +242,7 @@ for SUBDIR in lisp leim etc lib-src info; do | |||
| 240 | # defaults | 242 | # defaults |
| 241 | SHARED=no | 243 | SHARED=no |
| 242 | FORCED='' | 244 | FORCED='' |
| 243 | AVOID_PAT="`echo "($AVOID)" | tr ' ' '|'`" | 245 | AVOID_PAT="`printf '%s\n' "($AVOID)" | tr ' ' '|'`" |
| 244 | 246 | ||
| 245 | # Set subdir-specific values | 247 | # Set subdir-specific values |
| 246 | case $SUBDIR in | 248 | case $SUBDIR in |
| @@ -255,7 +257,7 @@ for SUBDIR in lisp leim etc lib-src info; do | |||
| 255 | ;; | 257 | ;; |
| 256 | lib-src) | 258 | lib-src) |
| 257 | DST="$DST_LIBEXEC" | 259 | DST="$DST_LIBEXEC" |
| 258 | AVOID_PAT="`echo "($AVOID ($PUBLIC_LIBSRC_BINARIES)\$)" | tr ' ' '|'`" | 260 | AVOID_PAT="`printf '%s\n' "($AVOID ($PUBLIC_LIBSRC_BINARIES)\$)" | tr ' ' '|'`" |
| 259 | ;; | 261 | ;; |
| 260 | info) | 262 | info) |
| 261 | DST="$DST_INFO" | 263 | DST="$DST_INFO" |
| @@ -267,10 +269,10 @@ for SUBDIR in lisp leim etc lib-src info; do | |||
| 267 | if [ -d $PFX/$SUBDIR ]; then | 269 | if [ -d $PFX/$SUBDIR ]; then |
| 268 | for DIR in `(cd $PFX/$SUBDIR; find . -type d -print | sed 's@^./@@')`; do | 270 | for DIR in `(cd $PFX/$SUBDIR; find . -type d -print | sed 's@^./@@')`; do |
| 269 | if [ -d $DST/$DIR ]; then | 271 | if [ -d $DST/$DIR ]; then |
| 270 | echo Directory $DST/$DIR exists | 272 | printf '%s\n' "Directory $DST/$DIR exists" |
| 271 | else | 273 | else |
| 272 | echo Directory $DST/$DIR non-existent | 274 | printf '%s\n' "Directory $DST/$DIR non-existent" |
| 273 | if [ "`echo $DIR | egrep -v "$AVOID_PAT"`" ]; then | 275 | if [ "`printf '%s\n' "$DIR" | grep -Ev "$AVOID_PAT"`" ]; then |
| 274 | maybe_mkdir $DST/$DIR | 276 | maybe_mkdir $DST/$DIR |
| 275 | fi | 277 | fi |
| 276 | fi | 278 | fi |
diff --git a/build-aux/gitlog-to-emacslog b/build-aux/gitlog-to-emacslog index 51ef2a7fc72..3d61ba1e389 100755 --- a/build-aux/gitlog-to-emacslog +++ b/build-aux/gitlog-to-emacslog | |||
| @@ -35,14 +35,14 @@ while [ $# -gt 0 ]; do | |||
| 35 | -f|--force) force=1 ;; | 35 | -f|--force) force=1 ;; |
| 36 | -n|--nmax) nmax="$2"; shift ;; | 36 | -n|--nmax) nmax="$2"; shift ;; |
| 37 | -o|--output) output="$2" ; shift ;; | 37 | -o|--output) output="$2" ; shift ;; |
| 38 | *) echo "Unrecognized argument: $1" >&2; exit 1 ;; | 38 | *) printf '%s\n' "Unrecognized argument: $1" >&2; exit 1 ;; |
| 39 | esac | 39 | esac |
| 40 | shift | 40 | shift |
| 41 | done | 41 | done |
| 42 | 42 | ||
| 43 | if [ ! -f ChangeLog.$nmax ]; then | 43 | if [ ! -f ChangeLog.$nmax ]; then |
| 44 | echo "Can't find ChangeLog.$nmax" >&2 | 44 | printf '%s\n' "Can't find ChangeLog.$nmax" >&2 |
| 45 | echo "Must be run from the top source directory" >&2 | 45 | printf '%s\n' "Must be run from the top source directory" >&2 |
| 46 | exit 1 | 46 | exit 1 |
| 47 | fi | 47 | fi |
| 48 | 48 | ||
| @@ -52,7 +52,7 @@ fi | |||
| 52 | gen_origin_line=` | 52 | gen_origin_line=` |
| 53 | grep -E '^commit [0-9a-f]+ [(]inclusive[)]' ChangeLog.$nmax | 53 | grep -E '^commit [0-9a-f]+ [(]inclusive[)]' ChangeLog.$nmax |
| 54 | ` || { | 54 | ` || { |
| 55 | echo "ChangeLog.$nmax lacks a 'commit ... (inclusive)' line" >&2 | 55 | printf '%s\n' "ChangeLog.$nmax lacks a 'commit ... (inclusive)' line" >&2 |
| 56 | exit 1 | 56 | exit 1 |
| 57 | } | 57 | } |
| 58 | set $gen_origin_line | 58 | set $gen_origin_line |
| @@ -63,7 +63,7 @@ fi | |||
| 63 | new_origin=`git log --pretty=format:%H 'HEAD^!'` || exit | 63 | new_origin=`git log --pretty=format:%H 'HEAD^!'` || exit |
| 64 | 64 | ||
| 65 | if [ -f "$output" ]; then | 65 | if [ -f "$output" ]; then |
| 66 | [ ! "$force" ] && echo "$output exists" >&2 && exit 1 | 66 | [ ! "$force" ] && printf '%s\n' "$output exists" >&2 && exit 1 |
| 67 | rm -f "$output" || exit 1 | 67 | rm -f "$output" || exit 1 |
| 68 | fi | 68 | fi |
| 69 | 69 | ||
diff --git a/configure.ac b/configure.ac index d537f73c939..90c4e12e7df 100644 --- a/configure.ac +++ b/configure.ac | |||
| @@ -401,7 +401,7 @@ gamegroup= | |||
| 401 | case ${with_gameuser} in | 401 | case ${with_gameuser} in |
| 402 | no) ;; | 402 | no) ;; |
| 403 | "" | yes) gamegroup=games ;; | 403 | "" | yes) gamegroup=games ;; |
| 404 | :*) gamegroup=`echo "${with_gameuser}" | sed -e "s/://"` ;; | 404 | :*) gamegroup=${with_gameuser#:} ;; |
| 405 | *) gameuser=${with_gameuser} ;; | 405 | *) gameuser=${with_gameuser} ;; |
| 406 | esac | 406 | esac |
| 407 | 407 | ||
| @@ -1702,15 +1702,17 @@ fi | |||
| 1702 | LD_SWITCH_X_SITE_RPATH= | 1702 | LD_SWITCH_X_SITE_RPATH= |
| 1703 | if test "${x_libraries}" != NONE; then | 1703 | if test "${x_libraries}" != NONE; then |
| 1704 | if test -n "${x_libraries}"; then | 1704 | if test -n "${x_libraries}"; then |
| 1705 | LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"` | 1705 | LD_SWITCH_X_SITE=-L`AS_ECHO(["$x_libraries"]) | sed -e 's/:/ -L/g'` |
| 1706 | LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,`echo ${x_libraries} | sed -e "s/:/ -Wl,-rpath,/g"` | 1706 | LD_SWITCH_X_SITE_RPATH=-Wl,-rpath,` |
| 1707 | AS_ECHO(["$x_libraries"]) | sed -e 's/:/ -Wl,-rpath,/g' | ||
| 1708 | ` | ||
| 1707 | fi | 1709 | fi |
| 1708 | x_default_search_path="" | 1710 | x_default_search_path="" |
| 1709 | x_search_path=${x_libraries} | 1711 | x_search_path=${x_libraries} |
| 1710 | if test -z "${x_search_path}"; then | 1712 | if test -z "${x_search_path}"; then |
| 1711 | x_search_path=/usr/lib | 1713 | x_search_path=/usr/lib |
| 1712 | fi | 1714 | fi |
| 1713 | for x_library in `echo ${x_search_path}: | \ | 1715 | for x_library in `AS_ECHO(["$x_search_path:"]) | \ |
| 1714 | sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do | 1716 | sed -e "s/:/ /g" -e p -e "s:/lib[[^ /]]* :/share :g"`; do |
| 1715 | x_search_path="\ | 1717 | x_search_path="\ |
| 1716 | ${x_library}/X11/%L/%T/%N%C%S:\ | 1718 | ${x_library}/X11/%L/%T/%N%C%S:\ |
| @@ -1729,15 +1731,15 @@ fi | |||
| 1729 | AC_SUBST(LD_SWITCH_X_SITE_RPATH) | 1731 | AC_SUBST(LD_SWITCH_X_SITE_RPATH) |
| 1730 | 1732 | ||
| 1731 | if test "${x_includes}" != NONE && test -n "${x_includes}"; then | 1733 | if test "${x_includes}" != NONE && test -n "${x_includes}"; then |
| 1732 | C_SWITCH_X_SITE="$isystem"`echo ${x_includes} | sed -e "s/:/ $isystem/g"` | 1734 | C_SWITCH_X_SITE=$isystem`AS_ECHO(["$x_includes"]) | sed -e "s/:/ $isystem/g"` |
| 1733 | fi | 1735 | fi |
| 1734 | 1736 | ||
| 1735 | if test x"${x_includes}" = x; then | 1737 | if test x"${x_includes}" = x; then |
| 1736 | bitmapdir=/usr/include/X11/bitmaps | 1738 | bitmapdir=/usr/include/X11/bitmaps |
| 1737 | else | 1739 | else |
| 1738 | # accumulate include directories that have X11 bitmap subdirectories | 1740 | # accumulate include directories that have X11 bitmap subdirectories |
| 1739 | bmd_acc="dummyval" | 1741 | bmd_acc= |
| 1740 | for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do | 1742 | for bmd in `AS_ECHO(["$x_includes"]) | sed -e 's/:/ /g'`; do |
| 1741 | if test -d "${bmd}/X11/bitmaps"; then | 1743 | if test -d "${bmd}/X11/bitmaps"; then |
| 1742 | bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" | 1744 | bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" |
| 1743 | fi | 1745 | fi |
| @@ -1745,9 +1747,7 @@ else | |||
| 1745 | bmd_acc="${bmd_acc}:${bmd}/bitmaps" | 1747 | bmd_acc="${bmd_acc}:${bmd}/bitmaps" |
| 1746 | fi | 1748 | fi |
| 1747 | done | 1749 | done |
| 1748 | if test ${bmd_acc} != "dummyval"; then | 1750 | bitmapdir=${bmdacc#:} |
| 1749 | bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"` | ||
| 1750 | fi | ||
| 1751 | fi | 1751 | fi |
| 1752 | 1752 | ||
| 1753 | test "${with_ns}" = maybe && test "${opsys}" != darwin && with_ns=no | 1753 | test "${with_ns}" = maybe && test "${opsys}" != darwin && with_ns=no |
| @@ -1777,11 +1777,23 @@ if test "${with_ns}" != no; then | |||
| 1777 | elif test -f $GNUSTEP_CONFIG_FILE; then | 1777 | elif test -f $GNUSTEP_CONFIG_FILE; then |
| 1778 | NS_IMPL_GNUSTEP=yes | 1778 | NS_IMPL_GNUSTEP=yes |
| 1779 | dnl FIXME sourcing this several times in subshells seems inefficient. | 1779 | dnl FIXME sourcing this several times in subshells seems inefficient. |
| 1780 | GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)" | 1780 | GNUSTEP_SYSTEM_HEADERS=$( |
| 1781 | GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)" | 1781 | . $GNUSTEP_CONFIG_FILE |
| 1782 | AS_ECHO(["$GNUSTEP_SYSTEM_HEADERS"]) | ||
| 1783 | ) | ||
| 1784 | GNUSTEP_SYSTEM_LIBRARIES=$( | ||
| 1785 | . $GNUSTEP_CONFIG_FILE | ||
| 1786 | AS_ECHO(["$GNUSTEP_SYSTEM_LIBRARIES"]) | ||
| 1787 | ) | ||
| 1782 | dnl I seemed to need these as well with GNUstep-startup 0.25. | 1788 | dnl I seemed to need these as well with GNUstep-startup 0.25. |
| 1783 | GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)" | 1789 | GNUSTEP_LOCAL_HEADERS=$( |
| 1784 | GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)" | 1790 | . $GNUSTEP_CONFIG_FILE |
| 1791 | AS_ECHO(["$GNUSTEP_LOCAL_HEADERS"]) | ||
| 1792 | ) | ||
| 1793 | GNUSTEP_LOCAL_LIBRARIES=$( | ||
| 1794 | . $GNUSTEP_CONFIG_FILE | ||
| 1795 | AS_ECHO(["$GNUSTEP_LOCAL_LIBRARIES"]) | ||
| 1796 | ) | ||
| 1785 | test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \ | 1797 | test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \ |
| 1786 | GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}" | 1798 | GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}" |
| 1787 | test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \ | 1799 | test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \ |
| @@ -2057,7 +2069,11 @@ if test "$window_system" = none && test "X$with_x" != "Xno"; then | |||
| 2057 | AC_CHECK_PROG(HAVE_XSERVER, X, true, false) | 2069 | AC_CHECK_PROG(HAVE_XSERVER, X, true, false) |
| 2058 | if test "$HAVE_XSERVER" = true || | 2070 | if test "$HAVE_XSERVER" = true || |
| 2059 | test -n "$DISPLAY" || | 2071 | test -n "$DISPLAY" || |
| 2060 | test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then | 2072 | { |
| 2073 | for emacs_libX11 in /usr/lib/libX11.*; do break; done | ||
| 2074 | test "$emacs_libX11" != '/usr/lib/libX11.*' | ||
| 2075 | } | ||
| 2076 | then | ||
| 2061 | AC_MSG_ERROR([You seem to be running X, but no X development libraries | 2077 | AC_MSG_ERROR([You seem to be running X, but no X development libraries |
| 2062 | were found. You should install the relevant development files for X | 2078 | were found. You should install the relevant development files for X |
| 2063 | and for the toolkit you want, such as Gtk+ or Motif. Also make | 2079 | and for the toolkit you want, such as Gtk+ or Motif. Also make |
| @@ -4718,11 +4734,13 @@ CPPFLAGS="$REAL_CPPFLAGS" | |||
| 4718 | LIBS="$REAL_LIBS" | 4734 | LIBS="$REAL_LIBS" |
| 4719 | 4735 | ||
| 4720 | ## Hack to detect a buggy GCC version. | 4736 | ## Hack to detect a buggy GCC version. |
| 4721 | if test "x$GCC" = xyes \ | 4737 | if test "$GCC" = yes && \ |
| 4722 | && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \ | 4738 | $CC --version 2> /dev/null | grep 'gcc.* 4.5.0' >/dev/null; then |
| 4723 | && test x"`echo $CFLAGS | grep '\-O@<:@23@:>@'`" != x \ | 4739 | case $CFLAGS in |
| 4724 | && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then | 4740 | *-fno-optimize-sibling-calls*) ;; |
| 4725 | AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.]) | 4741 | *-O@<:@23@:>@*) |
| 4742 | AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS.]);; | ||
| 4743 | esac | ||
| 4726 | fi | 4744 | fi |
| 4727 | 4745 | ||
| 4728 | version=$PACKAGE_VERSION | 4746 | version=$PACKAGE_VERSION |
| @@ -4976,7 +4994,7 @@ LIBS=$SAVE_LIBS | |||
| 4976 | if test "${opsys}" = "mingw32"; then | 4994 | if test "${opsys}" = "mingw32"; then |
| 4977 | CPPFLAGS="$CPPFLAGS -DUSE_CRT_DLL=1 -I \${abs_top_srcdir}/nt/inc" | 4995 | CPPFLAGS="$CPPFLAGS -DUSE_CRT_DLL=1 -I \${abs_top_srcdir}/nt/inc" |
| 4978 | # Remove unneeded switches from the value of CC that goes to Makefiles | 4996 | # Remove unneeded switches from the value of CC that goes to Makefiles |
| 4979 | CC=`echo $CC | sed -e "s,$GCC_TEST_OPTIONS,,"` | 4997 | CC=`AS_ECHO(["$CC"]) | sed -e "s,$GCC_TEST_OPTIONS,,"` |
| 4980 | fi | 4998 | fi |
| 4981 | 4999 | ||
| 4982 | case "$opsys" in | 5000 | case "$opsys" in |
| @@ -5124,7 +5142,8 @@ else | |||
| 5124 | ACL_SUMMARY=no | 5142 | ACL_SUMMARY=no |
| 5125 | fi | 5143 | fi |
| 5126 | 5144 | ||
| 5127 | echo " | 5145 | emacs_standard_dirs='Standard dirs' |
| 5146 | AS_ECHO([" | ||
| 5128 | Configured for '${canonical}'. | 5147 | Configured for '${canonical}'. |
| 5129 | 5148 | ||
| 5130 | Where should the build process find the source code? ${srcdir} | 5149 | Where should the build process find the source code? ${srcdir} |
| @@ -5133,18 +5152,9 @@ Configured for '${canonical}'. | |||
| 5133 | Should Emacs use a relocating allocator for buffers? ${REL_ALLOC} | 5152 | Should Emacs use a relocating allocator for buffers? ${REL_ALLOC} |
| 5134 | Should Emacs use mmap(2) for buffer allocation? $use_mmap_for_buffers | 5153 | Should Emacs use mmap(2) for buffer allocation? $use_mmap_for_buffers |
| 5135 | What window system should Emacs use? ${window_system} | 5154 | What window system should Emacs use? ${window_system} |
| 5136 | What toolkit should Emacs use? ${USE_X_TOOLKIT}" | 5155 | What toolkit should Emacs use? ${USE_X_TOOLKIT} |
| 5137 | 5156 | Where do we find X Windows header files? ${x_includes:-$emacs_standard_dirs} | |
| 5138 | if test -n "${x_includes}"; then | 5157 | Where do we find X Windows libraries? ${x_libraries:-$emacs_standard_dirs}"]) |
| 5139 | echo " Where do we find X Windows header files? ${x_includes}" | ||
| 5140 | else | ||
| 5141 | echo " Where do we find X Windows header files? Standard dirs" | ||
| 5142 | fi | ||
| 5143 | if test -n "${x_libraries}"; then | ||
| 5144 | echo " Where do we find X Windows libraries? ${x_libraries}" | ||
| 5145 | else | ||
| 5146 | echo " Where do we find X Windows libraries? Standard dirs" | ||
| 5147 | fi | ||
| 5148 | 5158 | ||
| 5149 | optsep= | 5159 | optsep= |
| 5150 | emacs_config_features= | 5160 | emacs_config_features= |
| @@ -5174,57 +5184,53 @@ done | |||
| 5174 | AC_DEFINE_UNQUOTED(EMACS_CONFIG_FEATURES, "${emacs_config_features}", | 5184 | AC_DEFINE_UNQUOTED(EMACS_CONFIG_FEATURES, "${emacs_config_features}", |
| 5175 | [Summary of some of the main features enabled by configure.]) | 5185 | [Summary of some of the main features enabled by configure.]) |
| 5176 | 5186 | ||
| 5177 | echo " Does Emacs use -lXaw3d? ${HAVE_XAW3D}" | 5187 | AS_ECHO([" Does Emacs use -lXaw3d? ${HAVE_XAW3D} |
| 5178 | echo " Does Emacs use -lXpm? ${HAVE_XPM}" | 5188 | Does Emacs use -lXpm? ${HAVE_XPM} |
| 5179 | echo " Does Emacs use -ljpeg? ${HAVE_JPEG}" | 5189 | Does Emacs use -ljpeg? ${HAVE_JPEG} |
| 5180 | echo " Does Emacs use -ltiff? ${HAVE_TIFF}" | 5190 | Does Emacs use -ltiff? ${HAVE_TIFF} |
| 5181 | echo " Does Emacs use a gif library? ${HAVE_GIF} $LIBGIF" | 5191 | Does Emacs use a gif library? ${HAVE_GIF} $LIBGIF |
| 5182 | echo " Does Emacs use a png library? ${HAVE_PNG} $LIBPNG" | 5192 | Does Emacs use a png library? ${HAVE_PNG} $LIBPNG |
| 5183 | echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}" | 5193 | Does Emacs use -lrsvg-2? ${HAVE_RSVG} |
| 5184 | echo " Does Emacs use cairo? ${USE_CAIRO}" | 5194 | Does Emacs use cairo? ${USE_CAIRO} |
| 5185 | echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}" | 5195 | Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK} |
| 5186 | 5196 | Does Emacs support sound? ${HAVE_SOUND} | |
| 5187 | echo " Does Emacs support sound? ${HAVE_SOUND}" | 5197 | Does Emacs use -lgpm? ${HAVE_GPM} |
| 5188 | 5198 | Does Emacs use -ldbus? ${HAVE_DBUS} | |
| 5189 | echo " Does Emacs use -lgpm? ${HAVE_GPM}" | 5199 | Does Emacs use -lgconf? ${HAVE_GCONF} |
| 5190 | echo " Does Emacs use -ldbus? ${HAVE_DBUS}" | 5200 | Does Emacs use GSettings? ${HAVE_GSETTINGS} |
| 5191 | echo " Does Emacs use -lgconf? ${HAVE_GCONF}" | 5201 | Does Emacs use a file notification library? ${NOTIFY_SUMMARY} |
| 5192 | echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}" | 5202 | Does Emacs use access control lists? ${ACL_SUMMARY} |
| 5193 | echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}" | 5203 | Does Emacs use -lselinux? ${HAVE_LIBSELINUX} |
| 5194 | echo " Does Emacs use access control lists? ${ACL_SUMMARY}" | 5204 | Does Emacs use -lgnutls? ${HAVE_GNUTLS} |
| 5195 | echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}" | 5205 | Does Emacs use -lxml2? ${HAVE_LIBXML2} |
| 5196 | echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}" | 5206 | Does Emacs use -lfreetype? ${HAVE_FREETYPE} |
| 5197 | echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}" | 5207 | Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT} |
| 5198 | 5208 | Does Emacs use -lotf? ${HAVE_LIBOTF} | |
| 5199 | echo " Does Emacs use -lfreetype? ${HAVE_FREETYPE}" | 5209 | Does Emacs use -lxft? ${HAVE_XFT} |
| 5200 | echo " Does Emacs use -lm17n-flt? ${HAVE_M17N_FLT}" | 5210 | Does Emacs directly use zlib? ${HAVE_ZLIB} |
| 5201 | echo " Does Emacs use -lotf? ${HAVE_LIBOTF}" | 5211 | Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS} |
| 5202 | echo " Does Emacs use -lxft? ${HAVE_XFT}" | 5212 | "]) |
| 5203 | echo " Does Emacs directly use zlib? ${HAVE_ZLIB}" | ||
| 5204 | |||
| 5205 | echo " Does Emacs use toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" | ||
| 5206 | echo | ||
| 5207 | 5213 | ||
| 5208 | if test -n "${EMACSDATA}"; then | 5214 | if test -n "${EMACSDATA}"; then |
| 5209 | echo " Environment variable EMACSDATA set to: $EMACSDATA" | 5215 | AS_ECHO([" Environment variable EMACSDATA set to: $EMACSDATA"]) |
| 5210 | fi | 5216 | fi |
| 5211 | if test -n "${EMACSDOC}"; then | 5217 | if test -n "${EMACSDOC}"; then |
| 5212 | echo " Environment variable EMACSDOC set to: $EMACSDOC" | 5218 | AS_ECHO([" Environment variable EMACSDOC set to: $EMACSDOC"]) |
| 5213 | fi | 5219 | fi |
| 5214 | 5220 | ||
| 5215 | echo | 5221 | echo |
| 5216 | 5222 | ||
| 5217 | if test "$HAVE_NS" = "yes"; then | 5223 | if test "$HAVE_NS" = "yes"; then |
| 5218 | echo | 5224 | echo |
| 5219 | echo "You must run \"${MAKE-make} install\" in order to test the built application. | 5225 | AS_ECHO(["You must run \"${MAKE-make} install\" in order to test the built application. |
| 5220 | The installed application will go to nextstep/Emacs.app and can be | 5226 | The installed application will go to nextstep/Emacs.app and can be |
| 5221 | run or moved from there." | 5227 | run or moved from there."]) |
| 5222 | if test "$EN_NS_SELF_CONTAINED" = "yes"; then | 5228 | if test "$EN_NS_SELF_CONTAINED" = "yes"; then |
| 5223 | echo "The application will be fully self-contained." | 5229 | echo "The application will be fully self-contained." |
| 5224 | else | 5230 | else |
| 5225 | echo "The lisp resources for the application will be installed under ${prefix}. | 5231 | AS_ECHO(["The lisp resources for the application will be installed under ${prefix}. |
| 5226 | You may need to run \"${MAKE-make} install\" with sudo. The application will fail | 5232 | You may need to run \"${MAKE-make} install\" with sudo. The application will fail |
| 5227 | to run if these resources are not installed." | 5233 | to run if these resources are not installed."]) |
| 5228 | fi | 5234 | fi |
| 5229 | echo | 5235 | echo |
| 5230 | fi | 5236 | fi |
| @@ -5238,10 +5244,12 @@ if test "${opsys}" = "cygwin"; then | |||
| 5238 | fi | 5244 | fi |
| 5239 | 5245 | ||
| 5240 | # Remove any trailing slashes in these variables. | 5246 | # Remove any trailing slashes in these variables. |
| 5241 | [test "${prefix}" != NONE && | 5247 | case $prefix in |
| 5242 | prefix=`echo "${prefix}" | sed 's,\([^/]\)/*$,\1,'` | 5248 | */) prefix=`AS_DIRNAME(["$prefix."])`;; |
| 5243 | test "${exec_prefix}" != NONE && | 5249 | esac |
| 5244 | exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`] | 5250 | case $exec_prefix in |
| 5251 | */) exec_prefix=`AS_DIRNAME(["$exec_prefix."])`;; | ||
| 5252 | esac | ||
| 5245 | 5253 | ||
| 5246 | if test "$HAVE_NS" = "yes"; then | 5254 | if test "$HAVE_NS" = "yes"; then |
| 5247 | if test "$NS_IMPL_GNUSTEP" = yes; then | 5255 | if test "$NS_IMPL_GNUSTEP" = yes; then |
| @@ -5319,7 +5327,7 @@ dnl is not yet set, sigh. Or we could use ../$srcdir/src/.gdbinit, | |||
| 5319 | dnl or a symlink? | 5327 | dnl or a symlink? |
| 5320 | AC_CONFIG_COMMANDS([src/.gdbinit], [ | 5328 | AC_CONFIG_COMMANDS([src/.gdbinit], [ |
| 5321 | if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then | 5329 | if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then |
| 5322 | echo "source $ac_abs_top_srcdir/src/.gdbinit" > src/.gdbinit | 5330 | AS_ECHO(["source $ac_abs_top_srcdir/src/.gdbinit"]) > src/.gdbinit |
| 5323 | fi | 5331 | fi |
| 5324 | ]) | 5332 | ]) |
| 5325 | 5333 | ||
diff --git a/doc/lispref/two-volume.make b/doc/lispref/two-volume.make index 64799d8fc04..bdcdb2f4fdd 100644 --- a/doc/lispref/two-volume.make +++ b/doc/lispref/two-volume.make | |||
| @@ -26,9 +26,9 @@ tex2 = sed '/^@setfilename/a\ | |||
| 26 | 26 | ||
| 27 | # elisp.texi specially defines \tocreadfilename when VOL1 or VOL2 is | 27 | # elisp.texi specially defines \tocreadfilename when VOL1 or VOL2 is |
| 28 | # set, so we can use our premade .toc's. | 28 | # set, so we can use our premade .toc's. |
| 29 | # | 29 | # |
| 30 | vol1.pdf: elisp1med-fns-ready elisp1med-aux-ready elisp1med-toc-ready | 30 | vol1.pdf: elisp1med-fns-ready elisp1med-aux-ready elisp1med-toc-ready |
| 31 | @echo -e "\f Final TeX run for volume 1..." | 31 | @printf '\f Final TeX run for volume 1...\n' |
| 32 | cp elisp1med-toc-ready elisp1-toc-ready.toc | 32 | cp elisp1med-toc-ready elisp1-toc-ready.toc |
| 33 | cp elisp1med-fns-ready vol1.fns | 33 | cp elisp1med-fns-ready vol1.fns |
| 34 | cp elisp1med-aux-ready vol1.aux | 34 | cp elisp1med-aux-ready vol1.aux |
| @@ -42,27 +42,27 @@ vol2.pdf: elisp2med-fns-ready elisp2med-aux-ready elisp2med-toc-ready | |||
| 42 | $(tex2) | 42 | $(tex2) |
| 43 | 43 | ||
| 44 | # intermediate toc files. | 44 | # intermediate toc files. |
| 45 | # | 45 | # |
| 46 | # vol1 toc: volume 1, page break, volume 2 (with II: prepended). | 46 | # vol1 toc: volume 1, page break, volume 2 (with II: prepended). |
| 47 | elisp1med-toc-ready: elisp1med-init elisp2med-init | 47 | elisp1med-toc-ready: elisp1med-init elisp2med-init |
| 48 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ | 48 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ |
| 49 | cat elisp1med-toc >>$@ | 49 | cat elisp1med-toc >>$@ |
| 50 | echo '@page' >>$@ | 50 | echo '@page' >>$@ |
| 51 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ | 51 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ |
| 52 | sed 's/{\([^}]*\)}$$/{II:\1}/' elisp2med-toc >>$@ | 52 | sed 's/{\([^}]*\)}$$/{II:\1}/' elisp2med-toc >>$@ |
| 53 | # | 53 | # |
| 54 | # vol2 toc: volume 1 (with I: prepended), page break, volume 2. | 54 | # vol2 toc: volume 1 (with I: prepended), page break, volume 2. |
| 55 | elisp2med-toc-ready: elisp1med-init elisp2med-init | 55 | elisp2med-toc-ready: elisp1med-init elisp2med-init |
| 56 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ | 56 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ |
| 57 | sed 's/{\([^}]*\)}$$/{I:\1}/' elisp1med-toc >>$@ | 57 | sed 's/{\([^}]*\)}$$/{I:\1}/' elisp1med-toc >>$@ |
| 58 | echo '@page' >>$@ | 58 | echo '@page' >>$@ |
| 59 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ | 59 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ |
| 60 | cat elisp2med-toc >>$@ | 60 | cat elisp2med-toc >>$@ |
| 61 | 61 | ||
| 62 | 62 | ||
| 63 | # intermediate aux files. | 63 | # intermediate aux files. |
| 64 | # | 64 | # |
| 65 | # append vol2's fixed aux to normal vol1. | 65 | # append vol2's fixed aux to normal vol1. |
| 66 | elisp1med-aux-ready: elisp2med-aux-vol-added | 66 | elisp1med-aux-ready: elisp2med-aux-vol-added |
| 67 | cat elisp1med-aux $< >$@ | 67 | cat elisp1med-aux $< >$@ |
| 68 | # | 68 | # |
| @@ -78,7 +78,7 @@ elisp2med-aux-vol-added: elisp2med-init | |||
| 78 | sed 's/-pg}{\(.*\)}$$/-pg}{\1, vol.@tie2}/' elisp2med-aux >$@ | 78 | sed 's/-pg}{\(.*\)}$$/-pg}{\1, vol.@tie2}/' elisp2med-aux >$@ |
| 79 | 79 | ||
| 80 | # intermediate index (fns) file. | 80 | # intermediate index (fns) file. |
| 81 | # | 81 | # |
| 82 | elisp1med-fns-ready: elisp1med-fn-vol-added elisp2med-fn-vol-added | 82 | elisp1med-fns-ready: elisp1med-fn-vol-added elisp2med-fn-vol-added |
| 83 | cat elisp2med-fn-vol-added >>vol1.fn | 83 | cat elisp2med-fn-vol-added >>vol1.fn |
| 84 | texindex vol1.fn | 84 | texindex vol1.fn |
| @@ -103,17 +103,17 @@ elisp2med-fn-vol-added: elisp2med-init | |||
| 103 | # ----------------------------------------------------------------------------- | 103 | # ----------------------------------------------------------------------------- |
| 104 | 104 | ||
| 105 | # intermediate TeX runs. | 105 | # intermediate TeX runs. |
| 106 | # | 106 | # |
| 107 | # this generates what would be the final versions -- except the page | 107 | # this generates what would be the final versions -- except the page |
| 108 | # numbers aren't right. The process of adding the I: and II: changes | 108 | # numbers aren't right. The process of adding the I: and II: changes |
| 109 | # the page breaks, so a few index entries, at least are wrong. (In | 109 | # the page breaks, so a few index entries, at least are wrong. (In |
| 110 | # 2007, x-meta-keysym in vol.II ended up on page 374 when the index had | 110 | # 2007, x-meta-keysym in vol.II ended up on page 374 when the index had |
| 111 | # it on page 375 from the initial run.) | 111 | # it on page 375 from the initial run.) |
| 112 | # | 112 | # |
| 113 | # So, we start all over again, from these fns/aux/toc files. | 113 | # So, we start all over again, from these fns/aux/toc files. |
| 114 | # | 114 | # |
| 115 | elisp1med-init: elisp1-fns-ready elisp1-aux-ready elisp1init-toc-ready $(texinfodir)/texinfo.tex | 115 | elisp1med-init: elisp1-fns-ready elisp1-aux-ready elisp1init-toc-ready $(texinfodir)/texinfo.tex |
| 116 | @echo -e "\f Intermediate TeX run for volume 1..." | 116 | @printf '\f Intermediate TeX run for volume 1...\n' |
| 117 | cp elisp1init-toc-ready elisp1-toc-ready.toc | 117 | cp elisp1init-toc-ready elisp1-toc-ready.toc |
| 118 | cp elisp1-fns-ready vol1.fns | 118 | cp elisp1-fns-ready vol1.fns |
| 119 | cp elisp1-aux-ready vol1.aux | 119 | cp elisp1-aux-ready vol1.aux |
| @@ -134,26 +134,26 @@ elisp2med-init: elisp2-fns-ready elisp2-aux-ready elisp2init-toc-ready $(texinfo | |||
| 134 | 134 | ||
| 135 | 135 | ||
| 136 | # initial toc files. | 136 | # initial toc files. |
| 137 | # | 137 | # |
| 138 | # vol1 toc: volume 1, page break, volume 2 (with II: prepended). | 138 | # vol1 toc: volume 1, page break, volume 2 (with II: prepended). |
| 139 | elisp1init-toc-ready: elisp1-init elisp2-init | 139 | elisp1init-toc-ready: elisp1-init elisp2-init |
| 140 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ | 140 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ |
| 141 | cat elisp1-toc >>$@ | 141 | cat elisp1-toc >>$@ |
| 142 | echo '@page' >>$@ | 142 | echo '@page' >>$@ |
| 143 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ | 143 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ |
| 144 | sed 's/{\([^}]*\)}$$/{II:\1}/' elisp2-toc >>$@ | 144 | sed 's/{\([^}]*\)}$$/{II:\1}/' elisp2-toc >>$@ |
| 145 | # | 145 | # |
| 146 | # vol2 toc: volume 1 (with I: prepended), page break, volume 2. | 146 | # vol2 toc: volume 1 (with I: prepended), page break, volume 2. |
| 147 | elisp2init-toc-ready: elisp1-init elisp2-init | 147 | elisp2init-toc-ready: elisp1-init elisp2-init |
| 148 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ | 148 | echo '@unnchapentry{@b{Volume 1}}{10001}{vol1}{}' >$@ |
| 149 | sed 's/{\([^}]*\)}$$/{I:\1}/' elisp1-toc >>$@ | 149 | sed 's/{\([^}]*\)}$$/{I:\1}/' elisp1-toc >>$@ |
| 150 | echo '@page' >>$@ | 150 | echo '@page' >>$@ |
| 151 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ | 151 | echo '@unnchapentry{@b{Volume 2}}{10001}{vol2}{}' >>$@ |
| 152 | cat elisp2-toc >>$@ | 152 | cat elisp2-toc >>$@ |
| 153 | 153 | ||
| 154 | 154 | ||
| 155 | # initial aux files. | 155 | # initial aux files. |
| 156 | # | 156 | # |
| 157 | # append vol2's fixed aux to normal vol1. The initial runs saved | 157 | # append vol2's fixed aux to normal vol1. The initial runs saved |
| 158 | # elisp1-aux and elisp2-aux. | 158 | # elisp1-aux and elisp2-aux. |
| 159 | elisp1-aux-ready: elisp2-aux-vol-added | 159 | elisp1-aux-ready: elisp2-aux-vol-added |
| @@ -171,7 +171,7 @@ elisp2-aux-vol-added: elisp2-init | |||
| 171 | sed 's/-pg}{\(.*\)}$$/-pg}{\1, vol.@tie2}/' elisp2-aux >$@ | 171 | sed 's/-pg}{\(.*\)}$$/-pg}{\1, vol.@tie2}/' elisp2-aux >$@ |
| 172 | 172 | ||
| 173 | # initial index (fns) file. | 173 | # initial index (fns) file. |
| 174 | # | 174 | # |
| 175 | # Append other volume's index entries to this one's. | 175 | # Append other volume's index entries to this one's. |
| 176 | # Index entries in this volume will then take precedence. | 176 | # Index entries in this volume will then take precedence. |
| 177 | elisp1-fns-ready: elisp1-fn-vol-added elisp2-fn-vol-added | 177 | elisp1-fns-ready: elisp1-fn-vol-added elisp2-fn-vol-added |
| @@ -195,14 +195,14 @@ elisp2-fn-vol-added: elisp2-init | |||
| 195 | 195 | ||
| 196 | 196 | ||
| 197 | # initial TeX runs. | 197 | # initial TeX runs. |
| 198 | # | 198 | # |
| 199 | # We use the .fn, .aux, and .toc files created here in subsequent | 199 | # We use the .fn, .aux, and .toc files created here in subsequent |
| 200 | # processing. The page numbers generated here will not be correct yet, | 200 | # processing. The page numbers generated here will not be correct yet, |
| 201 | # but we run texindex and TeX a second time just to get them closer. | 201 | # but we run texindex and TeX a second time just to get them closer. |
| 202 | # Otherwise it might take even longer for them to converge. | 202 | # Otherwise it might take even longer for them to converge. |
| 203 | # | 203 | # |
| 204 | elisp1-init: elisp.texi | 204 | elisp1-init: elisp.texi |
| 205 | @echo -e "\f Initial TeX run for volume 1..." | 205 | @printf '\f Initial TeX run for volume 1...\n' |
| 206 | rm -f vol1.aux vol1.toc | 206 | rm -f vol1.aux vol1.toc |
| 207 | $(tex1) | 207 | $(tex1) |
| 208 | texindex vol1.?? | 208 | texindex vol1.?? |
| @@ -220,17 +220,16 @@ elisp2-init: elisp.texi | |||
| 220 | touch $@ | 220 | touch $@ |
| 221 | 221 | ||
| 222 | # COPYING CONDITIONS | 222 | # COPYING CONDITIONS |
| 223 | # | 223 | # |
| 224 | # This file is free software: you can redistribute it and/or modify | 224 | # This file is free software: you can redistribute it and/or modify |
| 225 | # it under the terms of the GNU General Public License as published by | 225 | # it under the terms of the GNU General Public License as published by |
| 226 | # the Free Software Foundation, either version 3 of the License, or | 226 | # the Free Software Foundation, either version 3 of the License, or |
| 227 | # (at your option) any later version. | 227 | # (at your option) any later version. |
| 228 | # | 228 | # |
| 229 | # This file is distributed in the hope that it will be useful, | 229 | # This file is distributed in the hope that it will be useful, |
| 230 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 230 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 231 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 231 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 232 | # GNU General Public License for more details. | 232 | # GNU General Public License for more details. |
| 233 | # | 233 | # |
| 234 | # You should have received a copy of the GNU General Public License | 234 | # You should have received a copy of the GNU General Public License |
| 235 | # along with this file. If not, see <http://www.gnu.org/licenses/>. | 235 | # along with this file. If not, see <http://www.gnu.org/licenses/>. |
| 236 | |||
diff --git a/lib-src/rcs2log b/lib-src/rcs2log index d1bd3693183..4ee303d03a1 100755 --- a/lib-src/rcs2log +++ b/lib-src/rcs2log | |||
| @@ -130,7 +130,8 @@ do | |||
| 130 | case $1 in | 130 | case $1 in |
| 131 | -n) case ${2?}${3?}${4?} in | 131 | -n) case ${2?}${3?}${4?} in |
| 132 | *"$tab"* | *"$nl"*) | 132 | *"$tab"* | *"$nl"*) |
| 133 | echo >&2 "$0: -n '$2' '$3' '$4': tabs, newlines not allowed" | 133 | printf '%s\n' >&2 \ |
| 134 | "$0: -n '$2' '$3' '$4': tabs, newlines not allowed" | ||
| 134 | exit 1;; | 135 | exit 1;; |
| 135 | esac | 136 | esac |
| 136 | login=$2 | 137 | login=$2 |
| @@ -140,7 +141,7 @@ do | |||
| 140 | # If $2 is not tab-separated, use colon for separator. | 141 | # If $2 is not tab-separated, use colon for separator. |
| 141 | case ${2?} in | 142 | case ${2?} in |
| 142 | *"$nl"*) | 143 | *"$nl"*) |
| 143 | echo >&2 "$0: -u '$2': newlines not allowed" | 144 | printf '%s\n' >&2 "$0: -u '$2': newlines not allowed" |
| 144 | exit 1;; | 145 | exit 1;; |
| 145 | *"$tab"*) | 146 | *"$tab"*) |
| 146 | t=$tab;; | 147 | t=$tab;; |
| @@ -149,7 +150,7 @@ do | |||
| 149 | esac | 150 | esac |
| 150 | case $2 in | 151 | case $2 in |
| 151 | *"$t"*"$t"*"$t"*) | 152 | *"$t"*"$t"*"$t"*) |
| 152 | echo >&2 "$0: -u '$2': too many fields" | 153 | printf '%s\n' >&2 "$0: -u '$2': too many fields" |
| 153 | exit 1;; | 154 | exit 1;; |
| 154 | *"$t"*"$t"*) | 155 | *"$t"*"$t"*) |
| 155 | uf="[^$t]*$t" # An unselected field, followed by a separator. | 156 | uf="[^$t]*$t" # An unselected field, followed by a separator. |
| @@ -161,7 +162,7 @@ do | |||
| 161 | expr "X$2" : "$uf$uf$sf" | 162 | expr "X$2" : "$uf$uf$sf" |
| 162 | `;; | 163 | `;; |
| 163 | *) | 164 | *) |
| 164 | echo >&2 "$0: -u '$2': not enough fields" | 165 | printf '%s\n' >&2 "$0: -u '$2': not enough fields" |
| 165 | exit 1;; | 166 | exit 1;; |
| 166 | esac | 167 | esac |
| 167 | shift;; | 168 | shift;; |
| @@ -186,9 +187,9 @@ do | |||
| 186 | --version) | 187 | --version) |
| 187 | set $Id | 188 | set $Id |
| 188 | rcs2logVersion=$3 | 189 | rcs2logVersion=$3 |
| 189 | echo >&2 "rcs2log (GNU Emacs) $rcs2logVersion$nl$Copyright" | 190 | printf '%s\n' >&2 "rcs2log (GNU Emacs) $rcs2logVersion$nl$Copyright" |
| 190 | exit 0;; | 191 | exit 0;; |
| 191 | -*) echo >&2 "Usage: $0 [OPTION]... [FILE ...]$nl$Help" | 192 | -*) printf '%s\n' >&2 "Usage: $0 [OPTION]... [FILE ...]$nl$Help" |
| 192 | case $1 in | 193 | case $1 in |
| 193 | --help) exit 0;; | 194 | --help) exit 0;; |
| 194 | *) exit 1;; | 195 | *) exit 1;; |
| @@ -303,7 +304,8 @@ case $rlogfile in | |||
| 303 | esac | 304 | esac |
| 304 | if test ! -d "$repository" | 305 | if test ! -d "$repository" |
| 305 | then | 306 | then |
| 306 | echo >&2 "$0: $repository: bad repository (see CVS/Repository)" | 307 | printf '%s\n' >&2 \ |
| 308 | "$0: $repository: bad repository (see CVS/Repository)" | ||
| 307 | exit 1 | 309 | exit 1 |
| 308 | fi | 310 | fi |
| 309 | pository=$repository;; | 311 | pository=$repository;; |
| @@ -330,7 +332,7 @@ case $rlogfile in | |||
| 330 | T?*) | 332 | T?*) |
| 331 | rlog_options=-r`expr "$CVSTAG" : 'T\(.*\)'`;; | 333 | rlog_options=-r`expr "$CVSTAG" : 'T\(.*\)'`;; |
| 332 | *) | 334 | *) |
| 333 | echo >&2 "$0: invalid CVS/Tag"; exit 1;; | 335 | printf '%s\n' >&2 "$0: invalid CVS/Tag"; exit 1;; |
| 334 | esac | 336 | esac |
| 335 | fi;; | 337 | fi;; |
| 336 | esac | 338 | esac |
| @@ -595,7 +597,7 @@ case $hostname in | |||
| 595 | hostname=`( | 597 | hostname=`( |
| 596 | hostname || uname -n || uuname -l || cat /etc/whoami | 598 | hostname || uname -n || uuname -l || cat /etc/whoami |
| 597 | ) 2>/dev/null` || { | 599 | ) 2>/dev/null` || { |
| 598 | echo >&2 "$0: cannot deduce hostname" | 600 | printf '%s\n' >&2 "$0: cannot deduce hostname" |
| 599 | exit 1 | 601 | exit 1 |
| 600 | } | 602 | } |
| 601 | 603 | ||
diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 15d4d37f7ba..ed1246b0cf4 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in | |||
| @@ -221,7 +221,7 @@ lisptagsfiles2 = $(srcdir)/*/*.el | |||
| 221 | lisptagsfiles3 = $(srcdir)/*/*/*.el | 221 | lisptagsfiles3 = $(srcdir)/*/*/*.el |
| 222 | lisptagsfiles4 = $(srcdir)/*/*/*/*.el | 222 | lisptagsfiles4 = $(srcdir)/*/*/*/*.el |
| 223 | 223 | ||
| 224 | ## The echo | sed | xargs is to stop the command line getting too long | 224 | ## The ls | sed | xargs is to stop the command line getting too long |
| 225 | ## on MS Windows, when the MSYS Bash passes it to a MinGW compiled | 225 | ## on MS Windows, when the MSYS Bash passes it to a MinGW compiled |
| 226 | ## etags. It might be better to use find in a similar way to | 226 | ## etags. It might be better to use find in a similar way to |
| 227 | ## compile-main. But maybe this is not even necessary any more now | 227 | ## compile-main. But maybe this is not even necessary any more now |
| @@ -229,10 +229,9 @@ lisptagsfiles4 = $(srcdir)/*/*/*/*.el | |||
| 229 | TAGS: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) | 229 | TAGS: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) |
| 230 | rm -f $@ | 230 | rm -f $@ |
| 231 | touch $@ | 231 | touch $@ |
| 232 | echo $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4) | \ | 232 | ls $(lisptagsfiles1) $(lisptagsfiles2) \ |
| 233 | sed -e 's,$(srcdir)/[^ ]*loaddefs[^ ]*,,g' \ | 233 | $(lisptagsfiles3) $(lisptagsfiles4) | \ |
| 234 | -e 's,$(srcdir)/ldefs-boot[^ ]*,,' \ | 234 | sed -e '/loaddefs/d; /\/ldefs-boot/d; /esh-groups\.el/d' | \ |
| 235 | -e 's,$(srcdir)/[^ ]*esh-groups.el[^ ]*,,' | \ | ||
| 236 | xargs $(XARGS_LIMIT) "$(ETAGS)" -a -o $@ | 235 | xargs $(XARGS_LIMIT) "$(ETAGS)" -a -o $@ |
| 237 | 236 | ||
| 238 | 237 | ||
diff --git a/lisp/term.el b/lisp/term.el index e5ae5530ce9..41577c90301 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -245,86 +245,48 @@ | |||
| 245 | ;; ---------------------------------------- | 245 | ;; ---------------------------------------- |
| 246 | ;; | 246 | ;; |
| 247 | ;; Notice: for directory/host/user tracking you need to have something | 247 | ;; Notice: for directory/host/user tracking you need to have something |
| 248 | ;; like this in your shell startup script ( this is for tcsh but should | 248 | ;; like this in your shell startup script (this is for a POSIXish shell |
| 249 | ;; be quite easy to port to other shells ) | 249 | ;; like Bash but should be quite easy to port to other shells) |
| 250 | ;; | 250 | ;; |
| 251 | ;; ---------------------------------------- | 251 | ;; ---------------------------------------- |
| 252 | ;; | 252 | ;; |
| 253 | ;; | 253 | ;; # Set HOSTNAME if not already set. |
| 254 | ;; set os = `uname` | 254 | ;; : ${HOSTNAME=$(uname -n)} |
| 255 | ;; set host = `hostname` | ||
| 256 | ;; set date = `date` | ||
| 257 | ;; | 255 | ;; |
| 258 | ;; # su does not change this but I'd like it to | 256 | ;; # su does not change this but I'd like it to |
| 259 | ;; | 257 | ;; |
| 260 | ;; set user = `whoami` | 258 | ;; USER=$(whoami) |
| 261 | ;; | 259 | ;; |
| 262 | ;; # ... | 260 | ;; # ... |
| 263 | ;; | 261 | ;; |
| 264 | ;; if ( eterm =~ $TERM ) then | 262 | ;; case $TERM in |
| 265 | ;; | 263 | ;; eterm*) |
| 266 | ;; echo -------------------------------------------------------------- | ||
| 267 | ;; echo Hello $user | ||
| 268 | ;; echo Today is $date | ||
| 269 | ;; echo We are on $host running $os under Emacs term mode | ||
| 270 | ;; echo -------------------------------------------------------------- | ||
| 271 | ;; | ||
| 272 | ;; setenv EDITOR emacsclient | ||
| 273 | ;; | ||
| 274 | ;; # Notice: $host and $user have been set before to 'hostname' and 'whoami' | ||
| 275 | ;; # this is necessary because, f.e., certain versions of 'su' do not change | ||
| 276 | ;; # $user, YMMV: if you don't want to fiddle with them define a couple | ||
| 277 | ;; # of new variables and use these instead. | ||
| 278 | ;; # NOTICE that there is a space between "AnSiT?" and $whatever NOTICE | ||
| 279 | ;; | ||
| 280 | ;; # These are because we want the real cwd in the messages, not the login | ||
| 281 | ;; # time one ! | ||
| 282 | ;; | ||
| 283 | ;; set cwd_hack='$cwd' | ||
| 284 | ;; set host_hack='$host' | ||
| 285 | ;; set user_hack='$user' | ||
| 286 | ;; | 264 | ;; |
| 287 | ;; # Notice that the ^[ character is an ESC, not two chars. You can | 265 | ;; printf '%s\n' \ |
| 288 | ;; # get it in various ways, for example by typing | 266 | ;; -------------------------------------------------------------- \ |
| 289 | ;; # echo -e '\033' > escape.file | 267 | ;; "Hello $user" \ |
| 290 | ;; # or by using your favorite editor | 268 | ;; "Today is $(date)" \ |
| 269 | ;; "We are on $HOSTNAME running $(uname) under Emacs term mode" \ | ||
| 270 | ;; -------------------------------------------------------------- | ||
| 291 | ;; | 271 | ;; |
| 292 | ;; foreach temp (cd pushd) | 272 | ;; export EDITOR=emacsclient |
| 293 | ;; alias $temp "$temp \!* ; echo 'AnSiTc' $cwd_hack" | ||
| 294 | ;; end | ||
| 295 | ;; alias popd 'popd ;echo "AnSiTc" $cwd' | ||
| 296 | ;; | 273 | ;; |
| 297 | ;; # Every command that can modify the user/host/directory should be aliased | 274 | ;; # The \033 stands for ESC. |
| 298 | ;; # as follows for the tracking mechanism to work. | 275 | ;; # There is a space between "AnSiT?" and $whatever. |
| 299 | ;; | 276 | ;; |
| 300 | ;; foreach temp ( rlogin telnet rsh sh ksh csh tcsh zsh bash tcl su ) | 277 | ;; cd() { command cd "$@"; printf '\033AnSiTc %s\n' "$PWD"; } |
| 301 | ;; alias $temp "$temp \!* ; echo 'AnSiTh' $host_hack ; \ | 278 | ;; pushd() { command pushd "$@"; printf '\033AnSiTc %s\n' "$PWD"; } |
| 302 | ;; echo 'AnSiTu' $user_hack ;echo 'AnSiTc' $cwd_hack" | 279 | ;; popd() { command popd "$@"; printf '\033AnSiTc %s\n' "$PWD"; } |
| 303 | ;; end | ||
| 304 | ;; | 280 | ;; |
| 305 | ;; # Start up & use color ls | 281 | ;; printf '\033AnSiTc %s\n' "$PWD" |
| 282 | ;; printf '\033AnSiTh %s\n' "$HOSTNAME" | ||
| 283 | ;; printf '\033AnSiTu %s\n' "$USER" | ||
| 306 | ;; | 284 | ;; |
| 307 | ;; echo "AnSiTh" $host | 285 | ;; eval $(dircolors $HOME/.emacs_dircolors) |
| 308 | ;; echo "AnSiTu" $user | 286 | ;; esac |
| 309 | ;; echo "AnSiTc" $cwd | ||
| 310 | ;; | ||
| 311 | ;; # some housekeeping | ||
| 312 | ;; | ||
| 313 | ;; unset cwd_hack | ||
| 314 | ;; unset host_hack | ||
| 315 | ;; unset user_hack | ||
| 316 | ;; unset temp | ||
| 317 | ;; | ||
| 318 | ;; eval `/bin/dircolors /home/marco/.emacs_dircolors` | ||
| 319 | ;; endif | ||
| 320 | ;; | 287 | ;; |
| 321 | ;; # ... | 288 | ;; # ... |
| 322 | ;; | 289 | ;; |
| 323 | ;; # Let's not clutter user space | ||
| 324 | ;; | ||
| 325 | ;; unset os | ||
| 326 | ;; unset date | ||
| 327 | ;; | ||
| 328 | ;; | 290 | ;; |
| 329 | 291 | ||
| 330 | ;;; Original Commentary: | 292 | ;;; Original Commentary: |
| @@ -110,7 +110,7 @@ while [ $# -gt 0 ]; do | |||
| 110 | ;; | 110 | ;; |
| 111 | 111 | ||
| 112 | "--help") | 112 | "--help") |
| 113 | echo "Usage: ${progname} [options]" | 113 | printf '%s\n' "Usage: ${progname} [options]" |
| 114 | echo "" | 114 | echo "" |
| 115 | echo " --bzip2 use bzip2 instead of gzip" | 115 | echo " --bzip2 use bzip2 instead of gzip" |
| 116 | echo " --clean-up delete staging directories when done" | 116 | echo " --clean-up delete staging directories when done" |
| @@ -128,7 +128,7 @@ while [ $# -gt 0 ]; do | |||
| 128 | ;; | 128 | ;; |
| 129 | 129 | ||
| 130 | * ) | 130 | * ) |
| 131 | echo "${progname}: Unrecognized argument: $1" >&2 | 131 | printf '%s\n' "${progname}: Unrecognized argument: $1" >&2 |
| 132 | exit 1 | 132 | exit 1 |
| 133 | ;; | 133 | ;; |
| 134 | esac | 134 | esac |
| @@ -137,9 +137,9 @@ done | |||
| 137 | 137 | ||
| 138 | ### Make sure we're running in the right place. | 138 | ### Make sure we're running in the right place. |
| 139 | if [ ! -d src -o ! -f src/lisp.h -o ! -d lisp -o ! -f lisp/subr.el ]; then | 139 | if [ ! -d src -o ! -f src/lisp.h -o ! -d lisp -o ! -f lisp/subr.el ]; then |
| 140 | echo "${progname}: Can't find 'src/lisp.h' and 'lisp/subr.el'." >&2 | 140 | printf '%s\n' "${progname}: Can't find 'src/lisp.h' and 'lisp/subr.el'." >&2 |
| 141 | echo "${progname} must be run in the top directory of the Emacs" >&2 | 141 | printf '%s\n' "${progname} must be run in the top directory of the Emacs" >&2 |
| 142 | echo "distribution tree. cd to that directory and try again." >&2 | 142 | printf '%s\n' "distribution tree. cd to that directory and try again." >&2 |
| 143 | exit 1 | 143 | exit 1 |
| 144 | fi | 144 | fi |
| 145 | 145 | ||
| @@ -155,7 +155,7 @@ then | |||
| 155 | /*) ;; | 155 | /*) ;; |
| 156 | *) | 156 | *) |
| 157 | if [ ! -f "$EMACS" ]; then | 157 | if [ ! -f "$EMACS" ]; then |
| 158 | echo "$0: You must set the EMACS environment variable " \ | 158 | printf '%s\n' "$0: You must set the EMACS environment variable " \ |
| 159 | "to an absolute file name." 2>&1 | 159 | "to an absolute file name." 2>&1 |
| 160 | exit 1 | 160 | exit 1 |
| 161 | fi;; | 161 | fi;; |
| @@ -168,7 +168,8 @@ version=` | |||
| 168 | sed -n 's/^AC_INIT(GNU Emacs,[ ]*\([^ ,)]*\).*/\1/p' <configure.ac | 168 | sed -n 's/^AC_INIT(GNU Emacs,[ ]*\([^ ,)]*\).*/\1/p' <configure.ac |
| 169 | ` || version= | 169 | ` || version= |
| 170 | if [ ! "${version}" ]; then | 170 | if [ ! "${version}" ]; then |
| 171 | echo "${progname}: can't find current Emacs version in './src/emacs.c'" >&2 | 171 | printf '%s\n' \ |
| 172 | "${progname}: can't find current Emacs version in './src/emacs.c'" >&2 | ||
| 172 | exit 1 | 173 | exit 1 |
| 173 | fi | 174 | fi |
| 174 | 175 | ||
| @@ -195,7 +196,7 @@ fi | |||
| 195 | ### Make sure the subdirectory is available. | 196 | ### Make sure the subdirectory is available. |
| 196 | tempparent="make-dist.tmp.$$" | 197 | tempparent="make-dist.tmp.$$" |
| 197 | if [ -d ${tempparent} ]; then | 198 | if [ -d ${tempparent} ]; then |
| 198 | echo "${progname}: staging directory '${tempparent}' already exists. | 199 | printf '%s\n' "${progname}: staging directory '${tempparent}' already exists. |
| 199 | Perhaps a previous invocation of '${progname}' failed to clean up after | 200 | Perhaps a previous invocation of '${progname}' failed to clean up after |
| 200 | itself. Check that directories whose names are of the form | 201 | itself. Check that directories whose names are of the form |
| 201 | 'make-dist.tmp.NNNNN' don't contain any important information, remove | 202 | 'make-dist.tmp.NNNNN' don't contain any important information, remove |
| @@ -530,7 +531,7 @@ for subdir in . etc leim lib lib-src lisp lwlib msdos nt src; do | |||
| 530 | done | 531 | done |
| 531 | 532 | ||
| 532 | if [ "${newer}" ]; then | 533 | if [ "${newer}" ]; then |
| 533 | echo "Removing files older than $newer" | 534 | printf '%s\n' "Removing files older than $newer" |
| 534 | ## We remove .elc files unconditionally, on the theory that anyone picking | 535 | ## We remove .elc files unconditionally, on the theory that anyone picking |
| 535 | ## up an incremental distribution already has a running Emacs to byte-compile | 536 | ## up an incremental distribution already has a running Emacs to byte-compile |
| 536 | ## them with. | 537 | ## them with. |
| @@ -544,8 +545,9 @@ find ${tempparent} \( -name '*~' -o -name '#*#' -o -name '.*ignore' -o -name '=* | |||
| 544 | if [ "${make_tar}" = yes ]; then | 545 | if [ "${make_tar}" = yes ]; then |
| 545 | echo "Looking for $default_gzip" | 546 | echo "Looking for $default_gzip" |
| 546 | found=0 | 547 | found=0 |
| 547 | temppath=`echo $PATH | sed -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \ | 548 | temppath=`printf '%s\n' "$PATH" | |
| 548 | -e 's/:/ /g'` | 549 | sed -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' -e 's/:/ /g' |
| 550 | ` | ||
| 549 | for dir in ${temppath}; do | 551 | for dir in ${temppath}; do |
| 550 | [ -x ${dir}/$default_gzip ] || continue | 552 | [ -x ${dir}/$default_gzip ] || continue |
| 551 | found=1; break | 553 | found=1; break |
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) | |||
| 443 | shortlisp = | 443 | shortlisp = |
| 444 | lisp.mk: $(lispsource)/loadup.el | 444 | lisp.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 "" ) > $@ |
diff --git a/test/etags/make-src/Makefile b/test/etags/make-src/Makefile index daf605d0016..016c633d791 100644 --- a/test/etags/make-src/Makefile +++ b/test/etags/make-src/Makefile | |||
| @@ -15,7 +15,7 @@ ERLSRC=gs_dialog.erl lines.erl lists.erl | |||
| 15 | FORTHSRC=test-forth.fth | 15 | FORTHSRC=test-forth.fth |
| 16 | FSRC=entry.for entry.strange_suffix entry.strange | 16 | FSRC=entry.for entry.strange_suffix entry.strange |
| 17 | HTMLSRC=softwarelibero.html index.shtml algrthms.html software.html | 17 | HTMLSRC=softwarelibero.html index.shtml algrthms.html software.html |
| 18 | JAVASRC=AWTEMul.java KeyEve.java SMan.java SysCol.java TG.java | 18 | JAVASRC=AWTEMul.java KeyEve.java SMan.java SysCol.java TG.java |
| 19 | LUASRC=allegro.lua | 19 | LUASRC=allegro.lua |
| 20 | MAKESRC=Makefile | 20 | MAKESRC=Makefile |
| 21 | OBJCSRC=Subprocess.h Subprocess.m PackInsp.h PackInsp.m | 21 | OBJCSRC=Subprocess.h Subprocess.m PackInsp.h PackInsp.m |
| @@ -120,9 +120,9 @@ rsyncfromfly: | |||
| 120 | rsync --exclude "*~" --exclude core --exclude etags -zauRv fly:gnu/etags/ ../.. | 120 | rsync --exclude "*~" --exclude core --exclude etags -zauRv fly:gnu/etags/ ../.. |
| 121 | 121 | ||
| 122 | web ftp publish: | 122 | web ftp publish: |
| 123 | @-echo -e \\ttesting with debugging enabled...; $(MAKE) quiettest | 123 | @-printf '\ttesting with debugging enabled...\n'; $(MAKE) quiettest |
| 124 | @-echo -e \\ttesting standalone...; $(MAKE) standalone quiettest | 124 | @-printf '\ttesting standalone...\n'; $(MAKE) standalone quiettest |
| 125 | @-echo -e \\ttesting fast versions...; $(MAKE) fastetags fastctags quiettest | 125 | @-printf '\ttesting fast versions...\n'; $(MAKE) fastetags fastctags quiettest |
| 126 | @$(MAKE) /home/www/pub/etags.c.gz | 126 | @$(MAKE) /home/www/pub/etags.c.gz |
| 127 | @$(MAKE) /home/www/pub/software/unix/etags.tar.gz | 127 | @$(MAKE) /home/www/pub/software/unix/etags.tar.gz |
| 128 | 128 | ||