Now on revision 108305. ------------------------------------------------------------ revno: 108305 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 23:45:24 -0700 message: * Makefile.in (install-arch-indep): Remove unneeded chmod. Set permissions of lisp/subdirs.el. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-19 06:42:26 +0000 +++ ChangeLog 2012-05-19 06:45:24 +0000 @@ -1,5 +1,8 @@ 2012-05-19 Glenn Morris + * Makefile.in (install-arch-indep): Remove unneeded chmod. + Set permissions of lisp/subdirs.el. + * Makefile.in (SUBDIR): Add leim. Update users. * Makefile.in (lib, lib-src, lisp): Check cd return value. === modified file 'Makefile.in' --- Makefile.in 2012-05-19 06:42:26 +0000 +++ Makefile.in 2012-05-19 06:45:24 +0000 @@ -532,7 +532,6 @@ [ "$${dir}" != "${srcdir}/etc" ] || rm -f $${dest}/DOC* ; \ find $${dest} -exec chown $${installuser} {} ';' ;\ 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 ; \ @@ -546,7 +545,7 @@ done) ; \ done -rm -f $(DESTDIR)${lispdir}/subdirs.el - $(srcdir)/update-subdirs $(DESTDIR)${lispdir} + umask 022; $(srcdir)/update-subdirs $(DESTDIR)${lispdir} subdir=$(DESTDIR)${datadir}/emacs/${version}/site-lisp ; \ ${write_subdir} subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \ @@ -560,6 +559,8 @@ done ) -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} +# The last chmod isn't needed at present. + ## We install only the relevant DOC file if possible ## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*. ## (Note "otherwise" is inaccurate since 2009-08-23.) ------------------------------------------------------------ revno: 108304 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 23:42:26 -0700 message: * Makefile.in (SUBDIR): Add leim. Update users. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-19 06:36:25 +0000 +++ ChangeLog 2012-05-19 06:42:26 +0000 @@ -1,5 +1,7 @@ 2012-05-19 Glenn Morris + * Makefile.in (SUBDIR): Add leim. Update users. + * Makefile.in (lib, lib-src, lisp): Check cd return value. * Makefile.in (leim): No need to set PARALLEL. === modified file 'Makefile.in' --- Makefile.in 2012-05-19 06:36:25 +0000 +++ Makefile.in 2012-05-19 06:42:26 +0000 @@ -258,14 +258,8 @@ EMACS = `echo emacs${EXEEXT} | sed '$(TRANSFORM)'` EMACSFULL = `echo emacs-${version}${EXEEXT} | sed '$(TRANSFORM)'` -# Subdirectories to make recursively. `lisp' is not included -# because the compiled lisp files are part of the distribution. -# leim is not included because it needs special handling. -# -# Actually, we now include `lisp' as well, since the compiled files -# are not included any more in case of bootstrap or in case Emacs was -# checked out from a VCS. -SUBDIR = lib lib-src src lisp +# Subdirectories to make recursively. +SUBDIR = lib lib-src src lisp leim # The subdir makefiles created by config.status. SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@ @@ -280,7 +274,7 @@ COPYDIR = ${srcdir}/etc ${srcdir}/lisp COPYDESTS = $(DESTDIR)${etcdir} $(DESTDIR)${lispdir} -all: ${SUBDIR} leim +all: ${SUBDIR} removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g' @@ -305,18 +299,15 @@ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') && \ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h -# For parallel make, src should be built before leim. -leim: src Makefile FRC - cd leim && $(MAKE) all $(MFLAGS) - lib-src src: lib src: lib-src FRC -.RECURSIVE: ${SUBDIR} leim +.RECURSIVE: ${SUBDIR} -# We need to build `emacs' in `src' to compile the *.elc files in `lisp'. -lisp: src +# We need to build `emacs' in `src' to compile the *.elc files in `lisp' +# and `leim'. +lisp leim: src # Maintainers can put a copy of gnulib into $(gnulib_srcdir). gnulib_srcdir = ../gnulib @@ -356,7 +347,7 @@ .PHONY: sync-from-gnulib # These targets should be "${SUBDIR} without `src'". -lib lib-src lisp: Makefile FRC +lib lib-src lisp leim: Makefile FRC cd $@ && $(MAKE) all $(MFLAGS) \ CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' @@ -818,7 +809,7 @@ ### the coding standards seem to come from. It's like distclean, but ### it deletes backup and autosave files too. extraclean: - for i in ${SUBDIR} leim; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done + for i in ${SUBDIR}; do (cd $$i; $(MAKE) $(MFLAGS) extraclean); done ${top_maintainer_clean} -rm -f config-tmp-* -rm -f *~ \#* ------------------------------------------------------------ revno: 108303 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 23:36:25 -0700 message: * Makefile.in (lib, lib-src, lisp): Check cd return value. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-19 06:34:59 +0000 +++ ChangeLog 2012-05-19 06:36:25 +0000 @@ -1,5 +1,7 @@ 2012-05-19 Glenn Morris + * Makefile.in (lib, lib-src, lisp): Check cd return value. + * Makefile.in (leim): No need to set PARALLEL. 2012-05-18 Glenn Morris === modified file 'Makefile.in' --- Makefile.in 2012-05-19 06:34:59 +0000 +++ Makefile.in 2012-05-19 06:36:25 +0000 @@ -357,7 +357,7 @@ # These targets should be "${SUBDIR} without `src'". lib lib-src lisp: Makefile FRC - cd $@; $(MAKE) all $(MFLAGS) \ + cd $@ && $(MAKE) all $(MFLAGS) \ CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \ LDFLAGS='${LDFLAGS}' MAKE='${MAKE}' ------------------------------------------------------------ revno: 108302 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 23:34:59 -0700 message: * Makefile.in (leim): No need to set PARALLEL. This predates the use of changed.misc etc to serialize the leim build. The leim Makefile used to set .NO_PARALLEL/.NOTPARALLEL for the same reason, but has not done so for many years. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 23:15:11 +0000 +++ ChangeLog 2012-05-19 06:34:59 +0000 @@ -1,3 +1,7 @@ +2012-05-19 Glenn Morris + + * Makefile.in (leim): No need to set PARALLEL. + 2012-05-18 Glenn Morris * Makefile.in (install-arch-indep, install-info, install-man): === modified file 'Makefile.in' --- Makefile.in 2012-05-18 23:15:11 +0000 +++ Makefile.in 2012-05-19 06:34:59 +0000 @@ -306,11 +306,8 @@ ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h # For parallel make, src should be built before leim. -# "export PARALLEL=0" is for SGI's Make, to prevent it from -# running more than 1 process in the leim directory, especially for -# the $TIT files there. leim: src Makefile FRC - cd leim && PARALLEL=0 $(MAKE) all $(MFLAGS) + cd leim && $(MAKE) all $(MFLAGS) lib-src src: lib === modified file 'leim/Makefile.in' --- leim/Makefile.in 2012-05-12 01:19:47 +0000 +++ leim/Makefile.in 2012-05-19 06:34:59 +0000 @@ -123,8 +123,15 @@ ${CHINESE_TIT}: changed.tit @true -## FIXME remove subdirs if poss - time-stamping. +## FIXME remove subdirs if possible - time-stamping. ## Emacs should make the directory if it does not exist. + +## The changed.* files act to serialize this part of the build. +## A single Emacs invocation creates all the CHINESE_TIT files. +## Otherwise in a parallel build multiple Emacs instances could +## interfere with each other. If we used GNU make we could probably +## parallelize this without the need for an explicit rule for each +## file. changed.tit: ${SUBDIRS} ${TIT_SOURCES} ${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \ -f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \ ------------------------------------------------------------ revno: 108301 committer: Jay Belanger branch nick: trunk timestamp: Fri 2012-05-18 22:11:09 -0500 message: * calc/calc-units.el (calc-quick-units): Use the proper units expression. diff: === modified file 'lisp/calc/calc-units.el' --- lisp/calc/calc-units.el 2012-05-19 03:03:35 +0000 +++ lisp/calc/calc-units.el 2012-05-19 03:11:09 +0000 @@ -374,7 +374,7 @@ (if (math-units-in-expr-p expr nil) (progn (if calc-ensure-consistent-units - (math-check-unit-consistency expr units)) + (math-check-unit-consistency expr (nth pos units))) (calc-enter-result 1 (format "cun%d" num) (math-convert-units expr (nth pos units)))) (calc-enter-result 1 (format "*un%d" num) ------------------------------------------------------------ revno: 108300 committer: Jay Belanger branch nick: trunk timestamp: Fri 2012-05-18 22:03:35 -0500 message: * calc/calc-units.el (calc-ensure-consistent-units): Declare. diff: === modified file 'lisp/calc/calc-units.el' --- lisp/calc/calc-units.el 2012-05-19 03:00:48 +0000 +++ lisp/calc/calc-units.el 2012-05-19 03:03:35 +0000 @@ -356,6 +356,8 @@ (math-to-standard-units (calc-top-n 1) nil)))))) +(defvar calc-ensure-consistent-units) + (defun calc-quick-units () (interactive) (calc-slow-wrapper ------------------------------------------------------------ revno: 108299 committer: Jay Belanger branch nick: trunk timestamp: Fri 2012-05-18 22:00:48 -0500 message: * calc/calc.el (calc-ensure-consistent-units): New variable. * calc/calc-units.el (math-consistent-units-p, math-check-unit-consistency): New functions. (calc-quick-units, calc-convert-units): Use `math-check-unit-consistency' when `calc-ensure-consistent-units' is non-nil. (calc-extract-units): Fix typo. * doc/misc/calc.texi (Basic Operations on Units, Customizing Calc): Mention `calc-ensure-consistent-units'. diff: === modified file 'doc/misc/ChangeLog' --- doc/misc/ChangeLog 2012-05-14 16:11:24 +0000 +++ doc/misc/ChangeLog 2012-05-19 03:00:48 +0000 @@ -1,3 +1,9 @@ +2012-05-19 Jay Belanger + + * doc/misc/calc.texi + (Basic Operations on Units, Customizing Calc): + Mention `calc-ensure-consistent-units'. + 2012-05-14 Andreas Schwab * cc-mode.texi: Avoid space before macro in 4th argument of cross === modified file 'doc/misc/calc.texi' --- doc/misc/calc.texi 2012-02-28 08:17:21 +0000 +++ doc/misc/calc.texi 2012-05-19 03:00:48 +0000 @@ -27778,6 +27778,11 @@ ``fundamental'' units like @samp{m} and @samp{s}, regardless of the input units. +If you want to disallow using inconsistent units, you can set the customizable variable +@code{calc-ensure-consistent-units} to @code{t} (@pxref{Customizing Calc}). In this case, +if you request units which are inconsistent with the original units, you will be warned about +it and no conversion will occur. + One special exception is that if you specify a single unit name, and a compatible unit appears somewhere in the units expression, then that compatible unit will be converted to the new unit and the @@ -35591,6 +35596,19 @@ of @code{calc-multiplication-has-precedence} is @code{t}. @end defvar +@defvar calc-ensure-consistent-units +When converting units, the variable @code{calc-ensure-consistent-units} +determines whether or not the target units need to be consistent with the +original units. If @code{calc-ensure-consistent-units} is @code{nil}, then +the target units don't need to have the same dimensions as the original units; +for example, converting @samp{100 ft/s} to @samp{m} will produce @samp{30.48 m/s}. +If @code{calc-ensure-consistent-units} is non-@code{nil}, then the target units +need to have the same dimensions as the original units; for example, converting +@samp{100 ft/s} to @samp{m} will result in an error, since @samp{ft/s} and @samp{m} +have different dimensions. The default value of @code{calc-ensure-consistent-units} +is @code{nil}. +@end defvar + @defvar calc-undo-length The variable @code{calc-undo-length} determines the number of undo steps that Calc will keep track of when @code{calc-quit} is called. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-18 20:38:37 +0000 +++ lisp/ChangeLog 2012-05-19 03:00:48 +0000 @@ -1,3 +1,13 @@ +2012-05-19 Jay Belanger + + * calc/calc.el (calc-ensure-consistent-units): New variable. + + * calc/calc-units.el (math-consistent-units-p, math-check-unit-consistency): + New functions. + (calc-quick-units, calc-convert-units): Use `math-check-unit-consistency' when + `calc-ensure-consistent-units' is non-nil. + (calc-extract-units): Fix typo. + 2012-05-18 Stefan Monnier * vc/vc-bzr.el (vc-bzr-state-heuristic): Save match-data around sha1. === modified file 'lisp/calc/calc-units.el' --- lisp/calc/calc-units.el 2012-04-09 13:05:48 +0000 +++ lisp/calc/calc-units.el 2012-05-19 03:00:48 +0000 @@ -370,8 +370,11 @@ (unless (< pos (length units)) (error "Unit number %d not defined" pos)) (if (math-units-in-expr-p expr nil) - (calc-enter-result 1 (format "cun%d" num) - (math-convert-units expr (nth pos units))) + (progn + (if calc-ensure-consistent-units + (math-check-unit-consistency expr units)) + (calc-enter-result 1 (format "cun%d" num) + (math-convert-units expr (nth pos units)))) (calc-enter-result 1 (format "*un%d" num) (math-simplify-units (math-mul expr (nth pos units)))))))) @@ -477,6 +480,8 @@ (setq units (math-read-expr new-units)) (when (eq (car-safe units) 'error) (error "Bad format in units expression: %s" (nth 2 units))) + (if calc-ensure-consistent-units + (math-check-unit-consistency expr units)) (math-put-default-units units) (let ((unew (math-units-in-expr-p units t)) (std (and (eq (car-safe units) 'var) @@ -560,7 +565,7 @@ (defun calc-extract-units () (interactive) (calc-slow-wrapper - (calc-enter-result 1 "rmun" (math-simplify-units + (calc-enter-result 1 "exun" (math-simplify-units (math-extract-units (calc-top-n 1)))))) ;; The variables calc-num-units and calc-den-units are local to @@ -914,6 +919,17 @@ (math-single-units-in-expr-p (nth 1 expr)))) (t 'wrong))) +(defun math-consistent-units-p (expr1 expr2) + "Non-nil if EXPR1 and EXPR2 have consistent units." + (math-numberp (math-get-units (list '/ expr1 expr2)))) + +(defun math-check-unit-consistency (expr units) + "Give an error if EXPR and UNITS do not have consistent units." + (unless (math-consistent-units-p expr units) + (error "New units (%s) are inconsistent with current units (%s)" + (math-format-value units) + (math-format-value (math-get-units expr))))) + (defun math-check-unit-name (v) (and (eq (car-safe v) 'var) (or (assq (nth 1 v) (or math-units-table (math-build-units-table))) === modified file 'lisp/calc/calc.el' --- lisp/calc/calc.el 2012-04-22 13:58:00 +0000 +++ lisp/calc/calc.el 2012-05-19 03:00:48 +0000 @@ -418,6 +418,13 @@ :group 'calc :type 'boolean) +(defcustom calc-ensure-consistent-units + nil + "If non-nil, make sure new units are consistent with current units +when converting units." + :group 'calc + :type 'boolean) + (defcustom calc-undo-length 100 "The number of undo steps that will be preserved when Calc is quit." ------------------------------------------------------------ revno: 108298 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 19:15:11 -0400 message: Further small Makefile install simplifications * Makefile.in (install-arch-indep, install-info, install-man): Simplify some one-sided ifs. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 18:40:19 +0000 +++ ChangeLog 2012-05-18 23:15:11 +0000 @@ -1,5 +1,8 @@ 2012-05-18 Glenn Morris + * Makefile.in (install-arch-indep, install-info, install-man): + Simplify some one-sided ifs. + * Makefile.in: Install only the relevant DOC file. (install-arch-indep): Delete etc/DOC*. (install-doc): No more need to delete etc/DOC. === modified file 'Makefile.in' --- Makefile.in 2012-05-18 18:40:19 +0000 +++ Makefile.in 2012-05-18 23:15:11 +0000 @@ -563,14 +563,13 @@ ${write_subdir} subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \ ${write_subdir} || true - -unset CDPATH; \ - if [ -n "${GZIP_PROG}" ]; \ - then \ - echo "Compressing *.el ..." ; \ - (cd $(DESTDIR)${lispdir}; for f in `find . -name "*.elc" -print`; do \ - ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ - done) \ - else true; fi + [ -z "${GZIP_PROG}" ] || \ + ( echo "Compressing *.el ..." ; \ + unset CDPATH; \ + cd $(DESTDIR)${lispdir}; \ + for f in `find . -name "*.elc" -print`; do \ + ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ + done ) -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} ## We install only the relevant DOC file if possible @@ -601,14 +600,11 @@ umask 022; ${MKDIR_P} $(DESTDIR)${infodir} -unset CDPATH; \ thisdir=`/bin/pwd`; \ - if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd $(DESTDIR)${infodir} && /bin/pwd)` ]; \ - then \ + [ `(cd ${srcdir}/info && /bin/pwd)` = `(cd $(DESTDIR)${infodir} && /bin/pwd)` ] || \ (cd $(DESTDIR)${infodir}; \ - if [ -f dir ]; then true; \ - else \ + [ -f dir ] || \ (cd $${thisdir}; \ ${INSTALL_DATA} ${srcdir}/info/dir $(DESTDIR)${infodir}/dir) ; \ - fi; \ info_misc=`cd $${thisdir}/doc/misc; ${MAKE} echo-info | sed '/ing directory/d'`; \ cd ${srcdir}/info ; \ for elt in ${INFO_NONMISC} $${info_misc}; do \ @@ -616,15 +612,13 @@ 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); \ - if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ - rm -f $(DESTDIR)${infodir}/$$f.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \ - else true; fi; \ + ( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \ + rm -f $(DESTDIR)${infodir}/$$f.gz; \ + ${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \ done; \ (cd $${thisdir}; \ ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ - done); \ - else true; fi + done) install-man: umask 022; ${MKDIR_P} $(DESTDIR)${man1dir} @@ -632,11 +626,10 @@ cd ${mansrcdir}; \ for page in *.1; do \ (cd $${thisdir}; \ - ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}; \ - if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \ - rm -f $(DESTDIR)${man1dir}/$${page}.gz; \ - ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \ - else true; fi ); \ + ${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${page}); \ + ( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \ + rm -f $(DESTDIR)${man1dir}/$${page}.gz; \ + ${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${page}; \ done ## Install those items from etc/ that need to end up elsewhere. ------------------------------------------------------------ revno: 108297 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-18 16:38:37 -0400 message: * lisp/vc/vc-bzr.el (vc-bzr-state-heuristic): Save match-data around sha1. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-18 19:04:07 +0000 +++ lisp/ChangeLog 2012-05-18 20:38:37 +0000 @@ -1,5 +1,7 @@ 2012-05-18 Stefan Monnier + * vc/vc-bzr.el (vc-bzr-state-heuristic): Save match-data around sha1. + * textmodes/flyspell.el: Commenting style, plus code simplifications. (flyspell-default-deplacement-commands): Don't spell check after repeated window/frame switches (e.g. triggered by mouse-movement). === modified file 'lisp/vc/vc-bzr.el' --- lisp/vc/vc-bzr.el 2012-04-26 03:18:47 +0000 +++ lisp/vc/vc-bzr.el 2012-05-18 20:38:37 +0000 @@ -208,85 +208,88 @@ ;; + working ( = packed_stat ) ;; parent = common ( as above ) + history ( = rev_id ) ;; kinds = (r)elocated, (a)bsent, (d)irectory, (f)ile, (l)ink - (let ((root (vc-bzr-root file))) - (when root ; Short cut. - (let ((dirstate (expand-file-name vc-bzr-admin-dirstate root))) - (condition-case nil - (with-temp-buffer - (insert-file-contents dirstate) - (goto-char (point-min)) - (if (not (looking-at "#bazaar dirstate flat format 3")) - (vc-bzr-state file) ; Some other unknown format? - (let* ((relfile (file-relative-name file root)) - (reldir (file-name-directory relfile))) - (if (re-search-forward - (concat "^\0" - (if reldir (regexp-quote - (directory-file-name reldir))) - "\0" - (regexp-quote (file-name-nondirectory relfile)) - "\0" - "[^\0]*\0" ;id? - "\\([^\0]*\\)\0" ;"a/f/d", a=removed? - "\\([^\0]*\\)\0" ;sha1 (empty if conflicted)? - "\\([^\0]*\\)\0" ;size?p - ;; y/n. Whether or not the current copy - ;; was executable the last time bzr checked? - "[^\0]*\0" - "[^\0]*\0" ;? - ;; Parent information. Absent in a new repo. - "\\(?:\\([^\0]*\\)\0" ;"a/f/d" a=added? - "\\([^\0]*\\)\0" ;sha1 again? - "\\([^\0]*\\)\0" ;size again? - ;; y/n. Whether or not the repo thinks - ;; the file should be executable? - "\\([^\0]*\\)\0" - "[^\0]*\0\\)?" ;last revid? - ;; There are more fields when merges are pending. - ) - nil t) - ;; Apparently the second sha1 is the one we want: when - ;; there's a conflict, the first sha1 is absent (and the - ;; first size seems to correspond to the file with - ;; conflict markers). - (cond - ((eq (char-after (match-beginning 1)) ?a) 'removed) - ;; If there is no parent, this must be a new repo. - ;; If file is in dirstate, can only be added (b#8025). - ((or (not (match-beginning 4)) - (eq (char-after (match-beginning 4)) ?a)) 'added) - ((or (and (eq (string-to-number (match-string 3)) - (nth 7 (file-attributes file))) - (equal (match-string 5) - (vc-bzr-sha1 file)) - ;; For a file, does the executable state match? - ;; (Bug#7544) - (or (not - (eq (char-after (match-beginning 1)) ?f)) - (let ((exe - (memq - ?x - (mapcar - 'identity - (nth 8 (file-attributes file)))))) - (if (eq (char-after (match-beginning 7)) - ?y) - exe - (not exe))))) - (and - ;; It looks like for lightweight - ;; checkouts \2 is empty and we need to - ;; look for size in \6. - (eq (match-beginning 2) (match-end 2)) - (eq (string-to-number (match-string 6)) - (nth 7 (file-attributes file))) - (equal (match-string 5) - (vc-bzr-sha1 file)))) - 'up-to-date) - (t 'edited)) - 'unregistered)))) - ;; The dirstate file can't be read, or some other problem. - (error (vc-bzr-state file))))))) + (let* ((root (vc-bzr-root file)) + (dirstate (expand-file-name vc-bzr-admin-dirstate root))) + (when root ; Short cut. + (condition-case err + (with-temp-buffer + (insert-file-contents dirstate) + (goto-char (point-min)) + (if (not (looking-at "#bazaar dirstate flat format 3")) + (vc-bzr-state file) ; Some other unknown format? + (let* ((relfile (file-relative-name file root)) + (reldir (file-name-directory relfile))) + (cond + ((not + (re-search-forward + (concat "^\0" + (if reldir (regexp-quote + (directory-file-name reldir))) + "\0" + (regexp-quote (file-name-nondirectory relfile)) + "\0" + "[^\0]*\0" ;id? + "\\([^\0]*\\)\0" ;"a/f/d", a=removed? + "\\([^\0]*\\)\0" ;sha1 (empty if conflicted)? + "\\([^\0]*\\)\0" ;size?p + ;; y/n. Whether or not the current copy + ;; was executable the last time bzr checked? + "[^\0]*\0" + "[^\0]*\0" ;? + ;; Parent information. Absent in a new repo. + "\\(?:\\([^\0]*\\)\0" ;"a/f/d" a=added? + "\\([^\0]*\\)\0" ;sha1 again? + "\\([^\0]*\\)\0" ;size again? + ;; y/n. Whether or not the repo thinks + ;; the file should be executable? + "\\([^\0]*\\)\0" + "[^\0]*\0\\)?" ;last revid? + ;; There are more fields when merges are pending. + ) + nil t)) + 'unregistered) + ;; Apparently the second sha1 is the one we want: when + ;; there's a conflict, the first sha1 is absent (and the + ;; first size seems to correspond to the file with + ;; conflict markers). + ((eq (char-after (match-beginning 1)) ?a) 'removed) + ;; If there is no parent, this must be a new repo. + ;; If file is in dirstate, can only be added (b#8025). + ((or (not (match-beginning 4)) + (eq (char-after (match-beginning 4)) ?a)) 'added) + ((or (and (eq (string-to-number (match-string 3)) + (nth 7 (file-attributes file))) + (equal (match-string 5) + (save-match-data (vc-bzr-sha1 file))) + ;; For a file, does the executable state match? + ;; (Bug#7544) + (or (not + (eq (char-after (match-beginning 1)) ?f)) + (let ((exe + (memq + ?x + (mapcar + 'identity + (nth 8 (file-attributes file)))))) + (if (eq (char-after (match-beginning 7)) + ?y) + exe + (not exe))))) + (and + ;; It looks like for lightweight + ;; checkouts \2 is empty and we need to + ;; look for size in \6. + (eq (match-beginning 2) (match-end 2)) + (eq (string-to-number (match-string 6)) + (nth 7 (file-attributes file))) + (equal (match-string 5) + (vc-bzr-sha1 file)))) + 'up-to-date) + (t 'edited))))) + ;; The dirstate file can't be read, or some other problem. + (error + (message "Falling back on \"slow\" status detection (%S)" err) + (vc-bzr-state file)))))) (defun vc-bzr-registered (file) ------------------------------------------------------------ revno: 108296 committer: Stefan Monnier branch nick: trunk timestamp: Fri 2012-05-18 15:04:07 -0400 message: * lisp/textmodes/flyspell.el: Commenting style, plus code simplifications. (flyspell-default-deplacement-commands): Don't spell check after repeated window/frame switches (e.g. triggered by mouse-movement). (flyspell-delay-commands, flyspell-deplacement-commands): Use mapc. (flyspell-debug-signal-word-checked): Simplify and fit in 80 cols. (flyspell-casechars-cache, flyspell-ispell-casechars-cache) (flyspell-not-casechars-cache, flyspell-ispell-not-casechars-cache): Remove unused vars. (flyspell-get-casechars, flyspell-get-not-casechars): Simplify; Don't bother removing a ] just to add it back. * lisp/textmodes/ispell.el (ispell-program-name): Use executable-find. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-18 15:16:23 +0000 +++ lisp/ChangeLog 2012-05-18 19:04:07 +0000 @@ -1,3 +1,17 @@ +2012-05-18 Stefan Monnier + + * textmodes/flyspell.el: Commenting style, plus code simplifications. + (flyspell-default-deplacement-commands): Don't spell check after + repeated window/frame switches (e.g. triggered by mouse-movement). + (flyspell-delay-commands, flyspell-deplacement-commands): Use mapc. + (flyspell-debug-signal-word-checked): Simplify and fit in 80 cols. + (flyspell-casechars-cache, flyspell-ispell-casechars-cache) + (flyspell-not-casechars-cache, flyspell-ispell-not-casechars-cache): + Remove unused vars. + (flyspell-get-casechars, flyspell-get-not-casechars): + Simplify; Don't bother removing a ] just to add it back. + * textmodes/ispell.el (ispell-program-name): Use executable-find. + 2012-05-18 Rüdiger Sonderfeld * calc/calc-lang.el (math-C-parse-bess, math-C-parse-fma): === modified file 'lisp/textmodes/flyspell.el' --- lisp/textmodes/flyspell.el 2012-05-18 07:36:09 +0000 +++ lisp/textmodes/flyspell.el 2012-05-18 19:04:07 +0000 @@ -143,10 +143,9 @@ :type '(repeat (symbol))) (defcustom flyspell-default-deplacement-commands - '(next-line - previous-line - scroll-up - scroll-down) + '(next-line previous-line + handle-switch-frame handle-select-window + scroll-up scroll-down) "The standard list of deplacement commands for Flyspell. See `flyspell-deplacement-commands'." :group 'flyspell @@ -631,7 +630,7 @@ (defun flyspell-delay-commands () "Install the standard set of Flyspell delayed commands." (mapc 'flyspell-delay-command flyspell-default-delayed-commands) - (mapcar 'flyspell-delay-command flyspell-delayed-commands)) + (mapc 'flyspell-delay-command flyspell-delayed-commands)) ;;*---------------------------------------------------------------------*/ ;;* flyspell-delay-command ... */ @@ -639,7 +638,7 @@ (defun flyspell-delay-command (command) "Set COMMAND to be delayed, for Flyspell. When flyspell `post-command-hook' is invoked because a delayed command -as been used the current word is not immediately checked. +has been used, the current word is not immediately checked. It will be checked only after `flyspell-delay' seconds." (interactive "SDelay Flyspell after Command: ") (put command 'flyspell-delayed t)) @@ -650,16 +649,15 @@ (defun flyspell-deplacement-commands () "Install the standard set of Flyspell deplacement commands." (mapc 'flyspell-deplacement-command flyspell-default-deplacement-commands) - (mapcar 'flyspell-deplacement-command flyspell-deplacement-commands)) + (mapc 'flyspell-deplacement-command flyspell-deplacement-commands)) ;;*---------------------------------------------------------------------*/ ;;* flyspell-deplacement-command ... */ ;;*---------------------------------------------------------------------*/ (defun flyspell-deplacement-command (command) "Set COMMAND that implement cursor movements, for Flyspell. -When flyspell `post-command-hook' is invoked because of a deplacement command -as been used the current word is checked only if the previous command was -not the very same deplacement command." +When flyspell `post-command-hook' is invoked because a deplacement command +has been used, the current word is not checked." (interactive "SDeplacement Flyspell after Command: ") (put command 'flyspell-deplacement t)) @@ -680,12 +678,12 @@ ;;* post command hook, we will check, if the word at this position */ ;;* has to be spell checked. */ ;;*---------------------------------------------------------------------*/ -(defvar flyspell-pre-buffer nil) -(defvar flyspell-pre-point nil) -(defvar flyspell-pre-column nil) +(defvar flyspell-pre-buffer nil "Buffer current before `this-command'.") +(defvar flyspell-pre-point nil "Point before running `this-command'") +(defvar flyspell-pre-column nil "Column before running `this-command'") (defvar flyspell-pre-pre-buffer nil) (defvar flyspell-pre-pre-point nil) -(make-variable-buffer-local 'flyspell-pre-point) +(make-variable-buffer-local 'flyspell-pre-point) ;Why?? --Stef ;;*---------------------------------------------------------------------*/ ;;* flyspell-previous-command ... */ @@ -709,18 +707,18 @@ ;;;###autoload (defun flyspell-mode-off () "Turn Flyspell mode off." - ;; we remove the hooks + ;; We remove the hooks. (remove-hook 'post-command-hook (function flyspell-post-command-hook) t) (remove-hook 'pre-command-hook (function flyspell-pre-command-hook) t) (remove-hook 'after-change-functions 'flyspell-after-change-function t) (remove-hook 'hack-local-variables-hook (function flyspell-hack-local-variables-hook) t) - ;; we remove all the flyspell highlightings + ;; We remove all the flyspell highlightings. (flyspell-delete-all-overlays) - ;; we have to erase pre cache variables + ;; We have to erase pre cache variables. (setq flyspell-pre-buffer nil) (setq flyspell-pre-point nil) - ;; we mark the mode as killed + ;; We mark the mode as killed. (setq flyspell-mode nil)) ;;*---------------------------------------------------------------------*/ @@ -732,9 +730,8 @@ before the current command." (let ((ispell-otherchars (ispell-get-otherchars))) (cond - ((or (not (numberp flyspell-pre-point)) - (not (bufferp flyspell-pre-buffer)) - (not (buffer-live-p flyspell-pre-buffer))) + ((not (and (numberp flyspell-pre-point) + (buffer-live-p flyspell-pre-buffer))) nil) ((and (eq flyspell-pre-pre-point flyspell-pre-point) (eq flyspell-pre-pre-buffer flyspell-pre-buffer)) @@ -794,21 +791,15 @@ ;;* flyspell-check-changed-word-p ... */ ;;*---------------------------------------------------------------------*/ (defun flyspell-check-changed-word-p (start stop) - "Return t when the changed word has to be checked. + "Return non-nil when the changed word has to be checked. The answer depends of several criteria. Mostly we check word delimiters." - (cond - ((and (memq (char-after start) '(?\n ? )) (> stop start)) - t) - ((not (numberp flyspell-pre-point)) - t) - ((and (>= flyspell-pre-point start) (<= flyspell-pre-point stop)) - nil) - ((let ((pos (point))) - (or (>= pos start) (<= pos stop) (= pos (1+ stop)))) - nil) - (t - t))) + (not (and (not (and (memq (char-after start) '(?\n ? )) (> stop start))) + (numberp flyspell-pre-point) + (or + (and (>= flyspell-pre-point start) (<= flyspell-pre-point stop)) + (let ((pos (point))) + (or (>= pos start) (<= pos stop) (= pos (1+ stop)))))))) ;;*---------------------------------------------------------------------*/ ;;* flyspell-check-word-p ... */ @@ -820,7 +811,7 @@ (let ((ispell-otherchars (ispell-get-otherchars))) (cond ((<= (- (point-max) 1) (point-min)) - ;; the buffer is not filled enough + ;; The buffer is not filled enough. nil) ((and (and (> (current-column) 0) (not (eq (current-column) flyspell-pre-column))) @@ -831,15 +822,15 @@ (not (looking-at ispell-otherchars))) (or flyspell-consider-dash-as-word-delimiter-flag (not (looking-at "-")))))) - ;; yes because we have reached or typed a word delimiter. + ;; Yes because we have reached or typed a word delimiter. t) ((symbolp this-command) (cond ((get this-command 'flyspell-deplacement) (not (eq flyspell-previous-command this-command))) ((get this-command 'flyspell-delayed) - ;; the current command is not delayed, that - ;; is that we must check the word now + ;; The current command is not delayed, that + ;; is that we must check the word now. (and (not unread-command-events) (sit-for flyspell-delay))) (t t))) @@ -877,53 +868,51 @@ (oldbuf (current-buffer)) (point (point))) (with-current-buffer (get-buffer-create "*flyspell-debug*") - (insert "WORD:\n") - (insert (format " this-cmd : %S\n" this-command)) - (insert (format " delayed : %S\n" (and (symbolp this-command) - (get this-command 'flyspell-delayed)))) - (insert (format " point : %S\n" point)) - (insert (format " prev-char : [%c] %S\n" - (with-current-buffer oldbuf - (let ((c (if (> (point) (point-min)) - (save-excursion - (backward-char 1) - (char-after (point))) - ? ))) - c)) - (with-current-buffer oldbuf - (let ((c (if (> (point) (point-min)) - (save-excursion - (backward-char 1) - (and (and (looking-at (flyspell-get-not-casechars)) 1) - (or (string= "" ispell-otherchars) - (not (looking-at ispell-otherchars))) - (and (or flyspell-consider-dash-as-word-delimiter-flag - (not (looking-at "\\-"))) 2)))))) - c)))) - (insert (format " because : %S\n" - (cond - ((not (and (symbolp this-command) - (get this-command 'flyspell-delayed))) - ;; the current command is not delayed, that - ;; is that we must check the word now - 'not-delayed) - ((with-current-buffer oldbuf - (let ((c (if (> (point) (point-min)) - (save-excursion - (backward-char 1) - (and (looking-at (flyspell-get-not-casechars)) - (or (string= "" ispell-otherchars) - (not (looking-at ispell-otherchars))) - (or flyspell-consider-dash-as-word-delimiter-flag - (not (looking-at "\\-")))))))) - c)) - ;; yes because we have reached or typed a word delimiter. - 'separator) - ((not (integerp flyspell-delay)) - ;; yes because the user had set up a no-delay configuration. - 'no-delay) - (t - 'sit-for)))) + (insert + "WORD:\n" + (format " this-cmd : %S\n" this-command) + (format " delayed : %S\n" (and (symbolp this-command) + (get this-command + 'flyspell-delayed))) + (format " point : %S\n" point) + (format " prev-char : [%c] %S\n" + (with-current-buffer oldbuf + (if (bobp) ?\ (char-before))) + (with-current-buffer oldbuf + (if (bobp) + nil + (save-excursion + (backward-char 1) + (and (looking-at (flyspell-get-not-casechars)) + (or (string= "" ispell-otherchars) + (not (looking-at ispell-otherchars))) + (or flyspell-consider-dash-as-word-delimiter-flag + (not (looking-at "\\-"))) + 2))))) + (format " because : %S\n" + (cond + ((not (and (symbolp this-command) + (get this-command 'flyspell-delayed))) + ;; The current command is not delayed, that + ;; is that we must check the word now. + 'not-delayed) + ((with-current-buffer oldbuf + (if (bobp) + nil + (save-excursion + (backward-char 1) + (and (looking-at (flyspell-get-not-casechars)) + (or (string= "" ispell-otherchars) + (not (looking-at ispell-otherchars))) + (or flyspell-consider-dash-as-word-delimiter-flag + (not (looking-at "\\-"))))))) + ;; Yes because we have reached or typed a word delimiter. + 'separator) + ((not (integerp flyspell-delay)) + ;; Yes because the user set up a no-delay configuration. + 'no-delay) + (t + 'sit-for)))) (goto-char (point-max))))) ;;*---------------------------------------------------------------------*/ @@ -946,7 +935,7 @@ ;;* 2- the word that used to be the current word before the */ ;;* THIS-COMMAND is checked if: */ ;;* a- the previous word is different from the current word */ -;;* b- the previous word as not just been checked by the */ +;;* b- the previous word has not just been checked by the */ ;;* previous FLYSPELL-POST-COMMAND-HOOK */ ;;* 3- the words changed by the THIS-COMMAND that are neither the */ ;;* previous word nor the current word */ @@ -973,7 +962,7 @@ ;; we remember which word we have just checked. ;; this will be used next time we will check a word ;; to compare the next current word with the word - ;; that as been registered in the pre-command-hook + ;; that has been registered in the pre-command-hook ;; that is these variables are used within the predicate ;; FLYSPELL-CHECK-PRE-WORD-P (setq flyspell-pre-pre-buffer (current-buffer)) @@ -1240,63 +1229,8 @@ (>= (match-end 0) b)))))) (flyspell-math-tex-command-p))) -;;*---------------------------------------------------------------------*/ -;;* flyspell-casechars-cache ... */ -;;*---------------------------------------------------------------------*/ -(defvar flyspell-casechars-cache nil) -(defvar flyspell-ispell-casechars-cache nil) -(make-variable-buffer-local 'flyspell-casechars-cache) -(make-variable-buffer-local 'flyspell-ispell-casechars-cache) - -;;*---------------------------------------------------------------------*/ -;;* flyspell-get-casechars ... */ -;;*---------------------------------------------------------------------*/ -(defun flyspell-get-casechars () - "This function builds a string that is the regexp of word chars. -In order to avoid one useless string construction, -this function changes the last char of the `ispell-casechars' string." - (let ((ispell-casechars (ispell-get-casechars))) - (cond - ((eq ispell-parser 'tex) - (setq flyspell-ispell-casechars-cache ispell-casechars) - (setq flyspell-casechars-cache - (concat (substring ispell-casechars - 0 - (- (length ispell-casechars) 1)) - "]")) - flyspell-casechars-cache) - (t - (setq flyspell-ispell-casechars-cache ispell-casechars) - (setq flyspell-casechars-cache ispell-casechars) - flyspell-casechars-cache)))) - -;;*---------------------------------------------------------------------*/ -;;* flyspell-get-not-casechars-cache ... */ -;;*---------------------------------------------------------------------*/ -(defvar flyspell-not-casechars-cache nil) -(defvar flyspell-ispell-not-casechars-cache nil) -(make-variable-buffer-local 'flyspell-not-casechars-cache) -(make-variable-buffer-local 'flyspell-ispell-not-casechars-cache) - -;;*---------------------------------------------------------------------*/ -;;* flyspell-get-not-casechars ... */ -;;*---------------------------------------------------------------------*/ -(defun flyspell-get-not-casechars () - "This function builds a string that is the regexp of non-word chars." - (let ((ispell-not-casechars (ispell-get-not-casechars))) - (cond - ((eq ispell-parser 'tex) - (setq flyspell-ispell-not-casechars-cache ispell-not-casechars) - (setq flyspell-not-casechars-cache - (concat (substring ispell-not-casechars - 0 - (- (length ispell-not-casechars) 1)) - "]")) - flyspell-not-casechars-cache) - (t - (setq flyspell-ispell-not-casechars-cache ispell-not-casechars) - (setq flyspell-not-casechars-cache ispell-not-casechars) - flyspell-not-casechars-cache)))) +(defalias 'flyspell-get-casechars 'ispell-get-casechars) +(defalias 'flyspell-get-not-casechars 'ispell-get-not-casechars) ;;*---------------------------------------------------------------------*/ ;;* flyspell-get-word ... */ @@ -1433,7 +1367,7 @@ (goto-char buffer-scan-pos) (let ((keep t)) ;; Iterate on string search until string is found as word, - ;; not as substring + ;; not as substring. (while keep (if (search-forward word flyspell-large-region-end t) @@ -1449,13 +1383,14 @@ (when (or ;; Size matches, we really found it. (= found-length misspell-length) - ;; Matches as part of a boundary-char separated word + ;; Matches as part of a boundary-char separated + ;; word. (member word (split-string found ispell-otherchars)) ;; Misspelling has higher length than - ;; what flyspell considers the - ;; word. Caused by boundary-chars - ;; mismatch. Validating seems safe. + ;; what flyspell considers the word. + ;; Caused by boundary-chars mismatch. + ;; Validating seems safe. (< found-length misspell-length) ;; ispell treats beginning of some TeX ;; commands as nroff control sequences @@ -1920,11 +1855,11 @@ (interactive) (let ((pos (point)) (old-max (point-max))) - ;; use the correct dictionary + ;; Use the correct dictionary. (flyspell-accept-buffer-local-defs) (if (and (eq flyspell-auto-correct-pos pos) (consp flyspell-auto-correct-region)) - ;; we have already been using the function at the same location + ;; We have already been using the function at the same location. (let* ((start (car flyspell-auto-correct-region)) (len (cdr flyspell-auto-correct-region))) (flyspell-unhighlight-at start) @@ -1946,7 +1881,7 @@ (flyspell-display-next-corrections flyspell-auto-correct-ring)) (flyspell-ajust-cursor-point pos (point) old-max) (setq flyspell-auto-correct-pos (point))) - ;; fetch the word to be checked + ;; Fetch the word to be checked. (let ((word (flyspell-get-word))) (if (consp word) (let ((start (car (cdr word))) @@ -1954,30 +1889,30 @@ (word (car word)) poss ispell-filter) (setq flyspell-auto-correct-word word) - ;; now check spelling of word. - (ispell-send-string "%\n") ;put in verbose mode + ;; Now check spelling of word.. + (ispell-send-string "%\n") ;Put in verbose mode. (ispell-send-string (concat "^" word "\n")) - ;; wait until ispell has processed word. + ;; Wait until ispell has processed word. (while (progn (accept-process-output ispell-process) (not (string= "" (car ispell-filter))))) - ;; Remove leading empty element + ;; Remove leading empty element. (setq ispell-filter (cdr ispell-filter)) - ;; ispell process should return something after word is sent. - ;; Tag word as valid (i.e., skip) otherwise + ;; Ispell process should return something after word is sent. + ;; Tag word as valid (i.e., skip) otherwise. (or ispell-filter (setq ispell-filter '(*))) (if (consp ispell-filter) (setq poss (ispell-parse-output (car ispell-filter)))) (cond ((or (eq poss t) (stringp poss)) - ;; don't correct word + ;; Don't correct word. t) ((null poss) - ;; ispell error + ;; Ispell error. (error "Ispell: error in Ispell process")) (t - ;; the word is incorrect, we have to propose a replacement + ;; The word is incorrect, we have to propose a replacement. (let ((replacements (if flyspell-sort-corrections (sort (car (cdr (cdr poss))) 'string<) (car (cdr (cdr poss)))))) === modified file 'lisp/textmodes/ispell.el' --- lisp/textmodes/ispell.el 2012-04-23 10:33:25 +0000 +++ lisp/textmodes/ispell.el 2012-05-18 19:04:07 +0000 @@ -349,9 +349,9 @@ :group 'ispell) (defcustom ispell-program-name - (or (locate-file "aspell" exec-path exec-suffixes 'file-executable-p) - (locate-file "ispell" exec-path exec-suffixes 'file-executable-p) - (locate-file "hunspell" exec-path exec-suffixes 'file-executable-p) + (or (executable-find "aspell") + (executable-find "ispell") + (executable-find "hunspell") "ispell") "Program invoked by \\[ispell-word] and \\[ispell-region] commands." :type 'string @@ -909,7 +909,7 @@ ;;;###autoload (defvar ispell-menu-map nil "Key map for ispell menu.") -;;; redo menu when loading ispell to get dictionary modifications +;; Redo menu when loading ispell to get dictionary modifications (setq ispell-menu-map nil) ;;;###autoload @@ -1175,7 +1175,7 @@ (push name dict-list))) dict-list)) -;;; define commands in menu in opposite order you want them to appear. +;; Define commands in menu in opposite order you want them to appear. ;;;###autoload (if ispell-menu-map-needed (progn @@ -1372,9 +1372,9 @@ (defvar ispell-pdict-modified-p nil "Non-nil means personal dictionary has modifications to be saved.") -;;; If you want to save the dictionary when quitting, must do so explicitly. -;;; When non-nil, the spell session is terminated. -;;; When numeric, contains cursor location in buffer, and cursor remains there. +;; If you want to save the dictionary when quitting, must do so explicitly. +;; When non-nil, the spell session is terminated. +;; When numeric, contains cursor location in buffer, and cursor remains there. (defvar ispell-quit nil) (defvar ispell-process-directory nil @@ -1874,10 +1874,10 @@ (list word start end)))) -;;; Global ispell-pdict-modified-p is set by ispell-command-loop and -;;; tracks changes in the dictionary. The global may either be -;;; a value or a list, whose value is the state of whether the -;;; dictionary needs to be saved. +;; Global ispell-pdict-modified-p is set by ispell-command-loop and +;; tracks changes in the dictionary. The global may either be +;; a value or a list, whose value is the state of whether the +;; dictionary needs to be saved. ;;;###autoload (defun ispell-pdict-save (&optional no-query force-save) @@ -2416,8 +2416,8 @@ (setq start end)))))) ; else move start to next line of input -;;; This function destroys the mark location if it is in the word being -;;; highlighted. +;; This function destroys the mark location if it is in the word being +;; highlighted. (defun ispell-highlight-spelling-error-generic (start end &optional highlight refresh) "Highlight the word from START to END with a kludge using `inverse-video'. @@ -2549,7 +2549,7 @@ (set-window-start (next-window) top)))) -;;; Should we add a compound word match return value? +;; Should we add a compound word match return value? (defun ispell-parse-output (output &optional accept-list shift) "Parse the OUTPUT string from Ispell process and return: 1: t for an exact match. @@ -2615,8 +2615,8 @@ (defun ispell-start-process () - "Start the ispell process, with support for no asynchronous processes. -Keeps argument list for future ispell invocations for no async support." + "Start the Ispell process, with support for no asynchronous processes. +Keeps argument list for future Ispell invocations for no async support." ;; Local dictionary becomes the global dictionary in use. (setq ispell-current-dictionary (or ispell-local-dictionary ispell-dictionary)) @@ -2792,11 +2792,11 @@ (if (not (and ispell-process (eq (ispell-process-status) 'run))) (or no-error - (error "There is no ispell process running!")) + (error "There is no Ispell process running!")) (if ispell-async-processp (delete-process ispell-process) - ;; synchronous processes - (ispell-send-string "\n") ; make sure side effects occurred. + ;; Synchronous processes. + (ispell-send-string "\n") ; Make sure side effects occurred. (kill-buffer ispell-output-buffer) (kill-buffer ispell-session-buffer) (setq ispell-output-buffer nil @@ -2805,8 +2805,8 @@ (message "Ispell process killed") nil)) -;;; ispell-change-dictionary is set in some people's hooks. Maybe this should -;;; call ispell-init-process rather than wait for a spell checking command? +;; ispell-change-dictionary is set in some people's hooks. Maybe this should +;; call ispell-init-process rather than wait for a spell checking command? ;;;###autoload (defun ispell-change-dictionary (dict &optional arg) @@ -3411,6 +3411,7 @@ sequence inside of a word. Standard ispell choices are then available." + ;; FIXME: completion-at-point-function. (interactive "P") (let ((cursor-location (point)) (case-fold-search-val case-fold-search) @@ -3943,7 +3944,7 @@ (ispell-send-string (concat "@" string "\n")))))))) -;;; returns optionally adjusted region-end-point. +;; Returns optionally adjusted region-end-point. ;; If comment-padright is defined, newcomment must be loaded. (declare-function comment-add "newcomment" (arg)) ------------------------------------------------------------ revno: 108295 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 14:40:19 -0400 message: * Makefile.in: Install only the relevant DOC file. This only affects in-tree builds where you have several versions emacs-24.1.50.1, .2, etc lying around. * Makefile.in: (install-arch-indep): Delete etc/DOC*. (install-doc): No more need to delete etc/DOC. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 17:56:08 +0000 +++ ChangeLog 2012-05-18 18:40:19 +0000 @@ -1,5 +1,9 @@ 2012-05-18 Glenn Morris + * Makefile.in: Install only the relevant DOC file. + (install-arch-indep): Delete etc/DOC*. + (install-doc): No more need to delete etc/DOC. + * Makefile.in (install-arch-indep): Split into several rules. (install-doc, innstall-info, install-man): New rules. === modified file 'Makefile.in' --- Makefile.in 2012-05-18 18:19:37 +0000 +++ Makefile.in 2012-05-18 18:40:19 +0000 @@ -499,16 +499,8 @@ done ### Install the files that are machine-independent. -### Most of them come straight from the distribution; -### the exception is the DOC-* files, which are copied -### from the build directory. - -## FIXME When we copy etc we should exclude DOC*, then copy only -## the relevant one. We cannot delete DOC* from the destination directory, -## because that may include pre-existing files from another emacs. - -## Note that the Makefiles in the etc directory are potentially useful -## in an installed Emacs, so should not be excluded. +### Most of them come straight from the distribution; the exception is +### the DOC file, which is copied from the build directory. ## We delete each directory in ${COPYDESTS} before we copy into it; ## that way, we can reinstall over directories that have been put in @@ -516,6 +508,14 @@ ## into RCS). In order to make this safe, we make sure that the ## source exists and is distinct from the destination. +## We delete etc/DOC* because there may be irrelevant DOC files from +## other builds in the source directory. This is ok because we just +## deleted the entire installed etc/ directory and recreated it. +## install-doc installs the relevant DOC. + +## Note that the Makefiles in the etc directory are potentially useful +## in an installed Emacs, so should not be excluded. + ## I'm not sure creating locallisppath here serves any useful purpose. ## If it has the default value, then the later write_subdir commands ## will ensure all these components exist. @@ -541,6 +541,7 @@ (cd $${dir}; tar -chf - . ) \ | (cd $${dest}; umask 022; \ tar -xvf - && cat > /dev/null) || exit 1; \ + [ "$${dir}" != "${srcdir}/etc" ] || rm -f $${dest}/DOC* ; \ find $${dest} -exec chown $${installuser} {} ';' ;\ for subdir in `find $${dest} -type d -print` ; do \ chmod a+rx $${subdir} ; \ @@ -576,13 +577,6 @@ ## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*. ## (Note "otherwise" is inaccurate since 2009-08-23.) -## Note that we copy DOC* and then delete DOC -## as a workaround for a bug in tar on Ultrix 4.2. -## Ultrix is no longer supported since 23.1, but the relevant line -## has another effect. We copy the entire etc/ directory from the -## source tree first. For an in-tree build, this will include -## any DOC* files there may be. So rm DOC does have an effect. - ## Note that install-arch-indep deletes and recreates the entire ## installed etc/ directory, so we need it to run before this does. install-doc: install-arch-indep @@ -599,10 +593,8 @@ fi; \ echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \ ${INSTALL_DATA} etc/$${docfile} $(DESTDIR)${docdir}/$${docfile}; \ - (cd $(DESTDIR)$(docdir); \ - $(set_installuser); \ - chown $${installuser} DOC*; \ - if test "`echo DOC-*`" != "DOC-*"; then rm -f DOC; fi); \ + $(set_installuser); \ + chown $${installuser} $(DESTDIR)${docdir}/$${docfile} || true ; \ else true; fi install-info: info ------------------------------------------------------------ revno: 108294 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 14:19:37 -0400 message: Fix up dependencies in previous change. install-arch-indep deletes the entire destination etc/ directory, so install-doc needs that to be run first. diff: === modified file 'Makefile.in' --- Makefile.in 2012-05-18 17:56:08 +0000 +++ Makefile.in 2012-05-18 18:19:37 +0000 @@ -443,7 +443,7 @@ .PHONY: install -install: all install-arch-indep install-arch-dep blessmail +install: all install-arch-indep install-doc install-arch-dep blessmail @true ## Ensure that $subdir contains a subdirs.el file. @@ -464,7 +464,7 @@ ### 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: install-arch-indep +install-arch-dep: install-arch-indep install-doc umask 022; ${MKDIR_P} $(DESTDIR)${bindir} (cd lib-src; \ $(MAKE) install $(MFLAGS) prefix=${prefix} \ @@ -523,7 +523,7 @@ ## Is it really Emacs's job to create those directories? ## Should we also be ensuring they contain subdirs.el files? ## It would be easy to do, just use write_subdir. -install-arch-indep: install-leim install-doc install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} +install-arch-indep: install-leim install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} umask 022 ; \ $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` -set ${COPYDESTS} ; \ @@ -582,7 +582,10 @@ ## has another effect. We copy the entire etc/ directory from the ## source tree first. For an in-tree build, this will include ## any DOC* files there may be. So rm DOC does have an effect. -install-doc: + +## Note that install-arch-indep deletes and recreates the entire +## installed etc/ directory, so we need it to run before this does. +install-doc: install-arch-indep -unset CDPATH; \ umask 022; ${MKDIR_P} $(DESTDIR)${docdir} ; \ if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \ ------------------------------------------------------------ revno: 108293 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 13:56:08 -0400 message: * Makefile.in (install-arch-indep): Split into several rules. (install-doc, innstall-info, install-man): New rules. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 17:49:24 +0000 +++ ChangeLog 2012-05-18 17:56:08 +0000 @@ -1,5 +1,8 @@ 2012-05-18 Glenn Morris + * Makefile.in (install-arch-indep): Split into several rules. + (install-doc, innstall-info, install-man): New rules. + * configure.in (mandir): May as well include it in the NS app bundle. * configure.in (INSTALL_ARCH_INDEP_EXTRA): New output variable. === modified file 'Makefile.in' --- Makefile.in 2012-05-18 17:40:13 +0000 +++ Makefile.in 2012-05-18 17:56:08 +0000 @@ -483,10 +483,9 @@ fi ## In the share directory, we are deleting: -## applications (with emacs.desktop) -## emacs (basically empty) +## applications (with emacs.desktop, also found in etc/) +## emacs (basically empty except for unneeded site-lisp directories) ## icons (duplicates etc/images/icons/hicolor) -## man (maybe we should be installing this one, like info) ## This is install-etc for everything except self-contained-ns builds. ## For them, it is empty. @@ -504,20 +503,10 @@ ### the exception is the DOC-* files, which are copied ### from the build directory. -## Note that we copy DOC* and then delete DOC -## as a workaround for a bug in tar on Ultrix 4.2. -## Ultrix is no longer supported since 23.1, but the relevant line -## has another effect. We copy the entire etc/ directory from the -## source tree first. For an in-tree build, this will include -## any DOC* files there may be. So rm DOC does have an effect. ## FIXME When we copy etc we should exclude DOC*, then copy only ## the relevant one. We cannot delete DOC* from the destination directory, ## because that may include pre-existing files from another emacs. -## We install only the relevant DOC file if possible -## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*. -## (Note "otherwise" is inaccurate since 2009-08-23.) - ## Note that the Makefiles in the etc directory are potentially useful ## in an installed Emacs, so should not be excluded. @@ -534,7 +523,7 @@ ## Is it really Emacs's job to create those directories? ## Should we also be ensuring they contain subdirs.el files? ## It would be easy to do, just use write_subdir. -install-arch-indep: info install-leim ${INSTALL_ARCH_INDEP_EXTRA} +install-arch-indep: install-leim install-doc install-info install-man ${INSTALL_ARCH_INDEP_EXTRA} umask 022 ; \ $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` -set ${COPYDESTS} ; \ @@ -574,6 +563,27 @@ subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \ ${write_subdir} || true -unset CDPATH; \ + if [ -n "${GZIP_PROG}" ]; \ + then \ + echo "Compressing *.el ..." ; \ + (cd $(DESTDIR)${lispdir}; for f in `find . -name "*.elc" -print`; do \ + ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ + done) \ + else true; fi + -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} + +## We install only the relevant DOC file if possible +## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*. +## (Note "otherwise" is inaccurate since 2009-08-23.) + +## Note that we copy DOC* and then delete DOC +## as a workaround for a bug in tar on Ultrix 4.2. +## Ultrix is no longer supported since 23.1, but the relevant line +## has another effect. We copy the entire etc/ directory from the +## source tree first. For an in-tree build, this will include +## any DOC* files there may be. So rm DOC does have an effect. +install-doc: + -unset CDPATH; \ umask 022; ${MKDIR_P} $(DESTDIR)${docdir} ; \ if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \ then \ @@ -591,14 +601,8 @@ chown $${installuser} DOC*; \ if test "`echo DOC-*`" != "DOC-*"; then rm -f DOC; fi); \ else true; fi - -unset CDPATH; \ - if [ -n "${GZIP_PROG}" ]; \ - then \ - echo "Compressing *.el ..." ; \ - (cd $(DESTDIR)${lispdir}; for f in `find . -name "*.elc" -print`; do \ - ${GZIP_PROG} -9n `echo $$f|sed 's/.elc$$/.el/'` ; \ - done) \ - else true; fi + +install-info: info umask 022; ${MKDIR_P} $(DESTDIR)${infodir} -unset CDPATH; \ thisdir=`/bin/pwd`; \ @@ -626,7 +630,8 @@ ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \ done); \ else true; fi - -chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} ${COPYDESTS} + +install-man: umask 022; ${MKDIR_P} $(DESTDIR)${man1dir} thisdir=`/bin/pwd`; \ cd ${mansrcdir}; \ ------------------------------------------------------------ revno: 108292 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 13:49:24 -0400 message: * configure.in (mandir): May as well include it in the NS app bundle. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 07:41:13 +0000 +++ ChangeLog 2012-05-18 17:49:24 +0000 @@ -1,5 +1,7 @@ 2012-05-18 Glenn Morris + * configure.in (mandir): May as well include it in the NS app bundle. + * configure.in (INSTALL_ARCH_INDEP_EXTRA): New output variable. * Makefile.in (INSTALL_ARCH_INDEP_EXTRA): New, set by configure. (install-arch-indep): Don't install-etc for self-contained ns builds. === modified file 'configure.in' --- configure.in 2012-05-18 07:41:13 +0000 +++ configure.in 2012-05-18 17:49:24 +0000 @@ -1599,6 +1599,7 @@ dnl FIXME maybe set datarootdir instead. dnl That would also get applications, icons, man. infodir="\${ns_appresdir}/info" + mandir="\${ns_appresdir}/man" lispdir="\${ns_appresdir}/lisp" LEIM_INSTALLDIR="\${ns_appresdir}/leim" INSTALL_ARCH_INDEP_EXTRA= ------------------------------------------------------------ revno: 108291 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 13:40:13 -0400 message: Minor fix for previous change. diff: === modified file 'Makefile.in' --- Makefile.in 2012-05-18 07:44:13 +0000 +++ Makefile.in 2012-05-18 17:40:13 +0000 @@ -574,6 +574,7 @@ subdir=$(DESTDIR)${datadir}/emacs/site-lisp ; \ ${write_subdir} || true -unset CDPATH; \ + umask 022; ${MKDIR_P} $(DESTDIR)${docdir} ; \ if [ `(cd ./etc; /bin/pwd)` != `(cd $(DESTDIR)${docdir}; /bin/pwd)` ]; \ then \ fullversion=`./src/emacs --version | sed -n '1 s/GNU Emacs *//p'`; \ @@ -584,7 +585,6 @@ docfile="DOC"; \ fi; \ echo "Copying etc/$${docfile} to $(DESTDIR)${docdir} ..." ; \ - umask 022; ${MKDIR_P} $(DESTDIR)${docdir} ; \ ${INSTALL_DATA} etc/$${docfile} $(DESTDIR)${docdir}/$${docfile}; \ (cd $(DESTDIR)$(docdir); \ $(set_installuser); \ ------------------------------------------------------------ revno: 108290 author: Rüdiger Sonderfeld committer: Jay Belanger branch nick: trunk timestamp: Fri 2012-05-18 10:16:23 -0500 message: calc/calc-lang.el (math-C-parse-bess, math-C-parse-fma): New functions. (math-function-table): Add support for more C functions. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-18 07:04:04 +0000 +++ lisp/ChangeLog 2012-05-18 15:16:23 +0000 @@ -1,3 +1,9 @@ +2012-05-18 Rüdiger Sonderfeld + + * calc/calc-lang.el (math-C-parse-bess, math-C-parse-fma): + New functions. + (math-function-table): Add support for more C functions. + 2012-05-18 Agustín Martín Domingo * flyspell.el (flyspell-check-pre-word-p, flyspell-check-word-p) === modified file 'lisp/calc/calc-lang.el' --- lisp/calc/calc-lang.el 2012-01-19 07:21:25 +0000 +++ lisp/calc/calc-lang.el 2012-05-18 15:16:23 +0000 @@ -133,8 +133,39 @@ ( asin . calcFunc-arcsin ) ( asinh . calcFunc-arcsinh ) ( atan . calcFunc-arctan ) - ( atan2 . calcFunc-arctan2 ) - ( atanh . calcFunc-arctanh ))) + ( atan2 . calcFunc-arctan2 ) + ( atanh . calcFunc-arctanh ) + ( fma . (math-C-parse-fma)) + ( fmax . calcFunc-max ) + ( j0 . (math-C-parse-bess)) + ( jn . calcFunc-besJ ) + ( j1 . (math-C-parse-bess)) + ( yn . calcFunc-besY ) + ( y0 . (math-C-parse-bess)) + ( y1 . (math-C-parse-bess)) + ( tgamma . calcFunc-gamma ))) + +(defun math-C-parse-bess (f val) + "Parse C's j0, j1, y0, y1 functions." + (let ((args (math-read-expr-list))) + (math-read-token) + (append + (cond ((eq val 'j0) '(calcFunc-besJ 0)) + ((eq val 'j1) '(calcFunc-besJ 1)) + ((eq val 'y0) '(calcFunc-besY 0)) + ((eq val 'y1) '(calcFunc-besY 1))) + args))) + +(defun math-C-parse-fma (f val) + "Parse C's fma function fma(x,y,z) => (x * y + z)." + (let ((args (math-read-expr-list))) + (math-read-token) + (list 'calcFunc-add + (list 'calcFunc-mul + (nth 0 args) + (nth 1 args)) + (nth 2 args)))) + (put 'c 'math-variable-table '( ( M_PI . var-pi ) ------------------------------------------------------------ revno: 108289 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 06:17:28 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2012-05-17 10:17:26 +0000 +++ autogen/Makefile.in 2012-05-18 10:17:28 +0000 @@ -476,6 +476,7 @@ INFO_EXT = @INFO_EXT@ INFO_OPTS = @INFO_OPTS@ INSTALL = @INSTALL@ +INSTALL_ARCH_INDEP_EXTRA = @INSTALL_ARCH_INDEP_EXTRA@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_INFO = @INSTALL_INFO@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ === modified file 'autogen/configure' --- autogen/configure 2012-05-17 10:17:26 +0000 +++ autogen/configure 2012-05-18 10:17:28 +0000 @@ -1165,6 +1165,7 @@ NS_OBJ ns_self_contained LEIM_INSTALLDIR +INSTALL_ARCH_INDEP_EXTRA TEMACS_LDFLAGS2 LD_SWITCH_X_SITE_RPATH XMKMF @@ -4482,12 +4483,12 @@ * ) unported=yes ;; esac opsys=darwin - # Use fink packages if available. - # FIXME? Is it really our business to decide this for the user? - if test -d /sw/include && test -d /sw/lib; then - GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" - NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} - fi + ## Use fink packages if available. + ## FIXME find a better way to do this: http://debbugs.gnu.org/11507 +## if test -d /sw/include && test -d /sw/lib; then +## GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" +## NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} +## fi ;; ## HP 9000 series 700 and 800, running HP/UX @@ -10109,6 +10110,7 @@ fi +INSTALL_ARCH_INDEP_EXTRA=install-etc LEIM_INSTALLDIR="\${install_prefix}/leim" ns_self_contained=no ns_frag=/dev/null @@ -10133,6 +10135,7 @@ infodir="\${ns_appresdir}/info" lispdir="\${ns_appresdir}/lisp" LEIM_INSTALLDIR="\${ns_appresdir}/leim" + INSTALL_ARCH_INDEP_EXTRA= fi ns_frag=$srcdir/src/ns.mk NS_OBJ="fontset.o fringe.o image.o" @@ -10147,6 +10150,7 @@ + case "${window_system}" in x11 ) HAVE_X_WINDOWS=yes ------------------------------------------------------------ revno: 108288 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2012-05-18 11:36:50 +0300 message: Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows. src/w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font. (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c src/w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken reference to image_cache->refcount. (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2012-05-17 00:03:49 +0000 +++ src/ChangeLog 2012-05-18 08:36:50 +0000 @@ -1,3 +1,14 @@ +2012-05-18 Eli Zaretskii + + Fix compilation with -DGLYPH_DEBUG=1 on MS-Windows. + + * w32term.c [GLYPH_DEBUG]: Add prototype for x_check_font. + (x_check_font) [GLYPH_DEBUG]: New function, copied from xterm.c + + * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: Fix broken + reference to image_cache->refcount. + (x_create_tip_frame): Fix broken use of FRAME_IMAGE_CACHE. + 2012-05-17 Juri Linkov * search.c (Fword_search_regexp, Fword_search_backward) === modified file 'src/w32fns.c' --- src/w32fns.c 2012-05-11 06:39:26 +0000 +++ src/w32fns.c 2012-05-18 08:36:50 +0000 @@ -4003,7 +4003,7 @@ #if GLYPH_DEBUG /* Check that reference counts are indeed correct. */ xassert (dpyinfo->reference_count == dpyinfo_refcount); - xassert (dpyinfo->image_cache->refcount == image_cache_refcount); + xassert (dpyinfo->terminal->image_cache->refcount == image_cache_refcount); #endif return Qt; } @@ -5236,7 +5236,7 @@ #if GLYPH_DEBUG image_cache_refcount = - FRAME_IMAGE_CACHE ? FRAME_IMAGE_CACHE (f)->refcount : 0; + FRAME_IMAGE_CACHE (f) ? FRAME_IMAGE_CACHE (f)->refcount : 0; dpyinfo_refcount = dpyinfo->reference_count; #endif /* GLYPH_DEBUG */ FRAME_KBOARD (f) = kb; === modified file 'src/w32term.c' --- src/w32term.c 2012-04-09 13:05:48 +0000 +++ src/w32term.c 2012-05-18 08:36:50 +0000 @@ -231,6 +231,10 @@ static void my_set_foreground_window (HWND); static void my_destroy_window (struct frame *, HWND); +#if GLYPH_DEBUG +static void x_check_font (struct frame *, struct font *); +#endif + static Lisp_Object Qvendor_specific_keysyms; @@ -5906,6 +5910,27 @@ /*********************************************************************** + Fonts + ***********************************************************************/ + +#if GLYPH_DEBUG + +/* Check that FONT is valid on frame F. It is if it can be found in F's + font table. */ + +static void +x_check_font (struct frame *f, struct font *font) +{ + xassert (font != NULL && ! NILP (font->props[FONT_TYPE_INDEX])); + if (font->driver->check) + xassert (font->driver->check (f, font) == 0); +} + +#endif /* GLYPH_DEBUG != 0 */ + + + +/*********************************************************************** Initialization ***********************************************************************/ ------------------------------------------------------------ revno: 108287 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 00:44:13 -0700 message: Reposition previous change diff: === modified file 'Makefile.in' --- Makefile.in 2012-05-18 07:41:13 +0000 +++ Makefile.in 2012-05-18 07:44:13 +0000 @@ -488,6 +488,10 @@ ## icons (duplicates etc/images/icons/hicolor) ## man (maybe we should be installing this one, like info) +## This is install-etc for everything except self-contained-ns builds. +## For them, it is empty. +INSTALL_ARCH_INDEP_EXTRA = @INSTALL_ARCH_INDEP_EXTRA@ + ## http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg01672.html ## Needs to be the user running install, so configure can't set it. set_installuser=for installuser in $${LOGNAME} $${USERNAME} $${USER} \ @@ -523,10 +527,6 @@ ## into RCS). In order to make this safe, we make sure that the ## source exists and is distinct from the destination. -## This is install-etc for everything except self-contained-ns builds. -## For them, it is empty. -INSTALL_ARCH_INDEP_EXTRA = @INSTALL_ARCH_INDEP_EXTRA@ - ## I'm not sure creating locallisppath here serves any useful purpose. ## If it has the default value, then the later write_subdir commands ## will ensure all these components exist. ------------------------------------------------------------ revno: 108286 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 00:41:13 -0700 message: Avoid installation followed by immediate deletion for self-contained ns * configure.in (INSTALL_ARCH_INDEP_EXTRA): New output variable. * Makefile.in (INSTALL_ARCH_INDEP_EXTRA): New, set by configure. (install-arch-indep): Don't install-etc for self-contained ns builds. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 07:14:45 +0000 +++ ChangeLog 2012-05-18 07:41:13 +0000 @@ -1,5 +1,9 @@ 2012-05-18 Glenn Morris + * configure.in (INSTALL_ARCH_INDEP_EXTRA): New output variable. + * Makefile.in (INSTALL_ARCH_INDEP_EXTRA): New, set by configure. + (install-arch-indep): Don't install-etc for self-contained ns builds. + * configure.in (GCC_TEST_OPTIONS, NON_GCC_TEST_OPTIONS) : No longer unconditonally add /sw directories. (Bug#2280) === modified file 'Makefile.in' --- Makefile.in 2012-05-18 07:34:10 +0000 +++ Makefile.in 2012-05-18 07:41:13 +0000 @@ -523,6 +523,10 @@ ## into RCS). In order to make this safe, we make sure that the ## source exists and is distinct from the destination. +## This is install-etc for everything except self-contained-ns builds. +## For them, it is empty. +INSTALL_ARCH_INDEP_EXTRA = @INSTALL_ARCH_INDEP_EXTRA@ + ## I'm not sure creating locallisppath here serves any useful purpose. ## If it has the default value, then the later write_subdir commands ## will ensure all these components exist. @@ -530,7 +534,7 @@ ## Is it really Emacs's job to create those directories? ## Should we also be ensuring they contain subdirs.el files? ## It would be easy to do, just use write_subdir. -install-arch-indep: info install-etc install-leim +install-arch-indep: info install-leim ${INSTALL_ARCH_INDEP_EXTRA} umask 022 ; \ $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` -set ${COPYDESTS} ; \ === modified file 'configure.in' --- configure.in 2012-05-18 07:14:45 +0000 +++ configure.in 2012-05-18 07:41:13 +0000 @@ -1573,6 +1573,7 @@ fi AC_SUBST(TEMACS_LDFLAGS2) +INSTALL_ARCH_INDEP_EXTRA=install-etc LEIM_INSTALLDIR="\${install_prefix}/leim" ns_self_contained=no ns_frag=/dev/null @@ -1600,6 +1601,7 @@ infodir="\${ns_appresdir}/info" lispdir="\${ns_appresdir}/lisp" LEIM_INSTALLDIR="\${ns_appresdir}/leim" + INSTALL_ARCH_INDEP_EXTRA= fi ns_frag=$srcdir/src/ns.mk NS_OBJ="fontset.o fringe.o image.o" @@ -1607,6 +1609,7 @@ fi CFLAGS="$tmp_CFLAGS" CPPFLAGS="$tmp_CPPFLAGS" +AC_SUBST(INSTALL_ARCH_INDEP_EXTRA) AC_SUBST(LEIM_INSTALLDIR) AC_SUBST(ns_self_contained) AC_SUBST(NS_OBJ) ------------------------------------------------------------ revno: 108285 committer: Agustin Martin branch nick: trunk timestamp: Fri 2012-05-18 09:36:09 +0200 message: textmodes/flyspell.el: Minor change over last r108281 change. Use ispell-otherchars variable. Use ispell-otherchars variable rather than (ispell-get-otherchars). diff: === modified file 'lisp/textmodes/flyspell.el' --- lisp/textmodes/flyspell.el 2012-05-18 07:04:04 +0000 +++ lisp/textmodes/flyspell.el 2012-05-18 07:36:09 +0000 @@ -828,7 +828,7 @@ (backward-char 1) (and (looking-at (flyspell-get-not-casechars)) (or (string= "" ispell-otherchars) - (not (looking-at (ispell-get-otherchars)))) + (not (looking-at ispell-otherchars))) (or flyspell-consider-dash-as-word-delimiter-flag (not (looking-at "-")))))) ;; yes because we have reached or typed a word delimiter. @@ -896,7 +896,7 @@ (backward-char 1) (and (and (looking-at (flyspell-get-not-casechars)) 1) (or (string= "" ispell-otherchars) - (not (looking-at (ispell-get-otherchars)))) + (not (looking-at ispell-otherchars))) (and (or flyspell-consider-dash-as-word-delimiter-flag (not (looking-at "\\-"))) 2)))))) c)))) @@ -913,7 +913,7 @@ (backward-char 1) (and (looking-at (flyspell-get-not-casechars)) (or (string= "" ispell-otherchars) - (not (looking-at (ispell-get-otherchars)))) + (not (looking-at ispell-otherchars))) (or flyspell-consider-dash-as-word-delimiter-flag (not (looking-at "\\-")))))))) c)) ------------------------------------------------------------ revno: 108284 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 00:34:10 -0700 message: * Makefile.in (install-arch-indep): Minor fix for earlier change. diff: === modified file 'Makefile.in' --- Makefile.in 2012-05-18 07:06:23 +0000 +++ Makefile.in 2012-05-18 07:34:10 +0000 @@ -539,7 +539,8 @@ for dir in ${COPYDIR} ; do \ [ -d $${dir} ] || exit 1 ; \ dest=$$1 ; shift ; \ - [ `(cd $${dest} && /bin/pwd)` = `(cd $${dir} && /bin/pwd)` ] && \ + [ -d $${dest} ] && \ + [ `(cd $${dest} && /bin/pwd)` = `(cd $${dir} && /bin/pwd)` ] && \ continue ; \ rm -rf $${dest} ; \ umask 022; ${MKDIR_P} $${dest} ; \ ------------------------------------------------------------ revno: 108283 fixes bug(s): http://debbugs.gnu.org/2280 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 00:14:45 -0700 message: Stop adding Fink directories to search path on OS X * configure.in (GCC_TEST_OPTIONS, NON_GCC_TEST_OPTIONS) : No longer unconditonally add /sw directories. * etc/NEWS: Mention this. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 07:00:09 +0000 +++ ChangeLog 2012-05-18 07:14:45 +0000 @@ -1,5 +1,8 @@ 2012-05-18 Glenn Morris + * configure.in (GCC_TEST_OPTIONS, NON_GCC_TEST_OPTIONS) : + No longer unconditonally add /sw directories. (Bug#2280) + * Makefile.in (install-arch-dep): Depend on install-arch-indep. (install-arch-indep): Depend on install-leim. (install): Remove explicit install-leim dependence. === modified file 'configure.in' --- configure.in 2012-05-17 06:07:26 +0000 +++ configure.in 2012-05-18 07:14:45 +0000 @@ -492,12 +492,12 @@ * ) unported=yes ;; esac opsys=darwin - # Use fink packages if available. - # FIXME? Is it really our business to decide this for the user? - if test -d /sw/include && test -d /sw/lib; then - GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" - NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} - fi + ## Use fink packages if available. + ## FIXME find a better way to do this: http://debbugs.gnu.org/11507 +## if test -d /sw/include && test -d /sw/lib; then +## GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib" +## NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS} +## fi ;; ## HP 9000 series 700 and 800, running HP/UX === modified file 'etc/NEWS' --- etc/NEWS 2012-05-15 17:38:41 +0000 +++ etc/NEWS 2012-05-18 07:14:45 +0000 @@ -37,6 +37,10 @@ /usr/pkg/lib to the linker search path. You must add them yourself if you want them. +--- +** On Mac OS X, configure no longer automatically adds the Fink /sw +directories to the search path. You must add them yourself if you want them. + * Startup Changes in Emacs 24.2 ------------------------------------------------------------ revno: 108282 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 00:06:23 -0700 message: Remove some old comments diff: === modified file 'Makefile.in' --- Makefile.in 2012-05-18 07:00:09 +0000 +++ Makefile.in 2012-05-18 07:06:23 +0000 @@ -441,9 +441,6 @@ ## don't have to duplicate the list of utilities to install in ## this Makefile as well. -## On AIX, use tar xBf. -## On Xenix, use tar xpf. - .PHONY: install install: all install-arch-indep install-arch-dep blessmail @@ -517,9 +514,6 @@ ## (ie DOC-${version}.buildnumber), otherwise DOC-${version}*. ## (Note "otherwise" is inaccurate since 2009-08-23.) -## If people complain about the h flag in tar command, take that out. -## That flag is also used in leim/Makefile.in - ## Note that the Makefiles in the etc directory are potentially useful ## in an installed Emacs, so should not be excluded. ------------------------------------------------------------ revno: 108281 committer: Agustin Martin branch nick: trunk timestamp: Fri 2012-05-18 09:04:04 +0200 message: textmodes/flyspell.el: Protect delay handling for otherchars against empty otherchars. (flyspell-check-pre-word-p, flyspell-check-word-p,flyspell-debug-signal-word-checked) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-18 01:46:20 +0000 +++ lisp/ChangeLog 2012-05-18 07:04:04 +0000 @@ -1,3 +1,9 @@ +2012-05-18 Agustín Martín Domingo + + * flyspell.el (flyspell-check-pre-word-p, flyspell-check-word-p) + (flyspell-debug-signal-word-checked): Protect delay handling for + otherchars against empty otherchars. + 2012-05-18 Stefan Monnier * emacs-lisp/lisp-mode.el (doc-string-elt): Move those properties to === modified file 'lisp/textmodes/flyspell.el' --- lisp/textmodes/flyspell.el 2012-05-16 08:35:11 +0000 +++ lisp/textmodes/flyspell.el 2012-05-18 07:04:04 +0000 @@ -730,45 +730,50 @@ "Return non-nil if we should check the word before point. More precisely, it applies to the word that was before point before the current command." - (cond - ((or (not (numberp flyspell-pre-point)) - (not (bufferp flyspell-pre-buffer)) - (not (buffer-live-p flyspell-pre-buffer))) - nil) - ((and (eq flyspell-pre-pre-point flyspell-pre-point) - (eq flyspell-pre-pre-buffer flyspell-pre-buffer)) - nil) - ((or (and (= flyspell-pre-point (- (point) 1)) - (or (eq (char-syntax (char-after flyspell-pre-point)) ?w) - (string-match-p (ispell-get-otherchars) - (buffer-substring-no-properties - flyspell-pre-point (1+ flyspell-pre-point))))) - (= flyspell-pre-point (point)) - (= flyspell-pre-point (+ (point) 1))) - nil) - ((and (symbolp this-command) - (not executing-kbd-macro) - (or (get this-command 'flyspell-delayed) - (and (get this-command 'flyspell-deplacement) - (eq flyspell-previous-command this-command))) - (or (= (current-column) 0) - (= (current-column) flyspell-pre-column) - ;; If other post-command-hooks change the buffer, - ;; flyspell-pre-point can lie past eob (bug#468). - (null (char-after flyspell-pre-point)) - (or (eq (char-syntax (char-after flyspell-pre-point)) ?w) - (string-match-p (ispell-get-otherchars) - (buffer-substring-no-properties - flyspell-pre-point (1+ flyspell-pre-point)))))) - nil) - ((not (eq (current-buffer) flyspell-pre-buffer)) - t) - ((not (and (numberp flyspell-word-cache-start) - (numberp flyspell-word-cache-end))) - t) - (t - (or (< flyspell-pre-point flyspell-word-cache-start) - (> flyspell-pre-point flyspell-word-cache-end))))) + (let ((ispell-otherchars (ispell-get-otherchars))) + (cond + ((or (not (numberp flyspell-pre-point)) + (not (bufferp flyspell-pre-buffer)) + (not (buffer-live-p flyspell-pre-buffer))) + nil) + ((and (eq flyspell-pre-pre-point flyspell-pre-point) + (eq flyspell-pre-pre-buffer flyspell-pre-buffer)) + nil) + ((or (and (= flyspell-pre-point (- (point) 1)) + (or (eq (char-syntax (char-after flyspell-pre-point)) ?w) + (and (not (string= "" ispell-otherchars)) + (string-match-p + ispell-otherchars + (buffer-substring-no-properties + flyspell-pre-point (1+ flyspell-pre-point)))))) + (= flyspell-pre-point (point)) + (= flyspell-pre-point (+ (point) 1))) + nil) + ((and (symbolp this-command) + (not executing-kbd-macro) + (or (get this-command 'flyspell-delayed) + (and (get this-command 'flyspell-deplacement) + (eq flyspell-previous-command this-command))) + (or (= (current-column) 0) + (= (current-column) flyspell-pre-column) + ;; If other post-command-hooks change the buffer, + ;; flyspell-pre-point can lie past eob (bug#468). + (null (char-after flyspell-pre-point)) + (or (eq (char-syntax (char-after flyspell-pre-point)) ?w) + (and (not (string= "" ispell-otherchars)) + (string-match-p + ispell-otherchars + (buffer-substring-no-properties + flyspell-pre-point (1+ flyspell-pre-point))))))) + nil) + ((not (eq (current-buffer) flyspell-pre-buffer)) + t) + ((not (and (numberp flyspell-word-cache-start) + (numberp flyspell-word-cache-end))) + t) + (t + (or (< flyspell-pre-point flyspell-word-cache-start) + (> flyspell-pre-point flyspell-word-cache-end)))))) ;;*---------------------------------------------------------------------*/ ;;* The flyspell after-change-hook, store the change position. In */ @@ -812,31 +817,33 @@ "Return t when the word at `point' has to be checked. The answer depends of several criteria. Mostly we check word delimiters." - (cond - ((<= (- (point-max) 1) (point-min)) - ;; the buffer is not filled enough - nil) - ((and (and (> (current-column) 0) - (not (eq (current-column) flyspell-pre-column))) - (save-excursion - (backward-char 1) - (and (looking-at (flyspell-get-not-casechars)) - (not (looking-at (ispell-get-otherchars))) - (or flyspell-consider-dash-as-word-delimiter-flag - (not (looking-at "-")))))) - ;; yes because we have reached or typed a word delimiter. - t) - ((symbolp this-command) + (let ((ispell-otherchars (ispell-get-otherchars))) (cond - ((get this-command 'flyspell-deplacement) - (not (eq flyspell-previous-command this-command))) - ((get this-command 'flyspell-delayed) - ;; the current command is not delayed, that - ;; is that we must check the word now - (and (not unread-command-events) - (sit-for flyspell-delay))) - (t t))) - (t t))) + ((<= (- (point-max) 1) (point-min)) + ;; the buffer is not filled enough + nil) + ((and (and (> (current-column) 0) + (not (eq (current-column) flyspell-pre-column))) + (save-excursion + (backward-char 1) + (and (looking-at (flyspell-get-not-casechars)) + (or (string= "" ispell-otherchars) + (not (looking-at (ispell-get-otherchars)))) + (or flyspell-consider-dash-as-word-delimiter-flag + (not (looking-at "-")))))) + ;; yes because we have reached or typed a word delimiter. + t) + ((symbolp this-command) + (cond + ((get this-command 'flyspell-deplacement) + (not (eq flyspell-previous-command this-command))) + ((get this-command 'flyspell-delayed) + ;; the current command is not delayed, that + ;; is that we must check the word now + (and (not unread-command-events) + (sit-for flyspell-delay))) + (t t))) + (t t)))) ;;*---------------------------------------------------------------------*/ ;;* flyspell-debug-signal-no-check ... */ @@ -866,7 +873,8 @@ ;;*---------------------------------------------------------------------*/ (defun flyspell-debug-signal-word-checked () (setq debug-on-error t) - (let ((oldbuf (current-buffer)) + (let ((ispell-otherchars (ispell-get-otherchars)) + (oldbuf (current-buffer)) (point (point))) (with-current-buffer (get-buffer-create "*flyspell-debug*") (insert "WORD:\n") @@ -887,7 +895,8 @@ (save-excursion (backward-char 1) (and (and (looking-at (flyspell-get-not-casechars)) 1) - (not (looking-at (ispell-get-otherchars))) + (or (string= "" ispell-otherchars) + (not (looking-at (ispell-get-otherchars)))) (and (or flyspell-consider-dash-as-word-delimiter-flag (not (looking-at "\\-"))) 2)))))) c)))) @@ -903,7 +912,8 @@ (save-excursion (backward-char 1) (and (looking-at (flyspell-get-not-casechars)) - (not (looking-at (ispell-get-otherchars))) + (or (string= "" ispell-otherchars) + (not (looking-at (ispell-get-otherchars)))) (or flyspell-consider-dash-as-word-delimiter-flag (not (looking-at "\\-")))))))) c)) ------------------------------------------------------------ revno: 108280 committer: Glenn Morris branch nick: trunk timestamp: Fri 2012-05-18 00:00:09 -0700 message: Tweak dependencies in top-level install rules * Makefile.in (install-arch-dep): Depend on install-arch-indep. (install-arch-indep): Depend on install-leim. (install): Remove explicit install-leim dependence. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 06:54:28 +0000 +++ ChangeLog 2012-05-18 07:00:09 +0000 @@ -1,5 +1,9 @@ 2012-05-18 Glenn Morris + * Makefile.in (install-arch-dep): Depend on install-arch-indep. + (install-arch-indep): Depend on install-leim. + (install): Remove explicit install-leim dependence. + * Makefile.in (install-arch-indep): Move last element of mkdir rule here. (mkdir): Remove rule. === modified file 'Makefile.in' --- Makefile.in 2012-05-18 06:54:28 +0000 +++ Makefile.in 2012-05-18 07:00:09 +0000 @@ -446,9 +446,7 @@ .PHONY: install -### We do install-arch-indep first because -### the executable needs the Lisp files and DOC file to work properly. -install: all install-arch-indep install-arch-dep install-leim blessmail +install: all install-arch-indep install-arch-dep blessmail @true ## Ensure that $subdir contains a subdirs.el file. @@ -467,11 +465,9 @@ fi ### Install the executables that were compiled specifically for this machine. -### It would be nice to do something for a parallel make -### to ensure that install-arch-indep finishes before this starts. -### (TODO Why would it be nice? Why not just make this depend on -### install-arch-indep then?) -install-arch-dep: +### We do install-arch-indep first because the executable needs the +### Lisp files and DOC file to work properly. +install-arch-dep: install-arch-indep umask 022; ${MKDIR_P} $(DESTDIR)${bindir} (cd lib-src; \ $(MAKE) install $(MFLAGS) prefix=${prefix} \ @@ -540,7 +536,7 @@ ## Is it really Emacs's job to create those directories? ## Should we also be ensuring they contain subdirs.el files? ## It would be easy to do, just use write_subdir. -install-arch-indep: info install-etc +install-arch-indep: info install-etc install-leim umask 022 ; \ $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` -set ${COPYDESTS} ; \ ------------------------------------------------------------ revno: 108279 committer: Glenn Morris branch nick: trunk timestamp: Thu 2012-05-17 23:54:28 -0700 message: Remove the mkdir rule from the top-level Makefile * Makefile.in (install-arch-indep): Move last element of mkdir rule here. (mkdir): Remove rule. diff: === modified file 'ChangeLog' --- ChangeLog 2012-05-18 06:48:14 +0000 +++ ChangeLog 2012-05-18 06:54:28 +0000 @@ -1,5 +1,9 @@ 2012-05-18 Glenn Morris + * Makefile.in (install-arch-indep): + Move last element of mkdir rule here. + (mkdir): Remove rule. + * Makefile.in (install-arch-indep): Remove unneeded chmods. INSTALL_DATA does this for us. === modified file 'Makefile.in' --- Makefile.in 2012-05-18 06:48:14 +0000 +++ Makefile.in 2012-05-18 06:54:28 +0000 @@ -444,7 +444,7 @@ ## On AIX, use tar xBf. ## On Xenix, use tar xpf. -.PHONY: install mkdir +.PHONY: install ### We do install-arch-indep first because ### the executable needs the Lisp files and DOC file to work properly. @@ -532,7 +532,17 @@ ## place with their files read-only (perhaps because they are checked ## into RCS). In order to make this safe, we make sure that the ## source exists and is distinct from the destination. -install-arch-indep: mkdir info install-etc + +## I'm not sure creating locallisppath here serves any useful purpose. +## If it has the default value, then the later write_subdir commands +## will ensure all these components exist. +## This will only do something if locallisppath has a non-standard value. +## Is it really Emacs's job to create those directories? +## Should we also be ensuring they contain subdirs.el files? +## It would be easy to do, just use write_subdir. +install-arch-indep: info install-etc + umask 022 ; \ + $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` -set ${COPYDESTS} ; \ unset CDPATH; \ $(set_installuser); \ @@ -663,17 +673,6 @@ install-strip: $(MAKE) $(MFLAGS) INSTALL_STRIP=-s install -## Note sure this serves any useful purpose. -## If locallisppath has the default value, then the write_subdir commands -## in install-arch-indep will create all these components. -## This will only do something if locallisppath has a non-standard value. -## Is it really Emacs job to create those directories? -## Should we also be ensuring they contain subdirs.el files? -## It would be easy to do. -mkdir: FRC - umask 022 ; \ - $(MKDIR_P) $(DESTDIR)`echo ${locallisppath} | sed 's,:, $(DESTDIR),g'` - ### Delete all the installed files that the `install' target would ### create (but not the noninstalled files such as `make all' would create). ###