------------------------------------------------------------ revno: 114751 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-10-23 00:28:30 -0700 message: More Makefile quoting * Makefile.in (install-arch-dep, install-nt, uninstall, uninstall-nt): Quote entities that might contain whitespace. diff: === modified file 'ChangeLog' --- ChangeLog 2013-10-23 07:20:57 +0000 +++ ChangeLog 2013-10-23 07:28:30 +0000 @@ -3,7 +3,8 @@ Progress towards allowing installation in directories with whitespace. * Makefile.in (COPYDESTS, write_subdir, install-arch-dep) (install-arch-indep, install-etcdoc, install-info, install-man) - (install-etc, uninstall): Quote entities that might contain whitespace. + (install-etc, uninstall, install-nt, uninstall-nt): + Quote entities that might contain whitespace. * build-aux/update-subdirs: Handle whitespace in argument. Check cd return value. === modified file 'Makefile.in' --- Makefile.in 2013-10-23 07:20:57 +0000 +++ Makefile.in 2013-10-23 07:28:30 +0000 @@ -485,9 +485,9 @@ install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR) umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}" cd lib-src && \ - $(MAKE) install $(MFLAGS) prefix=${prefix} \ - exec_prefix=${exec_prefix} bindir=${bindir} \ - libexecdir=${libexecdir} archlibdir=${archlibdir} \ + $(MAKE) install $(MFLAGS) prefix="${prefix}" \ + exec_prefix="${exec_prefix}" bindir="${bindir}" \ + libexecdir="${libexecdir}" archlibdir="${archlibdir}" \ INSTALL_STRIP=${INSTALL_STRIP} if test "${ns_self_contained}" = "no"; then \ ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" || exit 1 ; \ @@ -507,9 +507,9 @@ install-: install-nt: cd $(NTDIR) && \ - $(MAKE) install $(MFLAGS) prefix=${prefix} \ - exec_prefix=${exec_prefix} bindir=${bindir} \ - libexecdir=${libexecdir} archlibdir=${archlibdir} \ + $(MAKE) install $(MFLAGS) prefix="${prefix}" \ + exec_prefix="${exec_prefix}" bindir="${bindir}" \ + libexecdir="${libexecdir}" archlibdir="${archlibdir}" \ INSTALL_STRIP=${INSTALL_STRIP} ## In the share directory, we are deleting: @@ -731,8 +731,9 @@ uninstall: uninstall-$(NTDIR) uninstall-doc cd lib-src && \ $(MAKE) $(MFLAGS) uninstall \ - prefix=${prefix} exec_prefix=${exec_prefix} \ - bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir} + prefix="${prefix}" exec_prefix="${exec_prefix}" \ + bindir="${bindir}" libexecdir="${libexecdir}" \ + archlibdir="${archlibdir}" -unset CDPATH; \ for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" ; do \ @@ -784,8 +785,9 @@ uninstall-nt: cd $(NTDIR) && \ $(MAKE) $(MFLAGS) uninstall \ - prefix=${prefix} exec_prefix=${exec_prefix} \ - bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir} + prefix="${prefix}" exec_prefix="${exec_prefix}" \ + bindir="${bindir}" libexecdir="${libexecdir}" \ + archlibdir="${archlibdir}" FRC: ------------------------------------------------------------ revno: 114750 committer: Glenn Morris branch nick: trunk timestamp: Wed 2013-10-23 00:20:57 -0700 message: Progress towards allowing installation in directories with whitespace * Makefile.in (COPYDESTS, write_subdir, install-arch-dep) (install-arch-indep, install-etcdoc, install-info, install-man) (install-etc, uninstall): Quote entities that might contain whitespace. * build-aux/update-subdirs: Handle whitespace in argument. Check cd return value. * doc/emacs/Makefile.in (install-dvi, install-html, install-pdf) (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) (uninstall-pdf): Quote entities that might contain whitespace. * doc/lispintro/Makefile.in (install-dvi, install-html, install-pdf) (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) (uninstall-pdf): Quote entities that might contain whitespace. * doc/lispref/Makefile.in (install-dvi, install-html, install-pdf) (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) (uninstall-pdf): Quote entities that might contain whitespace. * doc/misc/Makefile.in (install-dvi, install-html, install-pdf) (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) (uninstall-pdf): Quote entities that might contain whitespace. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install) (uninstall): Quote entities that might contain whitespace. * nt/Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall): Quote entities that might contain whitespace. diff: === modified file 'ChangeLog' --- ChangeLog 2013-10-23 06:22:54 +0000 +++ ChangeLog 2013-10-23 07:20:57 +0000 @@ -1,5 +1,12 @@ 2013-10-23 Glenn Morris + Progress towards allowing installation in directories with whitespace. + * Makefile.in (COPYDESTS, write_subdir, install-arch-dep) + (install-arch-indep, install-etcdoc, install-info, install-man) + (install-etc, uninstall): Quote entities that might contain whitespace. + * build-aux/update-subdirs: Handle whitespace in argument. + Check cd return value. + Make building in directories with whitespace possible. (Bug#15675) * configure.ac (srcdir): Don't make it absolute - abs_srcdir exists. * Makefile.in (abs_srcdir): New, set by configure. === modified file 'Makefile.in' --- Makefile.in 2013-10-23 06:22:54 +0000 +++ Makefile.in 2013-10-23 07:20:57 +0000 @@ -284,7 +284,7 @@ # separately. quail appears twice because in out-of-tree builds, it # exists twice. COPYDIR = ${srcdir}/etc ${srcdir}/lisp ${srcdir}/leim/ja-dic ${srcdir}/leim/quail leim/quail -COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}/ja-dic $(DESTDIR)${leimdir}/quail $(DESTDIR)${leimdir}/quail +COPYDESTS = "$(DESTDIR)${etcdir}" "$(DESTDIR)${lispdir}" "$(DESTDIR)${leimdir}/ja-dic" "$(DESTDIR)${leimdir}/quail" "$(DESTDIR)${leimdir}/quail" all: ${SUBDIR} @@ -469,32 +469,32 @@ ## world-readable. ## TODO it might be good to warn about non-standard permissions of ## pre-existing directories, but that does not seem easy. -write_subdir=if [ -f $${subdir}/subdirs.el ]; \ +write_subdir=if [ -f "$${subdir}/subdirs.el" ]; \ then true; \ else \ umask 022; \ - ${MKDIR_P} $${subdir}; \ + ${MKDIR_P} "$${subdir}"; \ (echo "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)"; \ echo " (normal-top-level-add-subdirs-to-load-path))") \ - > $${subdir}/subdirs.el; \ + > "$${subdir}/subdirs.el"; \ fi ### Install the executables that were compiled specifically for this machine. ### We do install-arch-indep first because the executable needs the ### Lisp files and DOC file to work properly. install-arch-dep: src install-arch-indep install-etcdoc install-$(NTDIR) - umask 022; ${MKDIR_P} $(DESTDIR)${bindir} + umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}" cd lib-src && \ $(MAKE) install $(MFLAGS) prefix=${prefix} \ exec_prefix=${exec_prefix} bindir=${bindir} \ libexecdir=${libexecdir} archlibdir=${archlibdir} \ INSTALL_STRIP=${INSTALL_STRIP} if test "${ns_self_contained}" = "no"; then \ - ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} $(DESTDIR)${bindir}/$(EMACSFULL) || exit 1 ; \ - chmod 1755 $(DESTDIR)${bindir}/$(EMACSFULL) || true; \ + ${INSTALL_PROGRAM} $(INSTALL_STRIP) src/emacs${EXEEXT} "$(DESTDIR)${bindir}/$(EMACSFULL)" || exit 1 ; \ + chmod 1755 "$(DESTDIR)${bindir}/$(EMACSFULL)" || true; \ if test "x${NO_BIN_LINK}" = x; then \ - rm -f $(DESTDIR)${bindir}/$(EMACS) ; \ - cd $(DESTDIR)${bindir} && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS); \ + rm -f "$(DESTDIR)${bindir}/$(EMACS)" ; \ + cd "$(DESTDIR)${bindir}" && $(LN_S_FILEONLY) $(EMACSFULL) $(EMACS); \ fi; \ else \ subdir=${ns_appresdir}/site-lisp; \ @@ -568,62 +568,63 @@ $(set_installuser); \ for dir in ${COPYDIR} ; do \ [ -d $${dir} ] || exit 1 ; \ - dest=$$1 ; shift ; \ - [ -d $${dest} ] && \ - [ "`cd $${dest} && /bin/pwd`" = "`cd $${dir} && /bin/pwd`" ] && \ + dest="$$1" ; shift ; \ + [ -d "$${dest}" ] && \ + [ "`cd \"$${dest}\" && /bin/pwd`" = "`cd $${dir} && /bin/pwd`" ] && \ continue ; \ if [ "$${dir}" = "leim/quail" ]; then \ [ "`cd $${dir} && /bin/pwd`" = "`cd ${srcdir}/leim/quail && /bin/pwd`" ] && \ continue ; \ else \ - rm -rf $${dest} ; \ - umask 022; ${MKDIR_P} $${dest} ; \ + rm -rf "$${dest}" ; \ + umask 022; ${MKDIR_P} "$${dest}" ; \ fi ; \ echo "Copying $${dir} to $${dest}..." ; \ (cd $${dir}; tar -chf - . ) \ - | (cd $${dest}; umask 022; \ + | (cd "$${dest}"; umask 022; \ tar -xvf - && cat > /dev/null) || exit 1; \ if [ "$${dir}" = "${srcdir}/etc" ]; then \ - rm -f $${dest}/DOC* ; \ - rm -f $${dest}/refcards/*.aux $${dest}/refcards/*.dvi; \ - rm -f $${dest}/refcards/*.log; \ + rm -f "$${dest}/DOC"* ; \ + rm -f "$${dest}/refcards"/*.aux "$${dest}/refcards"/*.dvi; \ + rm -f "$${dest}/refcards"/*.log; \ else true; \ fi; \ - for subdir in `find $${dest} -type d -print` ; do \ - chmod a+rx $${subdir} ; \ - rm -f $${subdir}/.gitignore ; \ - rm -f $${subdir}/.arch-inventory ; \ - rm -f $${subdir}/.DS_Store ; \ - rm -f $${subdir}/\#* ; \ - rm -f $${subdir}/.\#* ; \ - rm -f $${subdir}/*~ ; \ - rm -f $${subdir}/*.orig ; \ - rm -f $${subdir}/ChangeLog* ; \ - [ "$${dir}" != "${srcdir}/etc" ] && \ - rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \ - done ; \ - find $${dest} -exec chown $${installuser} {} ';' ;\ + (cd "$${dest}" || exit 1; \ + for subdir in `find . -type d -print` ; do \ + chmod a+rx $${subdir} ; \ + rm -f $${subdir}/.gitignore ; \ + rm -f $${subdir}/.arch-inventory ; \ + rm -f $${subdir}/.DS_Store ; \ + rm -f $${subdir}/\#* ; \ + rm -f $${subdir}/.\#* ; \ + rm -f $${subdir}/*~ ; \ + rm -f $${subdir}/*.orig ; \ + rm -f $${subdir}/ChangeLog* ; \ + [ "$${dir}" != "${srcdir}/etc" ] && \ + rm -f $${subdir}/[mM]akefile*[.-]in $${subdir}/[mM]akefile ; \ + done ); \ + find "$${dest}" -exec chown $${installuser} {} ';' ;\ done - -rm -f $(DESTDIR)${leimdir}/leim-list.el - ${INSTALL_DATA} leim/leim-list.el $(DESTDIR)${leimdir}/leim-list.el - -rm -f $(DESTDIR)${lispdir}/subdirs.el - umask 022; $(srcdir)/build-aux/update-subdirs $(DESTDIR)${lispdir} - subdir=$(DESTDIR)${datadir}/emacs/${version}/site-lisp ; \ + -rm -f "$(DESTDIR)${leimdir}/leim-list.el" + ${INSTALL_DATA} leim/leim-list.el "$(DESTDIR)${leimdir}/leim-list.el" + -rm -f "$(DESTDIR)${lispdir}/subdirs.el" + umask 022; $(srcdir)/build-aux/update-subdirs "$(DESTDIR)${lispdir}" + subdir="$(DESTDIR)${datadir}/emacs/${version}/site-lisp" ; \ ${write_subdir} - subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \ + subdir="$(DESTDIR)${datadir}/emacs/site-lisp" ; \ ${write_subdir} || true [ -z "${GZIP_PROG}" ] || \ ( echo "Compressing *.el ..." ; \ unset CDPATH; \ thisdir=`/bin/pwd`; \ - for dir in $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}; do \ + for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${leimdir}"; do \ cd "$${thisdir}" ; \ - cd $${dir} || exit 1 ; \ + cd "$${dir}" || exit 1 ; \ for f in `find . -name "*.elc" -print`; do \ - ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ + ${GZIP_PROG} -9n "`echo \"$$f\" | sed 's/.elc$$/.el/'`" ; \ done ; \ done ) - -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} + -chmod -R a+r "$(DESTDIR)${datadir}/emacs/${version}" ${COPYDESTS} ## The above chmods are needed because "umask 022; tar ..." is not ## guaranteed to do the right thing; eg if we are root and tar is @@ -633,40 +634,40 @@ ## installed etc/ directory, so we need it to run before this does. install-etcdoc: src install-arch-indep -unset CDPATH; \ - umask 022; ${MKDIR_P} $(DESTDIR)${etcdocdir} ; \ - if [ "`cd ./etc; /bin/pwd`" != "`cd $(DESTDIR)${etcdocdir}; /bin/pwd`" ]; \ + umask 022; ${MKDIR_P} "$(DESTDIR)${etcdocdir}" ; \ + if [ "`cd ./etc; /bin/pwd`" != "`cd \"$(DESTDIR)${etcdocdir}\"; /bin/pwd`" ]; \ then \ docfile="DOC"; \ echo "Copying etc/$${docfile} to $(DESTDIR)${etcdocdir} ..." ; \ - ${INSTALL_DATA} etc/$${docfile} $(DESTDIR)${etcdocdir}/$${docfile}; \ + ${INSTALL_DATA} etc/$${docfile} "$(DESTDIR)${etcdocdir}/$${docfile}"; \ $(set_installuser); \ - chown $${installuser} $(DESTDIR)${etcdocdir}/$${docfile} || true ; \ + chown $${installuser} "$(DESTDIR)${etcdocdir}/$${docfile}" || true ; \ else true; fi install-info: info - umask 022; ${MKDIR_P} $(DESTDIR)${infodir} + umask 022; ${MKDIR_P} "$(DESTDIR)${infodir}" -unset CDPATH; \ thisdir=`/bin/pwd`; \ - if [ "`cd ${srcdir}/info && /bin/pwd`" = "`cd $(DESTDIR)${infodir} && /bin/pwd`" ]; then \ + if [ "`cd ${srcdir}/info && /bin/pwd`" = "`cd \"$(DESTDIR)${infodir}\" && /bin/pwd`" ]; then \ true; \ else \ (cd "$(DESTDIR)${infodir}"; \ [ -f dir ] || \ (cd "$${thisdir}"; \ - ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ); \ + ${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir") ); \ info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \ (cd "$${thisdir}"; \ - ${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \ + ${INSTALL_DATA} ${srcdir}/info/$$f "$(DESTDIR)${infodir}/$$f"); \ [ -n "${GZIP_PROG}" ] || continue ; \ - rm -f $(DESTDIR)${infodir}/$$f.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \ + rm -f "$(DESTDIR)${infodir}/$$f.gz"; \ + ${GZIP_PROG} -9n "$(DESTDIR)${infodir}/$$f"; \ done; \ (cd "$${thisdir}"; \ - ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ + ${INSTALL_INFO} --info-dir="$(DESTDIR)${infodir}" "$(DESTDIR)${infodir}/$$elt"); \ done; \ fi @@ -677,16 +678,16 @@ ## ctags.1 is compressed or not. "gzip -f" is another option here, ## but not sure if portable. install-man: - umask 022; ${MKDIR_P} $(DESTDIR)${man1dir} + umask 022; ${MKDIR_P} "$(DESTDIR)${man1dir}" thisdir=`/bin/pwd`; \ cd ${mansrcdir}; \ for page in *.1; do \ dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \ (cd "$${thisdir}"; \ - ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \ + ${INSTALL_DATA} ${mansrcdir}/$${page} "$(DESTDIR)${man1dir}/$${dest}"); \ [ -n "${GZIP_PROG}" ] || continue ; \ - rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest} || true; \ + rm -f "$(DESTDIR)${man1dir}/$${dest}.gz"; \ + ${GZIP_PROG} -9n "$(DESTDIR)${man1dir}/$${dest}" || true; \ done ## Install those items from etc/ that need to end up elsewhere. @@ -696,25 +697,25 @@ EMACS_ICON=emacs install-etc: - umask 022; ${MKDIR_P} $(DESTDIR)${desktopdir} + umask 022; ${MKDIR_P} "$(DESTDIR)${desktopdir}" tmp=etc/emacs.tmpdesktop; rm -f $${tmp}; \ emacs_name=`echo emacs | sed '$(TRANSFORM)'`; \ sed -e "/^Exec=emacs/ s/emacs/$${emacs_name}/" \ -e "/^Icon=emacs/ s/emacs/$${emacs_name}/" \ ${srcdir}/etc/emacs.desktop > $${tmp}; \ - ${INSTALL_DATA} $${tmp} $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop; \ + ${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"; \ rm -f $${tmp} thisdir=`/bin/pwd`; \ cd ${iconsrcdir} || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ [ -d $${dir} ] || continue ; \ - ( cd "$${thisdir}"; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ + ( cd "$${thisdir}"; ${MKDIR_P} "$(DESTDIR)${icondir}/$${dir}" ) ; \ for icon in $${dir}/${EMACS_ICON}[.-]*; do \ [ -r $${icon} ] || continue ; \ ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \ dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \ ( cd "$${thisdir}"; \ - ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \ + ${INSTALL_DATA} ${iconsrcdir}/$${icon} "$(DESTDIR)${icondir}/$${dir}/$${dest}" ) \ || exit 1; \ done ; \ done @@ -734,26 +735,26 @@ bindir=${bindir} libexecdir=${libexecdir} archlibdir=${archlibdir} -unset CDPATH; \ - for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do \ - if [ -d $${dir} ]; then \ - case "`cd $${dir} ; /bin/pwd`" in \ + for dir in "$(DESTDIR)${lispdir}" "$(DESTDIR)${etcdir}" ; do \ + if [ -d "$${dir}" ]; then \ + case `cd "$${dir}" ; /bin/pwd` in \ "`cd ${srcdir} ; /bin/pwd`"* ) ;; \ - * ) rm -rf $${dir} ;; \ + * ) rm -rf "$${dir}" ;; \ esac ; \ - case $${dir} in \ - $(DESTDIR)${datadir}/emacs/${version}/* ) \ - rm -rf $(DESTDIR)${datadir}/emacs/${version} \ + case "$${dir}" in \ + "$(DESTDIR)${datadir}/emacs/${version}"/* ) \ + rm -rf "$(DESTDIR)${datadir}/emacs/${version}" \ ;; \ esac ; \ fi ; \ done - -rm -rf $(DESTDIR)${libexecdir}/emacs/${version} + -rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}" thisdir=`/bin/pwd`; \ (info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ - if cd $(DESTDIR)${infodir}; then \ + if cd "$(DESTDIR)${infodir}"; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ (cd "$${thisdir}"; \ - $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ + $(INSTALL_INFO) --remove --info-dir="$(DESTDIR)${infodir}" "$(DESTDIR)${infodir}/$$elt"); \ if [ -n "${GZIP_PROG}" ]; then \ ext=.gz; else ext=; fi; \ rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \ @@ -763,18 +764,18 @@ ext=.gz; else ext=; fi; \ if cd ${mansrcdir}; then \ for page in *.1; do \ - rm -f $(DESTDIR)${man1dir}/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \ + rm -f "$(DESTDIR)${man1dir}"/`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1$$ext; done; \ fi) - (cd $(DESTDIR)${bindir} && rm -f $(EMACSFULL) $(EMACS) || true) - (if cd $(DESTDIR)${icondir}; then \ + (cd "$(DESTDIR)${bindir}" && rm -f $(EMACSFULL) $(EMACS) || true) + (if cd "$(DESTDIR)${icondir}"; then \ rm -f hicolor/*x*/apps/${EMACS_NAME}.png \ hicolor/scalable/apps/${EMACS_NAME}.svg \ hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \ fi) - -rm -f $(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop + -rm -f "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop" for file in snake-scores tetris-scores; do \ - file=$(DESTDIR)${gamedir}/$${file}; \ - [ -s $${file} ] || rm -f $$file; \ + file="$(DESTDIR)${gamedir}/$${file}"; \ + [ -s "$${file}" ] || rm -f "$$file"; \ done ### Windows-specific uninstall target for removing programs produced === modified file 'build-aux/update-subdirs' --- build-aux/update-subdirs 2013-04-22 05:01:33 +0000 +++ build-aux/update-subdirs 2013-10-23 07:20:57 +0000 @@ -20,7 +20,7 @@ # along with GNU Emacs. If not, see . -cd $1 +cd "$1" || exit 1 for file in *; do case $file in *.elc | *.el | term | RCS | CVS | Old | . | .. | =* | *~ | *.orig | *.rej) === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-10-20 22:33:05 +0000 +++ doc/emacs/ChangeLog 2013-10-23 07:20:57 +0000 @@ -1,6 +1,13 @@ +2013-10-23 Glenn Morris + + * Makefile.in (install-dvi, install-html, install-pdf) + (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) + (uninstall-pdf): Quote entities that might contain whitespace. + 2013-10-20 Xue Fuqiao - * custom.texi (Init Syntax, Terminal Init, Terminal Init): Remove @refill. + * custom.texi (Init Syntax, Terminal Init, Terminal Init): + Remove @refill. 2013-10-13 Glenn Morris === modified file 'doc/emacs/Makefile.in' --- doc/emacs/Makefile.in 2013-08-28 06:01:52 +0000 +++ doc/emacs/Makefile.in 2013-10-23 07:20:57 +0000 @@ -229,21 +229,21 @@ .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi - umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) - $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)" + $(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)" install-html: html - umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) - $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)" + $(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)" install-pdf: pdf - umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) - $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) + umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)" + $(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)" install-ps: ps - umask 022; $(MKDIR_P) $(DESTDIR)$(psdir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)" for file in $(PS_TARGETS); do \ - $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \ + $(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \ [ -n "${GZIP_PROG}" ] || continue; \ - rm -f $(DESTDIR)$(psdir)/$${file}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \ + ${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \ done ## Top-level Makefile installs the info pages. @@ -254,20 +254,20 @@ uninstall-dvi: for file in $(DVI_TARGETS); do \ - rm -f $(DESTDIR)$(dvidir)/$${file}; \ + rm -f "$(DESTDIR)$(dvidir)/$${file}"; \ done uninstall-html: for file in $(HTML_TARGETS); do \ - rm -f $(DESTDIR)$(htmldir)/$${file}; \ + rm -f "$(DESTDIR)$(htmldir)/$${file}"; \ done uninstall-ps: ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ for file in $(PS_TARGETS); do \ - rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \ done uninstall-pdf: for file in $(PDF_TARGETS); do \ - rm -f $(DESTDIR)$(pdfdir)/$${file}; \ + rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \ done uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps === modified file 'doc/lispintro/ChangeLog' --- doc/lispintro/ChangeLog 2013-09-01 01:23:06 +0000 +++ doc/lispintro/ChangeLog 2013-10-23 07:20:57 +0000 @@ -1,3 +1,9 @@ +2013-10-23 Glenn Morris + + * Makefile.in (install-dvi, install-html, install-pdf) + (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) + (uninstall-pdf): Quote entities that might contain whitespace. + 2013-09-01 Glenn Morris * emacs-lisp-intro.texi (beginning-of-buffer complete): === modified file 'doc/lispintro/Makefile.in' --- doc/lispintro/Makefile.in 2013-08-28 06:01:52 +0000 +++ doc/lispintro/Makefile.in 2013-10-23 07:20:57 +0000 @@ -145,21 +145,21 @@ .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi - umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) - $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)" + $(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)" install-html: html - umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) - $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)" + $(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)" install-pdf: pdf - umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) - $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) + umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)" + $(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)" install-ps: ps - umask 022; $(MKDIR_P) $(DESTDIR)$(psdir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)" for file in $(PS_TARGETS); do \ - $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \ + $(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \ [ -n "${GZIP_PROG}" ] || continue; \ - rm -f $(DESTDIR)$(psdir)/$${file}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \ + ${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \ done ## Top-level Makefile installs the info pages. @@ -170,20 +170,20 @@ uninstall-dvi: for file in $(DVI_TARGETS); do \ - rm -f $(DESTDIR)$(dvidir)/$${file}; \ + rm -f "$(DESTDIR)$(dvidir)/$${file}"; \ done uninstall-html: for file in $(HTML_TARGETS); do \ - rm -f $(DESTDIR)$(htmldir)/$${file}; \ + rm -f "$(DESTDIR)$(htmldir)/$${file}"; \ done uninstall-ps: ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ for file in $(PS_TARGETS); do \ - rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \ done uninstall-pdf: for file in $(PDF_TARGETS); do \ - rm -f $(DESTDIR)$(pdfdir)/$${file}; \ + rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \ done uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-10-19 13:53:01 +0000 +++ doc/lispref/ChangeLog 2013-10-23 07:20:57 +0000 @@ -1,3 +1,9 @@ +2013-10-23 Glenn Morris + + * Makefile.in (install-dvi, install-html, install-pdf) + (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) + (uninstall-pdf): Quote entities that might contain whitespace. + 2013-10-19 Xue Fuqiao * display.texi (Face Attributes): Add indexes for the ‘:box’ face attribute. === modified file 'doc/lispref/Makefile.in' --- doc/lispref/Makefile.in 2013-08-28 06:01:52 +0000 +++ doc/lispref/Makefile.in 2013-10-23 07:20:57 +0000 @@ -201,21 +201,21 @@ .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi - umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) - $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)" + $(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)" install-html: html - umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) - $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)" + $(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)" install-pdf: pdf - umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) - $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) + umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)" + $(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)" install-ps: ps - umask 022; $(MKDIR_P) $(DESTDIR)$(psdir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)" for file in $(PS_TARGETS); do \ - $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \ + $(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \ [ -n "${GZIP_PROG}" ] || continue; \ - rm -f $(DESTDIR)$(psdir)/$${file}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \ + ${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \ done ## Top-level Makefile installs the info pages. @@ -226,20 +226,20 @@ uninstall-dvi: for file in $(DVI_TARGETS); do \ - rm -f $(DESTDIR)$(dvidir)/$${file}; \ + rm -f "$(DESTDIR)$(dvidir)/$${file}"; \ done uninstall-html: for file in $(HTML_TARGETS); do \ - rm -f $(DESTDIR)$(htmldir)/$${file}; \ + rm -f "$(DESTDIR)$(htmldir)/$${file}"; \ done uninstall-ps: ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ for file in $(PS_TARGETS); do \ - rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \ done uninstall-pdf: for file in $(PDF_TARGETS); do \ - rm -f $(DESTDIR)$(pdfdir)/$${file}; \ + rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \ done uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2013-10-17 03:37:05 +0000 +++ doc/misc/ChangeLog 2013-10-23 07:20:57 +0000 @@ -1,3 +1,9 @@ +2013-10-23 Glenn Morris + + * Makefile.in (install-dvi, install-html, install-pdf) + (install-ps, uninstall-dvi, uninstall-html, uninstall-ps) + (uninstall-pdf): Quote entities that might contain whitespace. + 2013-10-17 Jay Belanger * calc.el (Data Type Formats): Don't specify the size at === modified file 'doc/misc/Makefile.in' --- doc/misc/Makefile.in 2013-08-28 06:01:52 +0000 +++ doc/misc/Makefile.in 2013-10-23 07:20:57 +0000 @@ -877,21 +877,21 @@ .PHONY: install-dvi install-html install-pdf install-ps install-doc install-dvi: dvi - umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) - $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(dvidir)" + $(INSTALL_DATA) $(DVI_TARGETS) "$(DESTDIR)$(dvidir)" install-html: html - umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) - $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(htmldir)" + $(INSTALL_DATA) $(HTML_TARGETS) "$(DESTDIR)$(htmldir)" install-pdf: pdf - umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) - $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) + umask 022;$(MKDIR_P) "$(DESTDIR)$(pdfdir)" + $(INSTALL_DATA) $(PDF_TARGETS) "$(DESTDIR)$(pdfdir)" install-ps: ps - umask 022; $(MKDIR_P) $(DESTDIR)$(psdir) + umask 022; $(MKDIR_P) "$(DESTDIR)$(psdir)" for file in $(PS_TARGETS); do \ - $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \ + $(INSTALL_DATA) $${file} "$(DESTDIR)$(psdir)"; \ [ -n "${GZIP_PROG}" ] || continue; \ - rm -f $(DESTDIR)$(psdir)/$${file}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}.gz"; \ + ${GZIP_PROG} -9n "$(DESTDIR)$(psdir)/$${file}"; \ done ## Top-level Makefile installs the info pages. @@ -903,20 +903,20 @@ uninstall-dvi: for file in $(DVI_TARGETS); do \ - rm -f $(DESTDIR)$(dvidir)/$${file}; \ + rm -f "$(DESTDIR)$(dvidir)/$${file}"; \ done uninstall-html: for file in $(HTML_TARGETS); do \ - rm -f $(DESTDIR)$(htmldir)/$${file}; \ + rm -f "$(DESTDIR)$(htmldir)/$${file}"; \ done uninstall-ps: ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ for file in $(PS_TARGETS); do \ - rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ + rm -f "$(DESTDIR)$(psdir)/$${file}$${ext}"; \ done uninstall-pdf: for file in $(PDF_TARGETS); do \ - rm -f $(DESTDIR)$(pdfdir)/$${file}; \ + rm -f "$(DESTDIR)$(pdfdir)/$${file}"; \ done uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2013-10-23 06:22:54 +0000 +++ lib-src/ChangeLog 2013-10-23 07:20:57 +0000 @@ -1,7 +1,7 @@ 2013-10-23 Glenn Morris - * Makefile.in ($(DESTDIR)${archlibdir}): - Quote entities that might contain whitespace. + * Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install) + (uninstall): Quote entities that might contain whitespace. 2013-10-10 Glenn Morris === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2013-10-23 06:22:54 +0000 +++ lib-src/Makefile.in 2013-10-23 07:20:57 +0000 @@ -214,10 +214,10 @@ need-blessmail: blessmail @if [ `wc -l - * Makefile.in ($(DESTDIR)${archlibdir}): + * Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall): Quote entities that might contain whitespace. 2013-10-14 Eli Zaretskii === modified file 'nt/Makefile.in' --- nt/Makefile.in 2013-10-23 06:22:54 +0000 +++ nt/Makefile.in 2013-10-23 07:20:57 +0000 @@ -141,10 +141,10 @@ $(DESTDIR)${archlibdir}: all @echo @echo "Installing utilities run internally by Emacs." - umask 022; ${MKDIR_P} $(DESTDIR)${archlibdir} - if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" != "`/bin/pwd`" ]; then \ + umask 022; ${MKDIR_P} "$(DESTDIR)${archlibdir}" + if [ "`cd \"$(DESTDIR)${archlibdir}\" && /bin/pwd`" != "`/bin/pwd`" ]; then \ for file in ${UTILITIES}; do \ - $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \ + $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file "$(DESTDIR)${archlibdir}/$$file" ; \ done ; \ fi @@ -154,17 +154,17 @@ install: $(DESTDIR)${archlibdir} @echo @echo "Installing utilities for users to run." - umask 022; ${MKDIR_P} $(DESTDIR)${bindir} + umask 022; ${MKDIR_P} "$(DESTDIR)${bindir}" for file in ${INSTALLABLES} ; do \ - $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ + $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ done uninstall: for file in ${INSTALLABLES}; do \ - rm -f $(DESTDIR)${bindir}/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ + rm -f "$(DESTDIR)${bindir}"/`echo $${file} | sed -e 's/${EXEEXT}$$//' -e '$(TRANSFORM)'`${EXEEXT} ; \ done - if [ -d $(DESTDIR)${archlibdir} ]; then \ - (cd $(DESTDIR)${archlibdir} && rm -f ${UTILITIES}) \ + if [ -d "$(DESTDIR)${archlibdir}" ]; then \ + (cd "$(DESTDIR)${archlibdir}" && rm -f ${UTILITIES}) \ fi mostlyclean: ------------------------------------------------------------ revno: 114749 fixes bug: http://debbugs.gnu.org/15675 committer: Glenn Morris branch nick: trunk timestamp: Tue 2013-10-22 23:22:54 -0700 message: Make building in directories with whitespace possible Make has trouble with targets containing whitespace, http://savannah.gnu.org/bugs/?712, so the general approach is to use relative paths where possible. It's generally only Emacs itself that needs absolute paths, eg in src/epaths.h. * configure.ac (srcdir): Don't make it absolute - abs_srcdir exists. * Makefile.in (abs_srcdir): New, set by configure. (buildlisppath): Use abs_srcdir. (install-arch-indep, install-etcdoc, install-info, install-man) (install-etc): Quote entities that might contain whitespace. * admin/unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el): Quote entities that might contain whitespace. * leim/Makefile.in (abs_srcdir): New, set by configure. (buildlisppath): Use abs_srcdir. (RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el) ($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare): Quote entities that might contain whitespace. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): Quote entities that might contain whitespace. * lisp/Makefile.in (abs_srcdir, abs_lisp): New, set by configure. (emacs, compile, compile-always): Quote entities that might contain whitespace. (custom-deps, finder-data, autoloads): Use abs_lisp. ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el) ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el) ($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name. * nextstep/Makefile.in (${ns_check_file} ${ns_appdir}): Quote entities that might contain whitespace. * nt/Makefile.in ($(DESTDIR)${archlibdir}): Quote entities that might contain whitespace. * src/Makefile.in (RUN_TEMACS): Make relative (again). ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el) (bootstrap-emacs$(EXEEXT)): Quote entities that might contain whitespace. * test/automated/Makefile.in (abs_top_srcdir, top_builddir): New, set by configure. (top_srcdir): Remove. (abs_test, abs_lispsrc): New. (lisp): No longer absolute. (emacs, lisp-compile, compile, compile-always): Quote entities that might contain whitespace. diff: === modified file 'ChangeLog' --- ChangeLog 2013-10-23 04:01:46 +0000 +++ ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,12 @@ +2013-10-23 Glenn Morris + + Make building in directories with whitespace possible. (Bug#15675) + * configure.ac (srcdir): Don't make it absolute - abs_srcdir exists. + * Makefile.in (abs_srcdir): New, set by configure. + (buildlisppath): Use abs_srcdir. + (install-arch-indep, install-etcdoc, install-info, install-man) + (install-etc): Quote entities that might contain whitespace. + 2013-10-23 Paul Eggert Merge from gnulib, incorporating: === modified file 'Makefile.in' --- Makefile.in 2013-09-08 23:50:23 +0000 +++ Makefile.in 2013-10-23 06:22:54 +0000 @@ -163,6 +163,7 @@ # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. srcdir=@srcdir@ +abs_srcdir=@abs_srcdir@ # Where the manpage source files are kept. mansrcdir=$(srcdir)/doc/man @@ -216,7 +217,7 @@ # before they've been installed in their final location. # This should be a colon-separated list of directories. # Normally it points to the lisp/ directory in the sources. -buildlisppath=${srcdir}/lisp +buildlisppath=${abs_srcdir}/lisp # Where to install the other architecture-independent # data files distributed with Emacs (like the tutorial, @@ -569,10 +570,10 @@ [ -d $${dir} ] || exit 1 ; \ dest=$$1 ; shift ; \ [ -d $${dest} ] && \ - [ `cd $${dest} && /bin/pwd` = `cd $${dir} && /bin/pwd` ] && \ + [ "`cd $${dest} && /bin/pwd`" = "`cd $${dir} && /bin/pwd`" ] && \ continue ; \ if [ "$${dir}" = "leim/quail" ]; then \ - [ `cd $${dir} && /bin/pwd` = `cd ${srcdir}/leim/quail && /bin/pwd` ] && \ + [ "`cd $${dir} && /bin/pwd`" = "`cd ${srcdir}/leim/quail && /bin/pwd`" ] && \ continue ; \ else \ rm -rf $${dest} ; \ @@ -616,7 +617,7 @@ unset CDPATH; \ thisdir=`/bin/pwd`; \ for dir in $(DESTDIR)${lispdir} $(DESTDIR)${leimdir}; do \ - cd $${thisdir} ; \ + cd "$${thisdir}" ; \ cd $${dir} || exit 1 ; \ for f in `find . -name "*.elc" -print`; do \ ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ @@ -633,7 +634,7 @@ install-etcdoc: src install-arch-indep -unset CDPATH; \ umask 022; ${MKDIR_P} $(DESTDIR)${etcdocdir} ; \ - if [ `cd ./etc; /bin/pwd` != `cd $(DESTDIR)${etcdocdir}; /bin/pwd` ]; \ + if [ "`cd ./etc; /bin/pwd`" != "`cd $(DESTDIR)${etcdocdir}; /bin/pwd`" ]; \ then \ docfile="DOC"; \ echo "Copying etc/$${docfile} to $(DESTDIR)${etcdocdir} ..." ; \ @@ -646,27 +647,28 @@ umask 022; ${MKDIR_P} $(DESTDIR)${infodir} -unset CDPATH; \ thisdir=`/bin/pwd`; \ - [ `cd ${srcdir}/info && /bin/pwd` = `cd $(DESTDIR)${infodir} && /bin/pwd` ] || \ - (cd $(DESTDIR)${infodir}; \ + if [ "`cd ${srcdir}/info && /bin/pwd`" = "`cd $(DESTDIR)${infodir} && /bin/pwd`" ]; then \ + true; \ + else \ + (cd "$(DESTDIR)${infodir}"; \ [ -f dir ] || \ - (cd $${thisdir}; \ - ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ; \ - info_misc=`cd $${thisdir}/doc/misc && \ - $(QUIET_SUBMAKE) $(MAKE) -s echo-info \ - `; \ + (cd "$${thisdir}"; \ + ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ); \ + info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \ for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ ${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \ [ -n "${GZIP_PROG}" ] || continue ; \ rm -f $(DESTDIR)${infodir}/$$f.gz; \ ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \ done; \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ - done) + done; \ + fi ## "gzip || true" is because some gzips exit with non-zero status ## if compression would not reduce the file size. Eg, the gzip in @@ -680,7 +682,7 @@ cd ${mansrcdir}; \ for page in *.1; do \ dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \ [ -n "${GZIP_PROG}" ] || continue ; \ rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \ @@ -706,12 +708,12 @@ cd ${iconsrcdir} || exit 1; umask 022 ; \ for dir in */*/apps */*/mimetypes; do \ [ -d $${dir} ] || continue ; \ - ( cd $${thisdir}; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ + ( cd "$${thisdir}"; ${MKDIR_P} $(DESTDIR)${icondir}/$${dir} ) ; \ for icon in $${dir}/${EMACS_ICON}[.-]*; do \ [ -r $${icon} ] || continue ; \ ext=`echo "$${icon}" | sed -e 's|.*\.||'`; \ dest=`echo "$${icon}" | sed -e 's|.*/||' -e "s|\.$${ext}$$||" -e 's/$(EMACS_ICON)/emacs/' -e '$(TRANSFORM)'`.$${ext} ; \ - ( cd $${thisdir}; \ + ( cd "$${thisdir}"; \ ${INSTALL_DATA} ${iconsrcdir}/$${icon} $(DESTDIR)${icondir}/$${dir}/$${dest} ) \ || exit 1; \ done ; \ @@ -734,8 +736,8 @@ -unset CDPATH; \ for dir in $(DESTDIR)${lispdir} $(DESTDIR)${etcdir} ; do \ if [ -d $${dir} ]; then \ - case `cd $${dir} ; /bin/pwd` in \ - `cd ${srcdir} ; /bin/pwd`* ) ;; \ + case "`cd $${dir} ; /bin/pwd`" in \ + "`cd ${srcdir} ; /bin/pwd`"* ) ;; \ * ) rm -rf $${dir} ;; \ esac ; \ case $${dir} in \ @@ -750,7 +752,7 @@ (info_misc=`cd doc/misc && $(QUIET_SUBMAKE) $(MAKE) -s echo-info`; \ if cd $(DESTDIR)${infodir}; then \ for elt in ${INFO_NONMISC} $${info_misc}; do \ - (cd $${thisdir}; \ + (cd "$${thisdir}"; \ $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ if [ -n "${GZIP_PROG}" ]; then \ ext=.gz; else ext=; fi; \ === modified file 'admin/ChangeLog' --- admin/ChangeLog 2013-10-07 21:37:19 +0000 +++ admin/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el): + Quote entities that might contain whitespace. + 2013-10-07 Paul Eggert Improve support for popcount and counting trailing zeros (Bug#15550). === modified file 'admin/unidata/Makefile.in' --- admin/unidata/Makefile.in 2013-08-28 06:01:52 +0000 +++ admin/unidata/Makefile.in 2013-10-23 06:22:54 +0000 @@ -30,7 +30,7 @@ EMACS = ${abs_top_builddir}/src/emacs DSTDIR = ${top_srcdir}/lisp/international -emacs = ${EMACS} -batch --no-site-file --no-site-lisp +emacs = "${EMACS}" -batch --no-site-file --no-site-lisp all: ${DSTDIR}/charprop.el @@ -42,7 +42,7 @@ ${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.elc unidata.txt cd ${DSTDIR} && ${emacs} -l ${srcdir}/unidata-gen \ - -f unidata-gen-files ${srcdir} ${abs_builddir}/unidata.txt + -f unidata-gen-files ${srcdir} "${abs_builddir}/unidata.txt" ## Like the above, but generate in PWD rather than lisp/international. charprop.el: ${srcdir}/unidata-gen.elc unidata.txt === modified file 'configure.ac' --- configure.ac 2013-10-13 23:01:20 +0000 +++ configure.ac 2013-10-23 06:22:54 +0000 @@ -419,30 +419,6 @@ [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])], [ac_enable_gtk_deprecation_warnings="${enableval}"],[]) -#### Make srcdir absolute, if it isn't already. It's important to -#### avoid running the file name through pwd unnecessarily, since pwd can -#### give you automounter prefixes, which can go away. We do all this -#### so Emacs can find its files when run uninstalled. -## Make sure CDPATH doesn't affect cd (in case PWD is relative). -unset CDPATH -case "${srcdir}" in - [[\\/]]* | ?:[[\\/]]*) ;; - . ) - ## We may be able to use the $PWD environment variable to make this - ## absolute. But sometimes PWD is inaccurate. - ## Note: we used to use $PWD at the end instead of `pwd`, - ## but that tested only for a well-formed and valid PWD, - ## it did not object when PWD was well-formed and valid but just wrong. - if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`" ; - then - srcdir="$PWD" - else - srcdir=`(cd "$srcdir"; pwd)` - fi - ;; - * ) srcdir=`(cd "$srcdir"; pwd)` ;; -esac - #### When building with MinGW inside the MSYS tree, 'pwd' produces #### directories relative to the root of the MSYS tree, #### e.g. '/home/user/foo' instead of '/d/MSYS/home/user/foo'. When @@ -452,7 +428,7 @@ #### substitution, it cannot find the data directory. "pwd -W" #### produces Windows-style 'd:/foo/bar' absolute directory names, so #### we use it here to countermand that lossage. -test "$MSYSTEM" = "MINGW32" && srcdir=`(cd "$srcdir"; pwd -W | sed -e 's,^\([[A-Za-z]]\):,/\1,')` +test "$MSYSTEM" = "MINGW32" && abs_srcdir=`(cd "$abs_srcdir"; pwd -W | sed -e 's,^\([[A-Za-z]]\):,/\1,')` ### Canonicalize the configuration name. === modified file 'leim/ChangeLog' --- leim/ChangeLog 2013-09-09 19:27:38 +0000 +++ leim/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,11 @@ +2013-10-23 Glenn Morris + + * Makefile.in (abs_srcdir): New, set by configure. + (buildlisppath): Use abs_srcdir. + (RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el) + ($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare): + Quote entities that might contain whitespace. + 2013-09-05 Jean Haidouk (tiny change) * quail/latin-alt.el ("french-alt-postfix", "latin-alt-postfix"): === modified file 'leim/Makefile.in' --- leim/Makefile.in 2013-08-28 06:01:52 +0000 +++ leim/Makefile.in 2013-10-23 06:22:54 +0000 @@ -25,16 +25,17 @@ # Here are the things that we expect ../configure to edit. srcdir=@srcdir@ +abs_srcdir=@abs_srcdir@ # Which Emacs to use to convert TIT files to Emacs Lisp files, # byte-compile Emacs Lisp files, and generate the file leim-list.el. EMACS = ../src/emacs -buildlisppath=${srcdir}/../lisp +buildlisppath=${abs_srcdir}/../lisp # How to run Emacs. -RUN_EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \ - ${EMACS} -batch --no-site-file --no-site-lisp +RUN_EMACS = EMACSLOADPATH="$(buildlisppath)" LC_ALL=C \ + "${EMACS}" -batch --no-site-file --no-site-lisp MKDIR_P = @MKDIR_P@ @@ -76,7 +77,7 @@ .el.elc: @echo Compiling $< - @${RUN_EMACS} -l ${buildlisppath}/international/quail -f batch-byte-compile $< + @${RUN_EMACS} -l "${buildlisppath}/international/quail" -f batch-byte-compile $< all: leim-list.el compile-main .PHONY: all @@ -109,7 +110,7 @@ ## It doesn't seem possible to do this with VPATH and suffix rules. changed.tit: ${TIT_SOURCES} @${MKDIR_P} quail - ${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \ + ${RUN_EMACS} -l "${buildlisppath}/international/titdic-cnv" \ -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \ echo "changed" > $@ @@ -126,30 +127,30 @@ changed.misc: ${MISC_SOURCES} @${MKDIR_P} quail - ${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \ + ${RUN_EMACS} -l "${buildlisppath}/international/titdic-cnv" \ -f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \ echo "changed" > $@ leim-list.el: ${TIT_MISC} ${srcdir}/leim-ext.el rm -f leim-list.el - if [ x`cd ${srcdir} && /bin/pwd` = x`/bin/pwd` ] ; then \ - ${RUN_EMACS} -l ${buildlisppath}/international/quail \ + if [ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] ; then \ + ${RUN_EMACS} -l "${buildlisppath}/international/quail" \ --eval "(update-leim-list-file \".\")" ; \ else \ - ${RUN_EMACS} -l ${buildlisppath}/international/quail \ + ${RUN_EMACS} -l "${buildlisppath}/international/quail" \ --eval "(update-leim-list-file \".\" (unmsys--file-name \"${srcdir}\"))" ; \ fi sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@ $(srcdir)/ja-dic/ja-dic.el: $(srcdir)/SKK-DIC/SKK-JISYO.L @$(MKDIR_P) $(srcdir)/ja-dic - $(RUN_EMACS) -batch -l $(buildlisppath)/international/ja-dic-cnv \ + $(RUN_EMACS) -batch -l "$(buildlisppath)/international/ja-dic-cnv" \ -f batch-skkdic-convert -dir "$(srcdir)/ja-dic" \ "$(srcdir)/SKK-DIC/SKK-JISYO.L" ## Following adapted from lisp/Makefile.in. setwins=wins="${srcdir}/ja-dic quail"; \ - [ `cd ${srcdir} && /bin/pwd` != `/bin/pwd` ] && \ + [ "`cd ${srcdir} && /bin/pwd`" != "`/bin/pwd`" ] && \ wins="$$wins ${srcdir}/quail" .PHONY: compile-targets @@ -184,7 +185,7 @@ $(setwins); for w in $$wins; do rm -f $$w/*.elc; done distclean: clean - -[ `cd ${srcdir} && /bin/pwd` != `/bin/pwd` ] && rm -rf quail + -[ "`cd ${srcdir} && /bin/pwd`" != "`/bin/pwd`" ] && rm -rf quail rm -f Makefile maintainer-clean: distclean bootstrap-clean @@ -195,5 +196,5 @@ .PHONY: check-declare check-declare: - $(RUN_EMACS) -l $(buildlisppath)/emacs-lisp/check-declare \ + $(RUN_EMACS) -l "$(buildlisppath)/emacs-lisp/check-declare" \ --eval '(check-declare-directory (unmsys--file-name "$(srcdir)"))' === modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2013-10-10 01:29:30 +0000 +++ lib-src/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * Makefile.in ($(DESTDIR)${archlibdir}): + Quote entities that might contain whitespace. + 2013-10-10 Glenn Morris * make-docfile.c (search_lisp_doc_at_eol): === modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2013-08-28 06:01:52 +0000 +++ lib-src/Makefile.in 2013-10-23 06:22:54 +0000 @@ -232,7 +232,7 @@ @echo @echo "Installing utilities run internally by Emacs." umask 022; ${MKDIR_P} $(DESTDIR)${archlibdir} - if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` != `/bin/pwd` ]; then \ + if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" != "`/bin/pwd`" ]; then \ for file in ${UTILITIES}; do \ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \ done ; \ @@ -244,8 +244,8 @@ chown ${gameuser} $(DESTDIR)${gamedir}; \ chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \ fi - if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` \ - != `cd ${srcdir} && /bin/pwd` ]; then \ + if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" \ + != "`cd ${srcdir} && /bin/pwd`" ]; then \ for file in ${SCRIPTS}; do \ $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \ done ; \ === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-23 02:59:45 +0000 +++ lisp/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,13 @@ +2013-10-23 Glenn Morris + + * Makefile.in (abs_srcdir, abs_lisp): New, set by configure. + (emacs, compile, compile-always): + Quote entities that might contain whitespace. + (custom-deps, finder-data, autoloads): Use abs_lisp. + ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el) + ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el) + ($(CAL_DIR)/hol-loaddefs.el): Manually expand target file name. + 2013-10-23 Dmitry Gutov * progmodes/ruby-mode.el (ruby-smie--at-dot-call): Use === modified file 'lisp/Makefile.in' --- lisp/Makefile.in 2013-09-01 02:12:32 +0000 +++ lisp/Makefile.in 2013-10-23 06:22:54 +0000 @@ -20,8 +20,10 @@ SHELL = @SHELL@ srcdir = @srcdir@ +abs_srcdir = @abs_srcdir@ top_srcdir = @top_srcdir@ abs_top_builddir = @abs_top_builddir@ +abs_lisp = $(abs_srcdir) lisp = $(srcdir) VPATH = $(srcdir) @@ -112,7 +114,7 @@ # The actual Emacs command run in the targets below. -emacs = EMACSLOADPATH=$(lisp) LC_ALL=C $(EMACS) $(EMACSOPT) +emacs = EMACSLOADPATH="$(abs_lisp)" LC_ALL=C "$(EMACS)" $(EMACSOPT) # Common command to find subdirectories setwins=subdirs=`find . -type d -print`; \ @@ -165,14 +167,14 @@ custom-deps: doit cd $(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file (unmsys--file-name "$(lisp)/cus-load.el"))' -f custom-make-dependencies $$wins + $(emacs) -l cus-dep --eval '(setq generated-custom-dependencies-file (unmsys--file-name "$(abs_lisp)/cus-load.el"))' -f custom-make-dependencies $$wins $(lisp)/finder-inf.el: $(MAKE) $(MFLAGS) finder-data finder-data: doit cd $(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(emacs) -l finder --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(lisp)/finder-inf.el"))' -f finder-compile-keywords-make-dist $$wins + $(emacs) -l finder --eval '(setq generated-finder-keywords-file (unmsys--file-name "$(abs_lisp)/finder-inf.el"))' -f finder-compile-keywords-make-dist $$wins # The chmod +w is to handle env var CVSREAD=1. autoloads: $(LOADDEFS) doit @@ -181,7 +183,7 @@ echo Directories: $$wins; \ $(emacs) -l autoload \ --eval '(setq autoload-builtin-package-versions t)' \ - --eval '(setq generated-autoload-file (unmsys--file-name "$(lisp)/loaddefs.el"))' \ + --eval '(setq generated-autoload-file (unmsys--file-name "$(abs_lisp)/loaddefs.el"))' \ -f batch-update-autoloads $$wins # This is required by the bootstrap-emacs target in ../src/Makefile, so @@ -307,14 +309,14 @@ # Explicitly pass EMACS (sometimes ../src/bootstrap-emacs) to those # sub-makes that run rules that use it, for the sake of some non-GNU makes. compile: $(LOADDEFS) autoloads compile-first - $(MAKE) $(MFLAGS) compile-main EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile-main EMACS="$(EMACS)" # Compile all Lisp files. This is like `compile' but compiles files # unconditionally. Some files don't actually get compiled because they # set the local variable no-byte-compile. compile-always: doit cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc - $(MAKE) $(MFLAGS) compile EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" .PHONY: compile-calc backup-compiled-files compile-after-backup @@ -378,7 +380,7 @@ $(MH_E_DIR)/mh-loaddefs.el: $(MH_E_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(MH_E_DIR) @@ -396,7 +398,7 @@ $(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###tramp-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(TRAMP_DIR) @@ -418,21 +420,21 @@ $(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(CAL_DIR) $(CAL_DIR)/diary-loaddefs.el: $(CAL_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###diary-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(CAL_DIR) $(CAL_DIR)/hol-loaddefs.el: $(CAL_SRC) $(emacs) -l autoload \ --eval "(setq generate-autoload-cookie \";;;###holiday-autoload\")" \ - --eval "(setq generated-autoload-file (unmsys--file-name \"$@\"))" \ + --eval "(setq generated-autoload-file (unmsys--file-name (expand-file-name \"$@\")))" \ --eval "(setq make-backup-files nil)" \ -f batch-update-autoloads $(CAL_DIR) === modified file 'nextstep/ChangeLog' --- nextstep/ChangeLog 2013-09-02 07:01:53 +0000 +++ nextstep/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * Makefile.in (${ns_check_file} ${ns_appdir}): + Quote entities that might contain whitespace. + 2013-09-02 Jan Djärv * Makefile.in (${ns_check_file}): Add so Emacs.app gets properly === modified file 'nextstep/Makefile.in' --- nextstep/Makefile.in 2013-09-02 07:01:53 +0000 +++ nextstep/Makefile.in 2013-10-23 06:22:54 +0000 @@ -38,7 +38,7 @@ ${MKDIR_P} ${ns_appdir} ( cd ${srcdir}/${ns_appsrc} ; tar cfh - . ) | \ ( cd ${ns_appdir} ; umask 022; tar xf - ) - [ `cd ${srcdir} && /bin/pwd` = `/bin/pwd` ] || \ + [ "`cd ${srcdir} && /bin/pwd`" = "`/bin/pwd`" ] || \ ( cd ${ns_appsrc} ; tar cfh - . ) | \ ( cd ${ns_appdir} ; umask 022; tar xf - ) touch ${ns_appdir} === modified file 'nt/ChangeLog' --- nt/ChangeLog 2013-10-14 16:23:10 +0000 +++ nt/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,8 @@ +2013-10-23 Glenn Morris + + * Makefile.in ($(DESTDIR)${archlibdir}): + Quote entities that might contain whitespace. + 2013-10-14 Eli Zaretskii * inc/mingw_time.h: New file. === modified file 'nt/Makefile.in' --- nt/Makefile.in 2013-07-23 22:55:38 +0000 +++ nt/Makefile.in 2013-10-23 06:22:54 +0000 @@ -142,7 +142,7 @@ @echo @echo "Installing utilities run internally by Emacs." umask 022; ${MKDIR_P} $(DESTDIR)${archlibdir} - if [ `cd $(DESTDIR)${archlibdir} && /bin/pwd` != `/bin/pwd` ]; then \ + if [ "`cd $(DESTDIR)${archlibdir} && /bin/pwd`" != "`/bin/pwd`" ]; then \ for file in ${UTILITIES}; do \ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \ done ; \ === modified file 'src/ChangeLog' --- src/ChangeLog 2013-10-23 04:37:17 +0000 +++ src/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,10 @@ +2013-10-23 Glenn Morris + + * Makefile.in (RUN_TEMACS): Make relative (again). + ($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el) + (bootstrap-emacs$(EXEEXT)): + Quote entities that might contain whitespace. + 2013-10-23 Paul Eggert Port to Solaris 10 and its bundled GCC. === modified file 'src/Makefile.in' --- src/Makefile.in 2013-09-15 17:58:46 +0000 +++ src/Makefile.in 2013-10-23 06:22:54 +0000 @@ -313,7 +313,7 @@ GETLOADAVG_LIBS = @GETLOADAVG_LIBS@ -RUN_TEMACS = `/bin/pwd`/temacs +RUN_TEMACS = ./temacs ## Invoke ../nt/addsection for MinGW, ":" elsewhere. TEMACS_POST_LINK = @TEMACS_POST_LINK@ @@ -437,7 +437,7 @@ .PHONY: all $(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT) - cd $(leimdir) && $(MAKE) $(MFLAGS) leim-list.el EMACS=$(bootstrap_exe) + cd $(leimdir) && $(MAKE) $(MFLAGS) leim-list.el EMACS="$(bootstrap_exe)" ## The dumped Emacs is as functional and more efficient than ## bootstrap-emacs, so we replace the latter with the former. @@ -646,7 +646,7 @@ ## With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)" .el.elc: @cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \ - THEFILE=$< EMACS=$(bootstrap_exe) + THEFILE=$< EMACS="$(bootstrap_exe)" ## Since the .el.elc rule cannot specify an extra dependency, we do it here. $(lisp): $(BOOTSTRAPEMACS) @@ -657,7 +657,7 @@ VCSWITNESS = $(lispsource)/loaddefs.el: $(BOOTSTRAPEMACS) $(VCSWITNESS) - cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=$(bootstrap_exe) + cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS="$(bootstrap_exe)" ## Dump an Emacs executable named bootstrap-emacs containing the ## files from loadup.el in source form. @@ -672,7 +672,7 @@ mv -f emacs$(EXEEXT) bootstrap-emacs$(EXEEXT); \ fi @: Compile some files earlier to speed up further compilation. - cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=$(bootstrap_exe) + cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS="$(bootstrap_exe)" ## Insert either autodeps.mk (if AUTO_DEPEND), else deps.mk. @deps_frag@ === modified file 'test/ChangeLog' --- test/ChangeLog 2013-10-22 20:47:29 +0000 +++ test/ChangeLog 2013-10-23 06:22:54 +0000 @@ -1,3 +1,13 @@ +2013-10-23 Glenn Morris + + * automated/Makefile.in (abs_top_srcdir, top_builddir): + New, set by configure. + (top_srcdir): Remove. + (abs_test, abs_lispsrc): New. + (lisp): No longer absolute. + (emacs, lisp-compile, compile, compile-always): + Quote entities that might contain whitespace. + 2013-10-22 Dmitry Gutov * indent/ruby.rb: Move two examples to "working" section, add one === modified file 'test/automated/Makefile.in' --- test/automated/Makefile.in 2013-09-01 02:12:32 +0000 +++ test/automated/Makefile.in 2013-10-23 06:22:54 +0000 @@ -20,12 +20,14 @@ SHELL = @SHELL@ srcdir = @srcdir@ -top_srcdir = @top_srcdir@ +abs_top_srcdir = @abs_top_srcdir@ +top_builddir = @top_builddir@ abs_top_builddir = @abs_top_builddir@ test = $(srcdir) +abs_test = $(abs_srcdir) VPATH = $(srcdir) -lispsrc = $(top_srcdir)/lisp -lisp = ${abs_top_builddir}/lisp +abs_lispsrc = $(abs_top_srcdir)/lisp +lisp = $(top_builddir)/lisp # You can specify a different executable on the make command line, # e.g. "make EMACS=../src/emacs ...". @@ -46,7 +48,7 @@ # The example above is just for developers, it should not be used by default. # The actual Emacs command run in the targets below. -emacs = EMACSLOADPATH=$(lispsrc):$(test) LC_ALL=C $(EMACS) $(EMACSOPT) +emacs = EMACSLOADPATH="$(abs_lispsrc):$(abs_test)" LC_ALL=C "$(EMACS)" $(EMACSOPT) # Common command to find subdirectories setwins=subdirs=`find . -type d -print`; \ @@ -79,7 +81,7 @@ .PHONY: lisp-compile compile-main compile compile-always lisp-compile: - cd $(lisp); $(MAKE) $(MFLAGS) compile EMACS=$(EMACS) + cd "$(lisp)"; $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" # In `compile-main' we could directly do # ... | xargs $(MAKE) $(MFLAGS) EMACS="$(EMACS)" @@ -128,14 +130,14 @@ # Explicitly pass EMACS (sometimes ../src/bootstrap-emacs) to those # sub-makes that run rules that use it, for the sake of some non-GNU makes. compile: $(LOADDEFS) autoloads compile-first - $(MAKE) $(MFLAGS) compile-main EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile-main EMACS="$(EMACS)" # Compile all Lisp files. This is like `compile' but compiles files # unconditionally. Some files don't actually get compiled because they # set the local variable no-byte-compile. compile-always: doit cd $(test); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc - $(MAKE) $(MFLAGS) compile EMACS=$(EMACS) + $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)" bootstrap-clean: cd $(test); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc ------------------------------------------------------------ revno: 114748 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-10-22 21:37:17 -0700 message: Port to Solaris 10 and its bundled GCC. Problem reported by Timothy C. Burt. * floatfns.c (isfinite, isnan): Redefine unconditionally. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-10-21 14:11:25 +0000 +++ src/ChangeLog 2013-10-23 04:37:17 +0000 @@ -1,3 +1,9 @@ +2013-10-23 Paul Eggert + + Port to Solaris 10 and its bundled GCC. + Problem reported by Timothy C. Burt. + * floatfns.c (isfinite, isnan): Redefine unconditionally. + 2013-10-21 Dmitry Antipov Do not allow font caches to grow too large. === modified file 'src/floatfns.c' --- src/floatfns.c 2013-06-20 14:15:42 +0000 +++ src/floatfns.c 2013-10-23 04:37:17 +0000 @@ -46,12 +46,13 @@ #include -#ifndef isfinite -# define isfinite(x) ((x) - (x) == 0) -#endif -#ifndef isnan -# define isnan(x) ((x) != (x)) -#endif +/* 'isfinite' and 'isnan' cause build failures on Solaris 10 with the + bundled GCC in c99 mode. Work around the bugs with simple + implementations that are good enough. */ +#undef isfinite +#define isfinite(x) ((x) - (x) == 0) +#undef isnan +#define isnan(x) ((x) != (x)) /* Check that X is a floating point number. */ ------------------------------------------------------------ revno: 114747 committer: Paul Eggert branch nick: trunk timestamp: Tue 2013-10-22 21:01:46 -0700 message: Merge from gnulib. This incorporates: 2013-10-14 acl: allow cross-compilation to Gentoo 2013-10-18 extern-inline: make safe for -Wundef usage 2013-09-30 fpending: use pure+const function attrs * lib/fpending.h, m4/acl.m4, m4/extern-inline.m4: Update from gnulib. diff: === modified file 'ChangeLog' --- ChangeLog 2013-10-13 23:01:20 +0000 +++ ChangeLog 2013-10-23 04:01:46 +0000 @@ -1,3 +1,11 @@ +2013-10-23 Paul Eggert + + Merge from gnulib, incorporating: + 2013-10-14 acl: allow cross-compilation to Gentoo + 2013-10-18 extern-inline: make safe for -Wundef usage + 2013-09-30 fpending: use pure+const function attrs + * lib/fpending.h, m4/acl.m4, m4/extern-inline.m4: Update from gnulib. + 2013-10-13 Glenn Morris * configure.ac [alpha]: Explicit error in non-ELF case. (Bug#15601) === modified file 'lib/fpending.h' --- lib/fpending.h 2013-08-12 00:52:17 +0000 +++ lib/fpending.h 2013-10-23 04:01:46 +0000 @@ -25,5 +25,5 @@ #endif #ifndef __fpending -size_t __fpending (FILE *); +size_t __fpending (FILE *) _GL_ATTRIBUTE_PURE; #endif === modified file 'm4/acl.m4' --- m4/acl.m4 2013-05-07 21:34:03 +0000 +++ m4/acl.m4 2013-10-23 04:01:46 +0000 @@ -1,5 +1,5 @@ # acl.m4 - check for access control list (ACL) primitives -# serial 15 +# serial 16 # Copyright (C) 2002, 2004-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation @@ -141,12 +141,14 @@ # ------------------------------------- # If 'acl_get_file' works (does not have a particular bug), # run IF-WORKS, otherwise, IF-NOT. -# This tests for a Darwin 8.7.0 bug, whereby acl_get_file returns NULL, -# but sets errno = ENOENT for an existing file or directory. +# When building natively, test for a Darwin 8.7.0 bug, whereby acl_get_file +# returns NULL, but sets errno = ENOENT for an existing file or directory. +# When cross-compiling, assume that this old bug no longer applies. AC_DEFUN([gl_ACL_GET_FILE], [ AC_CACHE_CHECK([for working acl_get_file], [gl_cv_func_working_acl_get_file], - [AC_RUN_IFELSE( + [gl_cv_func_working_acl_get_file=no + AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include #include @@ -156,9 +158,10 @@ return 1; return 0; ]])], - [gl_cv_func_working_acl_get_file=yes], - [gl_cv_func_working_acl_get_file=no], - [gl_cv_func_working_acl_get_file=cross-compiling])]) - - AS_IF([test $gl_cv_func_working_acl_get_file = yes], [$1], [$2]) + [if test $cross_compiling = yes; then + gl_cv_func_working_acl_get_file="guessing yes" + elif ./conftest$ac_exeext; then + gl_cv_func_working_acl_get_file=yes + fi])]) + AS_IF([test "$gl_cv_func_working_acl_get_file" != no], [$1], [$2]) ]) === modified file 'm4/extern-inline.m4' --- m4/extern-inline.m4 2013-09-19 21:40:08 +0000 +++ m4/extern-inline.m4 2013-10-23 04:01:46 +0000 @@ -1,3 +1,4 @@ +# extern-inline.m4 serial 2 dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2013 Free Software Foundation, Inc. @@ -41,7 +42,7 @@ # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_APPLE_BUG) -# if __GNUC_GNU_INLINE__ +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else ------------------------------------------------------------ revno: 114746 committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2013-10-23 03:35:49 +0000 message: lisp/gnus/mm-decode.el (mm-dissect-buffer): Revert last change lisp/gnus/nndoc.el (nndoc-dissect-mime-parts-sub): Ditto The problem that motivated those changes was attributed to a broken mail sender, and has been fixed. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-10-22 10:22:59 +0000 +++ lisp/gnus/ChangeLog 2013-10-23 03:35:49 +0000 @@ -1,3 +1,10 @@ +2013-10-23 Katsumi Yamaoka + + * mm-decode.el (mm-dissect-buffer): Revert last change. + * nndoc.el (nndoc-dissect-mime-parts-sub): Ditto. + The problem that motivated those changes was attributed to a broken + mail sender, and has been fixed. + 2013-10-22 Katsumi Yamaoka * mm-decode.el (mm-dissect-buffer): Guess content-type if the first === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2013-10-22 10:22:59 +0000 +++ lisp/gnus/mm-decode.el 2013-10-23 03:35:49 +0000 @@ -672,39 +672,12 @@ description))))) (if (or (not ctl) (not (string-match "/" (car ctl)))) - (let ((cdl (and cd (mail-header-parse-content-disposition cd)))) (mm-dissect-singlepart - ;; Guess Content-Type from the file name extention. - ;; Some mailer sends a part without type like this: - ;; Content-Type: ; name="IMG_3156.JPG" - ;; Content-Disposition: attachment; filename="IMG_3156.JPG" - (list (or - (let ((tem - (or (mail-content-type-get cdl 'filename) - (and ct - (with-temp-buffer - (insert ct) - (goto-char (point-min)) - (and (re-search-forward "\ -;[\t\n ]*name=\\([\"']\\|\\([^\t\n\r ]+\\)\\)" nil t) - (or (match-string 2) - (progn - (goto-char (match-beginning 1)) - (condition-case nil - (progn - (forward-sexp 1) - (buffer-substring - (1+ (match-beginning 1)) - (1- (point)))) - (error nil)))))))))) - (and tem - (setq tem (file-name-extension tem)) - (require 'mailcap) - (cdr (assoc (concat "." (downcase tem)) - mailcap-mime-extensions)))) - mm-dissect-default-type)) + (list mm-dissect-default-type) (and cte (intern (downcase (mail-header-strip cte)))) - no-strict-mime cdl description)) + no-strict-mime + (and cd (mail-header-parse-content-disposition cd)) + description) (setq type (split-string (car ctl) "/")) (setq subtype (cadr type) type (car type)) === modified file 'lisp/gnus/nndoc.el' --- lisp/gnus/nndoc.el 2013-10-22 13:55:27 +0000 +++ lisp/gnus/nndoc.el 2013-10-23 03:35:49 +0000 @@ -968,61 +968,15 @@ (goto-char head-begin) (setq content-type (message-fetch-field "Content-Type")) (when content-type - (with-temp-buffer - (insert content-type) - (goto-char (point-min)) - (when (re-search-forward ";[\t\n ]*name=\\([\"']\\|\\([^\t\n\r ]+\\)\\)" - nil t) - (setq subject (or (match-string 2) - (progn - (goto-char (match-beginning 1)) - (condition-case nil - (progn - (forward-sexp 1) - (buffer-substring - (1+ (match-beginning 1)) (1- (point)))) - (error nil))))))) - (when (or (string-match "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" - content-type) - ;; Guess Content-Type from the file name extention. - ;; Some mailer sends a part without type like this: - ;; Content-Type: ; name="IMG_3156.JPG" - ;; Content-Disposition: attachment; filename="IMG_3156.JPG" - (let ((tem (message-fetch-field "Content-Disposition")) - (case-fold-search t) - len) - (when (and - (setq tem - (or (and tem - (mail-content-type-get - (mail-header-parse-content-disposition - tem) - 'filename)) - subject)) - (setq tem (file-name-extension tem)) - (require 'mailcap) - (setq content-type - (cdr (assoc (concat "." (downcase tem)) - mailcap-mime-extensions))) - (string-match "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" - content-type)) - (save-match-data - (goto-char (point-min)) - (when (re-search-forward "^Content-Type:\\([^;]*\\);" - nil t) - (setq len (- (match-end 1) (match-beginning 1) - (length content-type) 1) - head-end (- head-end len) - body-begin (- body-begin len) - body-end (- body-end len)) - (replace-match (concat "Content-Type: " content-type - ";")))) - t))) + (when (string-match + "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" content-type) (setq type (downcase (match-string 1 content-type)) subtype (downcase (match-string 2 content-type)) message-rfc822 (and (string= type "message") (string= subtype "rfc822")) multipart-any (string= type "multipart"))) + (when (string-match ";[ \t\n]*name=\\([^ \t\n;]+\\)" content-type) + (setq subject (match-string 1 content-type))) (when (string-match "boundary=\"?\\([^\"\n]*[^\" \t\n]\\)" content-type) (setq boundary-regexp (concat "^--" (regexp-quote ------------------------------------------------------------ revno: 114745 committer: Dmitry Gutov branch nick: trunk timestamp: Wed 2013-10-23 06:59:45 +0400 message: * lisp/progmodes/ruby-mode.el (ruby-smie--at-dot-call): Use `following-char'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-22 15:45:56 +0000 +++ lisp/ChangeLog 2013-10-23 02:59:45 +0000 @@ -1,6 +1,10 @@ +2013-10-23 Dmitry Gutov + + * progmodes/ruby-mode.el (ruby-smie--at-dot-call): Use + `following-char'. + 2013-10-22 Stefan Monnier - * emacs-lisp/smie.el (smie-rule-parent): Fix opener-test. * progmodes/ruby-mode.el (ruby-smie-rules): Remove corresponding workaround. Fix indentation rule of ";" so it === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-10-22 15:45:56 +0000 +++ lisp/progmodes/ruby-mode.el 2013-10-23 02:59:45 +0000 @@ -355,7 +355,7 @@ (memq (char-syntax (char-after pos)) '(?w ?\")))) (defun ruby-smie--at-dot-call () - (and (eq ?w (char-syntax (char-after))) + (and (eq ?w (char-syntax (following-char))) (eq (char-before) ?.) (not (eq (char-before (1- (point))) ?.)))) ------------------------------------------------------------ revno: 114744 committer: Dmitry Gutov branch nick: trunk timestamp: Wed 2013-10-23 00:47:29 +0400 message: * test/indent/ruby.rb: Move two examples to "working" section, add one more. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2013-10-21 03:50:06 +0000 +++ test/ChangeLog 2013-10-22 20:47:29 +0000 @@ -1,3 +1,8 @@ +2013-10-22 Dmitry Gutov + + * indent/ruby.rb: Move two examples to "working" section, add one + more. + 2013-10-21 Dmitry Gutov * indent/ruby.rb: New examples for indentation of blocks. Example === modified file 'test/indent/ruby.rb' --- test/indent/ruby.rb 2013-10-21 22:25:59 +0000 +++ test/indent/ruby.rb 2013-10-22 20:47:29 +0000 @@ -193,6 +193,16 @@ .qux .bar +foo do + bar + .tee +end + +def bar + foo + .baz +end + # Examples below still fail with `ruby-use-smie' on: foo = [1, 2, 3].map do |i| @@ -211,12 +221,6 @@ method (a + b), c -foo do +bar.foo do # "." is parent to "do"; it shouldn't be. bar - .tee -end - -def bar - foo - .baz end ------------------------------------------------------------ revno: 114743 committer: Stefan Monnier branch nick: trunk timestamp: Tue 2013-10-22 11:45:56 -0400 message: * lisp/emacs-lisp/smie.el (smie-rule-parent): Fix opener-test. * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Remove corresponding workaround. Fix indentation rule of ";" so it also applies when ";" is the parent. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-22 08:07:51 +0000 +++ lisp/ChangeLog 2013-10-22 15:45:56 +0000 @@ -1,10 +1,18 @@ +2013-10-22 Stefan Monnier + + + * emacs-lisp/smie.el (smie-rule-parent): Fix opener-test. + * progmodes/ruby-mode.el (ruby-smie-rules): + Remove corresponding workaround. Fix indentation rule of ";" so it + also applies when ";" is the parent. + 2013-10-22 Xue Fuqiao * frame.el (display-screens, display-pixel-height) (display-pixel-width, display-mm-width, display-backing-store) (display-save-under, display-planes, display-color-cells) - (display-visual-class, display-monitor-attributes-list): Mention - the optional ‘display’ argument in doc strings. + (display-visual-class, display-monitor-attributes-list): + Mention the optional ‘display’ argument in doc strings. 2013-10-22 Michael Gauland === modified file 'lisp/emacs-lisp/smie.el' --- lisp/emacs-lisp/smie.el 2013-10-11 00:45:03 +0000 +++ lisp/emacs-lisp/smie.el 2013-10-22 15:45:56 +0000 @@ -1242,7 +1242,8 @@ ;; rules-function, so it gives it a chance to tweak ;; indentation (e.g. by forcing indentation relative to ;; its own parent, as in fn a => fn b => fn c =>). - (if (or (listp (car smie--parent)) (smie-indent--hanging-p)) + (if (or (not (numberp (car smie--parent))) + (smie-indent--hanging-p)) (smie-indent-virtual) (current-column)))))) (defvar smie-rule-separator-outdent 2) === modified file 'lisp/progmodes/ruby-mode.el' --- lisp/progmodes/ruby-mode.el 2013-10-21 22:25:59 +0000 +++ lisp/progmodes/ruby-mode.el 2013-10-22 15:45:56 +0000 @@ -444,23 +444,13 @@ ;; should be aligned with the first. (`(:elem . args) (if (looking-at "\\s\"") 0)) ;; (`(:after . ",") (smie-rule-separator kind)) - (`(:after . ";") + (`(:before . ";") (cond ((smie-rule-parent-p "def" "begin" "do" "class" "module" "for" "while" "until" "unless" "if" "then" "elsif" "else" "when" - "rescue" "ensure") + "rescue" "ensure" "{") (smie-rule-parent ruby-indent-level)) - ((and (smie-rule-parent-p "{") - (save-excursion - (goto-char (1+ (cadr (smie-indent--parent)))) - (ruby-smie--opening-pipe-p) - (forward-char -1) - ;; Can't delegate to `smie-rule-parent' because it - ;; short-circuits to `current-column' when the parent - ;; token is of paren syntax class and not hanging. - (cons 'column (+ (smie-indent-virtual) - ruby-indent-level))))) ;; For (invalid) code between switch and case. ;; (if (smie-parent-p "switch") 4) (t 0))) ------------------------------------------------------------ revno: 114742 committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2013-10-22 13:55:27 +0000 message: lisp/gnus/nndoc.el (nndoc-dissect-mime-parts-sub): Fix last change diff: === modified file 'lisp/gnus/nndoc.el' --- lisp/gnus/nndoc.el 2013-10-22 10:22:59 +0000 +++ lisp/gnus/nndoc.el 2013-10-22 13:55:27 +0000 @@ -1011,7 +1011,7 @@ (when (re-search-forward "^Content-Type:\\([^;]*\\);" nil t) (setq len (- (match-end 1) (match-beginning 1) - (length content-type)) + (length content-type) 1) head-end (- head-end len) body-begin (- body-begin len) body-end (- body-end len)) ------------------------------------------------------------ revno: 114741 committer: Katsumi Yamaoka branch nick: trunk timestamp: Tue 2013-10-22 10:22:59 +0000 message: lisp/gnus/mm-decode.el (mm-dissect-buffer): Guess content-type if the first token is missing in the Content-Type header lisp/gnus/nndoc.el (nndoc-dissect-mime-parts-sub): Ditto diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2013-10-13 00:31:19 +0000 +++ lisp/gnus/ChangeLog 2013-10-22 10:22:59 +0000 @@ -1,3 +1,10 @@ +2013-10-22 Katsumi Yamaoka + + * mm-decode.el (mm-dissect-buffer): Guess content-type if the first + token is missing in the Content-Type header. + + * nndoc.el (nndoc-dissect-mime-parts-sub): Ditto. + 2013-09-18 Glenn Morris * gnus-util.el (image-size): Declare. === modified file 'lisp/gnus/mm-decode.el' --- lisp/gnus/mm-decode.el 2013-09-18 00:25:23 +0000 +++ lisp/gnus/mm-decode.el 2013-10-22 10:22:59 +0000 @@ -672,12 +672,39 @@ description))))) (if (or (not ctl) (not (string-match "/" (car ctl)))) - (mm-dissect-singlepart - (list mm-dissect-default-type) - (and cte (intern (downcase (mail-header-strip cte)))) - no-strict-mime - (and cd (mail-header-parse-content-disposition cd)) - description) + (let ((cdl (and cd (mail-header-parse-content-disposition cd)))) + (mm-dissect-singlepart + ;; Guess Content-Type from the file name extention. + ;; Some mailer sends a part without type like this: + ;; Content-Type: ; name="IMG_3156.JPG" + ;; Content-Disposition: attachment; filename="IMG_3156.JPG" + (list (or + (let ((tem + (or (mail-content-type-get cdl 'filename) + (and ct + (with-temp-buffer + (insert ct) + (goto-char (point-min)) + (and (re-search-forward "\ +;[\t\n ]*name=\\([\"']\\|\\([^\t\n\r ]+\\)\\)" nil t) + (or (match-string 2) + (progn + (goto-char (match-beginning 1)) + (condition-case nil + (progn + (forward-sexp 1) + (buffer-substring + (1+ (match-beginning 1)) + (1- (point)))) + (error nil)))))))))) + (and tem + (setq tem (file-name-extension tem)) + (require 'mailcap) + (cdr (assoc (concat "." (downcase tem)) + mailcap-mime-extensions)))) + mm-dissect-default-type)) + (and cte (intern (downcase (mail-header-strip cte)))) + no-strict-mime cdl description)) (setq type (split-string (car ctl) "/")) (setq subtype (cadr type) type (car type)) === modified file 'lisp/gnus/nndoc.el' --- lisp/gnus/nndoc.el 2013-01-01 09:11:05 +0000 +++ lisp/gnus/nndoc.el 2013-10-22 10:22:59 +0000 @@ -968,15 +968,61 @@ (goto-char head-begin) (setq content-type (message-fetch-field "Content-Type")) (when content-type - (when (string-match - "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" content-type) + (with-temp-buffer + (insert content-type) + (goto-char (point-min)) + (when (re-search-forward ";[\t\n ]*name=\\([\"']\\|\\([^\t\n\r ]+\\)\\)" + nil t) + (setq subject (or (match-string 2) + (progn + (goto-char (match-beginning 1)) + (condition-case nil + (progn + (forward-sexp 1) + (buffer-substring + (1+ (match-beginning 1)) (1- (point)))) + (error nil))))))) + (when (or (string-match "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" + content-type) + ;; Guess Content-Type from the file name extention. + ;; Some mailer sends a part without type like this: + ;; Content-Type: ; name="IMG_3156.JPG" + ;; Content-Disposition: attachment; filename="IMG_3156.JPG" + (let ((tem (message-fetch-field "Content-Disposition")) + (case-fold-search t) + len) + (when (and + (setq tem + (or (and tem + (mail-content-type-get + (mail-header-parse-content-disposition + tem) + 'filename)) + subject)) + (setq tem (file-name-extension tem)) + (require 'mailcap) + (setq content-type + (cdr (assoc (concat "." (downcase tem)) + mailcap-mime-extensions))) + (string-match "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" + content-type)) + (save-match-data + (goto-char (point-min)) + (when (re-search-forward "^Content-Type:\\([^;]*\\);" + nil t) + (setq len (- (match-end 1) (match-beginning 1) + (length content-type)) + head-end (- head-end len) + body-begin (- body-begin len) + body-end (- body-end len)) + (replace-match (concat "Content-Type: " content-type + ";")))) + t))) (setq type (downcase (match-string 1 content-type)) subtype (downcase (match-string 2 content-type)) message-rfc822 (and (string= type "message") (string= subtype "rfc822")) multipart-any (string= type "multipart"))) - (when (string-match ";[ \t\n]*name=\\([^ \t\n;]+\\)" content-type) - (setq subject (match-string 1 content-type))) (when (string-match "boundary=\"?\\([^\"\n]*[^\" \t\n]\\)" content-type) (setq boundary-regexp (concat "^--" (regexp-quote ------------------------------------------------------------ revno: 114740 committer: Xue Fuqiao branch nick: trunk timestamp: Tue 2013-10-22 16:07:51 +0800 message: Mention the optional ‘display’ argument in doc strings. * frame.el (display-screens, display-pixel-height) (display-pixel-width, display-mm-width, display-backing-store) (display-save-under, display-planes, display-color-cells) (display-visual-class, display-monitor-attributes-list): Mention the optional ‘display’ argument in doc strings. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-10-22 00:47:32 +0000 +++ lisp/ChangeLog 2013-10-22 08:07:51 +0000 @@ -1,3 +1,11 @@ +2013-10-22 Xue Fuqiao + + * frame.el (display-screens, display-pixel-height) + (display-pixel-width, display-mm-width, display-backing-store) + (display-save-under, display-planes, display-color-cells) + (display-visual-class, display-monitor-attributes-list): Mention + the optional ‘display’ argument in doc strings. + 2013-10-22 Michael Gauland * progmodes/ebnf2ps.el (ebnf-prologue): Avoid PS error with some === modified file 'lisp/frame.el' --- lisp/frame.el 2013-10-02 18:44:40 +0000 +++ lisp/frame.el 2013-10-22 08:07:51 +0000 @@ -1358,7 +1358,8 @@ (declare-function x-display-screens "xfns.c" (&optional terminal)) (defun display-screens (&optional display) - "Return the number of screens associated with DISPLAY." + "Return the number of screens associated with DISPLAY. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1374,7 +1375,8 @@ For graphical terminals, note that on \"multi-monitor\" setups this refers to the pixel height for all physical monitors associated with DISPLAY. To get information for each physical monitor, use -`display-monitor-attributes-list'." +`display-monitor-attributes-list'. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1390,7 +1392,8 @@ For graphical terminals, note that on \"multi-monitor\" setups this refers to the pixel width for all physical monitors associated with DISPLAY. To get information for each physical monitor, use -`display-monitor-attributes-list'." +`display-monitor-attributes-list'. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1425,7 +1428,8 @@ For graphical terminals, note that on \"multi-monitor\" setups this refers to the height in millimeters for all physical monitors associated with DISPLAY. To get information for each physical -monitor, use `display-monitor-attributes-list'." +monitor, use `display-monitor-attributes-list'. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (and (memq (framep-on-display display) '(x w32 ns)) (or (cddr (assoc (or display (frame-parameter nil 'display)) display-mm-dimensions-alist)) @@ -1441,7 +1445,8 @@ For graphical terminals, note that on \"multi-monitor\" setups this refers to the width in millimeters for all physical monitors associated with DISPLAY. To get information for each physical -monitor, use `display-monitor-attributes-list'." +monitor, use `display-monitor-attributes-list'. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (and (memq (framep-on-display display) '(x w32 ns)) (or (cadr (assoc (or display (frame-parameter nil 'display)) display-mm-dimensions-alist)) @@ -1455,7 +1460,8 @@ (defun display-backing-store (&optional display) "Return the backing store capability of DISPLAY's screen. The value may be `always', `when-mapped', `not-useful', or nil if -the question is inapplicable to a certain kind of display." +the question is inapplicable to a certain kind of display. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1466,7 +1472,8 @@ (declare-function x-display-save-under "xfns.c" (&optional terminal)) (defun display-save-under (&optional display) - "Return non-nil if DISPLAY's screen supports the SaveUnder feature." + "Return non-nil if DISPLAY's screen supports the SaveUnder feature. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1477,7 +1484,8 @@ (declare-function x-display-planes "xfns.c" (&optional terminal)) (defun display-planes (&optional display) - "Return the number of planes supported by DISPLAY." + "Return the number of planes supported by DISPLAY. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1490,7 +1498,8 @@ (declare-function x-display-color-cells "xfns.c" (&optional terminal)) (defun display-color-cells (&optional display) - "Return the number of color cells supported by DISPLAY." + "Return the number of color cells supported by DISPLAY. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1505,7 +1514,8 @@ (defun display-visual-class (&optional display) "Return the visual class of DISPLAY. The value is one of the symbols `static-gray', `gray-scale', -`static-color', `pseudo-color', `true-color', or `direct-color'." +`static-color', `pseudo-color', `true-color', or `direct-color'. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((memq frame-type '(x w32 ns)) @@ -1550,7 +1560,8 @@ physical monitors. Every non-tip frame (including invisible one) in a graphical display is dominated by exactly one physical monitor at a time, though it can span multiple (or no) physical -monitors." +monitors. +If DISPLAY is omitted or nil, it defaults to the selected frame's display." (let ((frame-type (framep-on-display display))) (cond ((eq frame-type 'x)