commit 46ea93792da1db916305d50272c6465a6dde7c25 (HEAD, refs/remotes/origin/master) Author: Glenn Morris Date: Sat May 16 17:52:27 2015 -0700 * src/lisp.mk: Remove from repository and generate at build-time. * src/Makefile.in (lisp.mk): New rule to generate from loadup.el. (shortlisp_filter): New variable. (emacs$(EXEEXT), $(etc)/DOC): Depend on lisp.mk. (distclean): Remove lisp.mk. * Makefile.in ($(MAKEFILE_NAME)): No longer depend on src/lisp.mk. * lisp/loadup.el: Tweak layout to make it easier to parse. * make-dist: Do not distribute src/lisp.mk. diff --git a/.gitignore b/.gitignore index 4e526be..618249c 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,7 @@ lib/unistd.h lib/warn-on-use.h src/buildobj.h src/globals.h +src/lisp.mk # Lisp-level sources built by 'make'. *cus-load.el diff --git a/Makefile.in b/Makefile.in index a02f074..eec6d31 100644 --- a/Makefile.in +++ b/Makefile.in @@ -413,7 +413,7 @@ blessmail: Makefile src # etc. to be built without running into similar recursion problems. MAKEFILE_NAME = Makefile $(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \ - $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN) $(srcdir)/src/lisp.mk + $(srcdir)/Makefile.in $(SUBDIR_MAKEFILES_IN) MAKE='$(MAKE)' ./config.status # Don't erase these files if make is interrupted while refreshing them. diff --git a/lisp/loadup.el b/lisp/loadup.el index b69005f..84fa327 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -26,20 +26,24 @@ ;; This is loaded into a bare Emacs to make a dumpable one. -;; If you add/remove Lisp files to be loaded here, consider the -;; following issues: +;; If you add a file to be loaded here, keep the following points in mind: -;; i) Any file loaded on any platform should appear in src/lisp.mk. -;; Use the .el or .elc version as appropriate. +;; i) If the file is no-byte-compile, explicitly load the .el version. +;; Such files should (where possible) obey the doc-string conventions +;; expected by make-docfile. They should also be added to the +;; uncompiled[] list in make-docfile.c. +;; ii) If the file is dumped with Emacs (on any platform), put the +;; load statement at the start of a line (leading whitespace is ok). + +;; iii) If the file is _not_ dumped with Emacs, make sure the load +;; statement is _not_ at the start of a line. See pcase for an example. + +;; These rules are so that src/Makefile can construct lisp.mk automatically. ;; This ensures both that the Lisp files are compiled (if necessary) ;; before the emacs executable is dumped, and that they are passed to ;; make-docfile. (Any that are not processed for DOC will not have -;; doc strings in the dumped Emacs.) Because of this: - -;; ii) If the file is loaded uncompiled, it should (where possible) -;; obey the doc-string conventions expected by make-docfile. It -;; should also be added to the uncompiled[] list in make-docfile.c. +;; doc strings in the dumped Emacs.) ;;; Code: @@ -117,8 +121,7 @@ ;; Since loaddefs is not yet loaded, macroexp's uses of pcase will simply ;; fail until pcase is explicitly loaded. This also means that we have to ;; disable eager macro-expansion while loading pcase. - (let ((macroexp--pending-eager-loads '(skip))) - (load "emacs-lisp/pcase")) + (let ((macroexp--pending-eager-loads '(skip))) (load "emacs-lisp/pcase")) ;; Re-load macroexp so as to eagerly macro-expand its uses of pcase. (let ((max-lisp-eval-depth (* 2 max-lisp-eval-depth))) (load "emacs-lisp/macroexp"))) @@ -139,9 +142,7 @@ ;; should be updated by overwriting it with an up-to-date copy of ;; loaddefs.el that is uncorrupted by local changes. ;; autogen/update_autogen can be used to periodically update ldefs-boot. -(condition-case nil - ;; Don't get confused if someone compiled this by mistake. - (load "loaddefs.el") +(condition-case nil (load "loaddefs.el") ;; In case loaddefs hasn't been generated yet. (file-error (load "ldefs-boot.el"))) @@ -178,8 +179,8 @@ (load "language/romanian") (load "language/greek") (load "language/hebrew") -(load "international/cp51932") -(load "international/eucjp-ms") +(load "international/cp51932.el") +(load "international/eucjp-ms.el") (load "language/japanese") (load "language/korean") (load "language/lao") @@ -289,7 +290,8 @@ (load "electric") (load "emacs-lisp/eldoc") (load "cus-start") ;Late to reduce customize-rogue (needs loaddefs.el anyway) -(if (not (eq system-type 'ms-dos)) (load "tooltip")) +(if (not (eq system-type 'ms-dos)) + (load "tooltip")) ;; This file doesn't exist when building a development version of Emacs ;; from the repository. It is generated just after temacs is built. diff --git a/make-dist b/make-dist index bc5874e..6bf01ff 100755 --- a/make-dist +++ b/make-dist @@ -375,7 +375,7 @@ echo "Making links to 'src'" echo " (It is ok if ln fails in some cases.)" ln [a-zA-Z]*.[chm] ../${tempdir}/src ln [a-zA-Z]*.in ../${tempdir}/src - ln [a-zA-Z]*.mk ../${tempdir}/src + ln deps.mk ../${tempdir}/src ln README ChangeLog.*[0-9] ../${tempdir}/src ln makefile.w32-in ../${tempdir}/src ln .gdbinit .dbxinit ../${tempdir}/src diff --git a/src/Makefile.in b/src/Makefile.in index f6fa03a..57417fc 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -418,8 +418,36 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) $(RALLOC_OBJ) \ FIRSTFILE_OBJ=@FIRSTFILE_OBJ@ ALLOBJS = $(FIRSTFILE_OBJ) $(VMLIMIT_OBJ) $(obj) $(otherobj) -include $(srcdir)/lisp.mk - +## This is the list of all Lisp files that might be loaded into the +## dumped Emacs. Some of them are not loaded on all platforms, but +## the DOC file on every platform uses them (because the DOC file is +## supposed to be platform-independent). +## Note that this list should not include lisp files which might not +## be present, like site-load.el and site-init.el; this makefile +## expects them all to be either present or buildable. +## +## To generate this list from loadup.el, we can either: +## 1) Extract everything matching (load "..."), in which case +## we need to add charprop.el by hand; or +## 2) Extract everything matching (load "...", in which case +## we need to remove leim-list, site-init, and site-load by hand. +## There's not much to choose between these two approaches, +## but the second one seems like it could be more future-proof. +shortlisp = +lisp.mk: $(lispsource)/loadup.el + @rm -f $@ + ${AM_V_GEN}( echo "shortlisp = \\"; \ + sed -n 's/^[ \t]*(load "\([^"]*\)".*/\1/p' $< | \ + sed -e 's/$$/.elc \\/' -e 's/\.el\.elc/.el/'; \ + echo "" ) > $@ + +-include lisp.mk +shortlisp_filter = leim/leim-list.el site-load.elc site-init.elc +shortlisp := $(filter-out ${shortlisp_filter},${shortlisp}) +## Place loaddefs.el first, so it gets generated first, since it is on +## the critical path (relevant in parallel compilations). +## We don't really need to sort, but may as well use it to remove duplicates. +shortlisp := loaddefs.el loadup.el $(sort ${shortlisp}) lisp = $(addprefix ${lispsource}/,${shortlisp}) ## Construct full set of libraries to be linked. @@ -454,7 +482,7 @@ $(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \ ## since not all pieces are used on all platforms. But DOC depends ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here. emacs$(EXEEXT): temacs$(EXEEXT) \ - $(etc)/DOC $(lisp) $(leimdir)/leim-list.el \ + lisp.mk $(etc)/DOC $(lisp) $(leimdir)/leim-list.el \ $(lispsource)/international/charprop.el ifeq ($(CANNOT_DUMP),yes) ln -f temacs$(EXEEXT) $@ @@ -475,7 +503,7 @@ endif ## for the first time, this prevents any variation between configurations ## in the contents of the DOC file. ## -$(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) +$(etc)/DOC: lisp.mk $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) $(AM_V_GEN)$(MKDIR_P) $(etc) -$(AM_V_at)rm -f $(etc)/DOC $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \ @@ -581,7 +609,7 @@ bootstrap-clean: clean fi distclean: bootstrap-clean - rm -f Makefile + rm -f Makefile lisp.mk maintainer-clean: distclean rm -f TAGS diff --git a/src/lisp.mk b/src/lisp.mk deleted file mode 100644 index 32882d1..0000000 --- a/src/lisp.mk +++ /dev/null @@ -1,168 +0,0 @@ -### lisp.mk --- src/Makefile fragment for GNU Emacs - -## Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2015 Free Software -## Foundation, Inc. - -## This file is part of GNU Emacs. - -## GNU Emacs is free software: you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation, either version 3 of the License, or -## (at your option) any later version. - -## GNU Emacs is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with GNU Emacs. If not, see . - -### Commentary: - -## This is the list of all Lisp files that might be loaded into the -## dumped Emacs. Some of them are not loaded on all platforms, but -## the DOC file on every platform uses them (because the DOC file is -## supposed to be platform-independent). -## It is arranged like this because it is easier to generate it -## semi-mechanically from loadup.el this way. -## Eg something like: -## sed -e 's/"[ )].*//' -n -e '/(load "/ s/.*load "//p' loadup.el | \ -## grep -vE 'site-|ldefs-boot' -## minus any duplicates. -## Note that you can generally just add a ".elc" extension to every file -## that does not have an explicit .el extension, but beware of any -## no-byte-compile ones. - -## Note that this list should not include lisp files which might not -## be present, like site-load.el and site-init.el; this makefile -## expects them all to be either present or buildable. - -## Place loaddefs.el first, so it gets generated first, since it is on -## the critical path (relevant in parallel compilations). - -### Code: - -shortlisp = \ - loaddefs.el \ - loadup.el \ - emacs-lisp/byte-run.elc \ - emacs-lisp/backquote.elc \ - subr.elc \ - version.elc \ - widget.elc \ - custom.elc \ - emacs-lisp/map-ynp.elc \ - cus-start.elc \ - international/mule.elc \ - international/mule-conf.elc \ - env.elc \ - format.elc \ - bindings.elc \ - files.elc \ - emacs-lisp/macroexp.elc \ - cus-face.elc \ - faces.elc \ - button.elc \ - startup.elc \ - emacs-lisp/cl-preloaded.elc \ - emacs-lisp/nadvice.elc \ - minibuffer.elc \ - abbrev.elc \ - simple.elc \ - help.elc \ - jka-cmpr-hook.elc \ - epa-hook.elc \ - international/mule-cmds.elc \ - case-table.elc \ - international/characters.elc \ - composite.elc \ - international/charprop.el \ - language/chinese.elc \ - language/cyrillic.elc \ - language/indian.elc \ - language/sinhala.elc \ - language/english.elc \ - language/ethiopic.elc \ - language/european.elc \ - language/czech.elc \ - language/slovak.elc \ - language/romanian.elc \ - language/greek.elc \ - language/hebrew.elc \ - international/cp51932.el \ - international/eucjp-ms.el \ - language/japanese.elc \ - language/korean.elc \ - language/lao.elc \ - language/tai-viet.elc \ - language/thai.elc \ - language/tibetan.elc \ - language/vietnamese.elc \ - language/misc-lang.elc \ - language/utf-8-lang.elc \ - language/georgian.elc \ - language/khmer.elc \ - language/burmese.elc \ - language/cham.elc \ - indent.elc \ - window.elc \ - emacs-lisp/cl-generic.elc \ - frame.elc \ - term/tty-colors.elc \ - font-core.elc \ - facemenu.elc \ - emacs-lisp/syntax.elc \ - font-lock.elc \ - jit-lock.elc \ - mouse.elc \ - scroll-bar.elc \ - select.elc \ - emacs-lisp/timer.elc \ - isearch.elc \ - rfn-eshadow.elc \ - menu-bar.elc \ - emacs-lisp/lisp.elc \ - textmodes/page.elc \ - register.elc \ - textmodes/paragraphs.elc \ - progmodes/prog-mode.elc \ - emacs-lisp/lisp-mode.elc \ - progmodes/elisp-mode.elc \ - textmodes/text-mode.elc \ - textmodes/fill.elc \ - newcomment.elc \ - replace.elc \ - emacs-lisp/tabulated-list.elc \ - buff-menu.elc \ - fringe.elc \ - emacs-lisp/regexp-opt.elc \ - image.elc \ - international/fontset.elc \ - dnd.elc \ - tool-bar.elc \ - dynamic-setting.elc \ - x-dnd.elc \ - term/common-win.elc \ - term/x-win.elc \ - w32-vars.elc \ - term/w32-win.elc \ - ls-lisp.elc \ - disp-table.elc \ - dos-w32.elc \ - w32-fns.elc \ - dos-fns.elc \ - dos-vars.elc \ - term/pc-win.elc \ - term/internal.elc \ - term/ns-win.elc \ - mwheel.elc \ - emacs-lisp/float-sup.elc \ - vc/vc-hooks.elc \ - vc/ediff-hook.elc \ - electric.elc \ - emacs-lisp/eldoc.elc \ - uniquify.elc \ - tooltip.elc - -### lisp.mk ends here commit 576fba5f58dd61163cf92a0c3f93859e047ecefd Author: Dmitry Gutov Date: Sun May 17 02:45:51 2015 +0300 Display shorter dates in Git annotate output * lisp/vc/vc-git.el (vc-git-annotate-command): Use the short date format (when not overridden with vc-git-annotate-switches). (vc-git-annotate-time): Support the short format, as well as ISO 8601 that has been used until now (bug#5428). diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 059f34e..cbf3da3 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1054,17 +1054,19 @@ or BRANCH^ (where \"^\" can be repeated)." (defun vc-git-annotate-command (file buf &optional rev) (let ((name (file-relative-name file))) - (apply #'vc-git-command buf 'async nil "blame" "--date=iso" + (apply #'vc-git-command buf 'async nil "blame" "--date=short" (append (vc-switches 'git 'annotate) (list rev "--" name))))) (declare-function vc-annotate-convert-time "vc-annotate" (&optional time)) (defun vc-git-annotate-time () - (and (re-search-forward "[0-9a-f]+[^()]+(.* \\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\) \\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\) \\([-+0-9]+\\) +[0-9]+) " nil t) + (and (re-search-forward "^[0-9a-f]+[^()]+(.*?\\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\) \\(:?\\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\) \\([-+0-9]+\\)\\)? *[0-9]+) " nil t) (vc-annotate-convert-time (apply #'encode-time (mapcar (lambda (match) - (string-to-number (match-string match))) + (if (match-beginning match) + (string-to-number (match-string match)) + 0)) '(6 5 4 3 2 1 7)))))) (defun vc-git-annotate-extract-revision-at-line () commit 496bfe74990d6601d3584cb900643aa77d7b7a78 Author: Paul Eggert Date: Sat May 16 13:47:36 2015 -0700 ASCIIfy curved quotes on displays lacking them * lisp/international/mule-cmds.el (set-locale-environment): If curved quotes don't work, display straight ASCII approximations (Bug#20545). diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index fd892aa..4b63cb8 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -2708,6 +2708,14 @@ See also `locale-charset-language-names', `locale-language-names', (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8))) + ;; If curved quotes don't work, display straight ASCII approximations. + (unless frame + (dolist (char-repl '((?‘ . [?\']) (?’ . [?\']) (?“ . [?\"]) (?” . [?\"]))) + (when (not (char-displayable-p (car char-repl))) + (or standard-display-table + (setq standard-display-table (make-display-table))) + (aset standard-display-table (car char-repl) (cdr char-repl))))) + ;; Default to A4 paper if we're not in a C, POSIX or US locale. ;; (See comments in Flocale_info.) (unless frame commit e3c90430c1a8080fd95e3a1e17436403c076b312 Author: Glenn Morris Date: Sat May 16 13:15:20 2015 -0700 Small src/Makefile simplification. * src/lisp.mk (shortlisp): Rename from lisp, remove $lispsource prefix. * src/Makefile.in (lisp): Derive from shortlisp. ($(etc)/DOC): Use $shortlisp rather than parsing lisp.mk. diff --git a/lisp/loadup.el b/lisp/loadup.el index 525cbad..b69005f 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -29,7 +29,7 @@ ;; If you add/remove Lisp files to be loaded here, consider the ;; following issues: -;; i) Any file loaded on any platform should appear in $lisp in src/lisp.mk. +;; i) Any file loaded on any platform should appear in src/lisp.mk. ;; Use the .el or .elc version as appropriate. ;; This ensures both that the Lisp files are compiled (if necessary) diff --git a/src/Makefile.in b/src/Makefile.in index 51a5b98..f6fa03a 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -420,6 +420,8 @@ ALLOBJS = $(FIRSTFILE_OBJ) $(VMLIMIT_OBJ) $(obj) $(otherobj) include $(srcdir)/lisp.mk +lisp = $(addprefix ${lispsource}/,${shortlisp}) + ## Construct full set of libraries to be linked. LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \ $(LIBX_OTHER) $(LIBSOUND) \ @@ -463,12 +465,9 @@ else endif ## We run make-docfile twice because the command line may get too long -## on some systems. The sed command operating on lisp.mk also reduces -## the length of the command line. Unfortunately, no-one has any idea +## on some systems. Unfortunately, no-one has any idea ## exactly how long the maximum safe command line length is on all the -## various systems that Emacs supports. Obviously, the length depends -## on what your value of $srcdir is. If the length restriction goes -## away, lisp.mk can be merged back into this file. +## various systems that Emacs supports. ## ## $(SOME_MACHINE_OBJECTS) comes before $(obj) because some files may ## or may not be included in $(obj), but they are always included in @@ -482,8 +481,7 @@ $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(obj) $(lisp) $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \ $(SOME_MACHINE_OBJECTS) $(obj) > $(etc)/DOC $(AM_V_at)$(libsrc)/make-docfile -a $(etc)/DOC -d $(lispsource) \ - `sed -n -e 's| \\\\||' -e 's|^[ ]*$$(lispsource)/||p' \ - $(srcdir)/lisp.mk` + $(shortlisp) $(libsrc)/make-docfile$(EXEEXT): $(MAKE) -C $(libsrc) make-docfile$(EXEEXT) diff --git a/src/lisp.mk b/src/lisp.mk index 0a431a5..32882d1 100644 --- a/src/lisp.mk +++ b/src/lisp.mk @@ -43,129 +43,126 @@ ### Code: -## NB: This list is parsed by sed in the main src/Makefile. -## Do not change the formatting. -lisp = \ - $(lispsource)/loaddefs.el \ - $(lispsource)/loadup.el \ - $(lispsource)/emacs-lisp/byte-run.elc \ - $(lispsource)/emacs-lisp/backquote.elc \ - $(lispsource)/subr.elc \ - $(lispsource)/version.elc \ - $(lispsource)/widget.elc \ - $(lispsource)/custom.elc \ - $(lispsource)/emacs-lisp/map-ynp.elc \ - $(lispsource)/cus-start.elc \ - $(lispsource)/international/mule.elc \ - $(lispsource)/international/mule-conf.elc \ - $(lispsource)/env.elc \ - $(lispsource)/format.elc \ - $(lispsource)/bindings.elc \ - $(lispsource)/files.elc \ - $(lispsource)/emacs-lisp/macroexp.elc \ - $(lispsource)/cus-face.elc \ - $(lispsource)/faces.elc \ - $(lispsource)/button.elc \ - $(lispsource)/startup.elc \ - $(lispsource)/emacs-lisp/cl-preloaded.elc \ - $(lispsource)/emacs-lisp/nadvice.elc \ - $(lispsource)/minibuffer.elc \ - $(lispsource)/abbrev.elc \ - $(lispsource)/simple.elc \ - $(lispsource)/help.elc \ - $(lispsource)/jka-cmpr-hook.elc \ - $(lispsource)/epa-hook.elc \ - $(lispsource)/international/mule-cmds.elc \ - $(lispsource)/case-table.elc \ - $(lispsource)/international/characters.elc \ - $(lispsource)/composite.elc \ - $(lispsource)/international/charprop.el \ - $(lispsource)/language/chinese.elc \ - $(lispsource)/language/cyrillic.elc \ - $(lispsource)/language/indian.elc \ - $(lispsource)/language/sinhala.elc \ - $(lispsource)/language/english.elc \ - $(lispsource)/language/ethiopic.elc \ - $(lispsource)/language/european.elc \ - $(lispsource)/language/czech.elc \ - $(lispsource)/language/slovak.elc \ - $(lispsource)/language/romanian.elc \ - $(lispsource)/language/greek.elc \ - $(lispsource)/language/hebrew.elc \ - $(lispsource)/international/cp51932.el \ - $(lispsource)/international/eucjp-ms.el \ - $(lispsource)/language/japanese.elc \ - $(lispsource)/language/korean.elc \ - $(lispsource)/language/lao.elc \ - $(lispsource)/language/tai-viet.elc \ - $(lispsource)/language/thai.elc \ - $(lispsource)/language/tibetan.elc \ - $(lispsource)/language/vietnamese.elc \ - $(lispsource)/language/misc-lang.elc \ - $(lispsource)/language/utf-8-lang.elc \ - $(lispsource)/language/georgian.elc \ - $(lispsource)/language/khmer.elc \ - $(lispsource)/language/burmese.elc \ - $(lispsource)/language/cham.elc \ - $(lispsource)/indent.elc \ - $(lispsource)/window.elc \ - $(lispsource)/emacs-lisp/cl-generic.elc \ - $(lispsource)/frame.elc \ - $(lispsource)/term/tty-colors.elc \ - $(lispsource)/font-core.elc \ - $(lispsource)/facemenu.elc \ - $(lispsource)/emacs-lisp/syntax.elc \ - $(lispsource)/font-lock.elc \ - $(lispsource)/jit-lock.elc \ - $(lispsource)/mouse.elc \ - $(lispsource)/scroll-bar.elc \ - $(lispsource)/select.elc \ - $(lispsource)/emacs-lisp/timer.elc \ - $(lispsource)/isearch.elc \ - $(lispsource)/rfn-eshadow.elc \ - $(lispsource)/menu-bar.elc \ - $(lispsource)/emacs-lisp/lisp.elc \ - $(lispsource)/textmodes/page.elc \ - $(lispsource)/register.elc \ - $(lispsource)/textmodes/paragraphs.elc \ - $(lispsource)/progmodes/prog-mode.elc \ - $(lispsource)/emacs-lisp/lisp-mode.elc \ - $(lispsource)/progmodes/elisp-mode.elc \ - $(lispsource)/textmodes/text-mode.elc \ - $(lispsource)/textmodes/fill.elc \ - $(lispsource)/newcomment.elc \ - $(lispsource)/replace.elc \ - $(lispsource)/emacs-lisp/tabulated-list.elc \ - $(lispsource)/buff-menu.elc \ - $(lispsource)/fringe.elc \ - $(lispsource)/emacs-lisp/regexp-opt.elc \ - $(lispsource)/image.elc \ - $(lispsource)/international/fontset.elc \ - $(lispsource)/dnd.elc \ - $(lispsource)/tool-bar.elc \ - $(lispsource)/dynamic-setting.elc \ - $(lispsource)/x-dnd.elc \ - $(lispsource)/term/common-win.elc \ - $(lispsource)/term/x-win.elc \ - $(lispsource)/w32-vars.elc \ - $(lispsource)/term/w32-win.elc \ - $(lispsource)/ls-lisp.elc \ - $(lispsource)/disp-table.elc \ - $(lispsource)/dos-w32.elc \ - $(lispsource)/w32-fns.elc \ - $(lispsource)/dos-fns.elc \ - $(lispsource)/dos-vars.elc \ - $(lispsource)/term/pc-win.elc \ - $(lispsource)/term/internal.elc \ - $(lispsource)/term/ns-win.elc \ - $(lispsource)/mwheel.elc \ - $(lispsource)/emacs-lisp/float-sup.elc \ - $(lispsource)/vc/vc-hooks.elc \ - $(lispsource)/vc/ediff-hook.elc \ - $(lispsource)/electric.elc \ - $(lispsource)/emacs-lisp/eldoc.elc \ - $(lispsource)/uniquify.elc \ - $(lispsource)/tooltip.elc - +shortlisp = \ + loaddefs.el \ + loadup.el \ + emacs-lisp/byte-run.elc \ + emacs-lisp/backquote.elc \ + subr.elc \ + version.elc \ + widget.elc \ + custom.elc \ + emacs-lisp/map-ynp.elc \ + cus-start.elc \ + international/mule.elc \ + international/mule-conf.elc \ + env.elc \ + format.elc \ + bindings.elc \ + files.elc \ + emacs-lisp/macroexp.elc \ + cus-face.elc \ + faces.elc \ + button.elc \ + startup.elc \ + emacs-lisp/cl-preloaded.elc \ + emacs-lisp/nadvice.elc \ + minibuffer.elc \ + abbrev.elc \ + simple.elc \ + help.elc \ + jka-cmpr-hook.elc \ + epa-hook.elc \ + international/mule-cmds.elc \ + case-table.elc \ + international/characters.elc \ + composite.elc \ + international/charprop.el \ + language/chinese.elc \ + language/cyrillic.elc \ + language/indian.elc \ + language/sinhala.elc \ + language/english.elc \ + language/ethiopic.elc \ + language/european.elc \ + language/czech.elc \ + language/slovak.elc \ + language/romanian.elc \ + language/greek.elc \ + language/hebrew.elc \ + international/cp51932.el \ + international/eucjp-ms.el \ + language/japanese.elc \ + language/korean.elc \ + language/lao.elc \ + language/tai-viet.elc \ + language/thai.elc \ + language/tibetan.elc \ + language/vietnamese.elc \ + language/misc-lang.elc \ + language/utf-8-lang.elc \ + language/georgian.elc \ + language/khmer.elc \ + language/burmese.elc \ + language/cham.elc \ + indent.elc \ + window.elc \ + emacs-lisp/cl-generic.elc \ + frame.elc \ + term/tty-colors.elc \ + font-core.elc \ + facemenu.elc \ + emacs-lisp/syntax.elc \ + font-lock.elc \ + jit-lock.elc \ + mouse.elc \ + scroll-bar.elc \ + select.elc \ + emacs-lisp/timer.elc \ + isearch.elc \ + rfn-eshadow.elc \ + menu-bar.elc \ + emacs-lisp/lisp.elc \ + textmodes/page.elc \ + register.elc \ + textmodes/paragraphs.elc \ + progmodes/prog-mode.elc \ + emacs-lisp/lisp-mode.elc \ + progmodes/elisp-mode.elc \ + textmodes/text-mode.elc \ + textmodes/fill.elc \ + newcomment.elc \ + replace.elc \ + emacs-lisp/tabulated-list.elc \ + buff-menu.elc \ + fringe.elc \ + emacs-lisp/regexp-opt.elc \ + image.elc \ + international/fontset.elc \ + dnd.elc \ + tool-bar.elc \ + dynamic-setting.elc \ + x-dnd.elc \ + term/common-win.elc \ + term/x-win.elc \ + w32-vars.elc \ + term/w32-win.elc \ + ls-lisp.elc \ + disp-table.elc \ + dos-w32.elc \ + w32-fns.elc \ + dos-fns.elc \ + dos-vars.elc \ + term/pc-win.elc \ + term/internal.elc \ + term/ns-win.elc \ + mwheel.elc \ + emacs-lisp/float-sup.elc \ + vc/vc-hooks.elc \ + vc/ediff-hook.elc \ + electric.elc \ + emacs-lisp/eldoc.elc \ + uniquify.elc \ + tooltip.elc ### lisp.mk ends here commit c9a09ef273743e3d3397bebc1f3d6edf53dd67fc Author: Eli Zaretskii Date: Sat May 16 17:34:13 2015 +0300 * lisp/help-mode.el (help-go-forward): Doc fix. (Bug#20577) diff --git a/lisp/help-mode.el b/lisp/help-mode.el index d6679e9..f99e916 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -727,7 +727,7 @@ BUFFER or FRAME." (user-error "No previous help buffer"))) (defun help-go-forward () - "Go back to next topic in this help buffer." + "Go to the next topic in this help buffer." (interactive) (if help-xref-forward-stack (help-xref-go-forward (current-buffer)) commit 21f7a70dcc3c7901a98a1c3d7788d9de42ab89d8 Author: Eli Zaretskii Date: Sat May 16 17:30:50 2015 +0300 * doc/lispref/debugging.texi (Profiling): Improve indexing. (Bug#20576) diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi index 0ccac18..47b2499 100644 --- a/doc/lispref/debugging.texi +++ b/doc/lispref/debugging.texi @@ -815,6 +815,7 @@ be cleaner to combine them. @node Profiling @section Profiling @cindex profiling +@cindex profile @cindex measuring resource usage @cindex memory usage commit becc0129ca5e32baa7135d9df8d118e66a30914b Author: Dmitry Gutov Date: Sat May 16 17:11:33 2015 +0300 Use `unless' to have one fewer `not' * lisp/vc/vc-git.el (vc-git-resolve-when-done): Use `unless' to have one fewer `not'. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index b08baba..059f34e 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -810,14 +810,12 @@ This prompts for a branch to merge from." (goto-char (point-min)) (unless (re-search-forward "^<<<<<<< " nil t) (vc-git-command nil 0 buffer-file-name "add") - (when (and - (eq vc-git-resolve-conflicts 'unstage-maybe) - ;; Not doing a merge. Likely applying a stash - ;; (bug#20292). - (not - (file-exists-p (expand-file-name ".git/MERGE_HEAD" - (vc-git-root buffer-file-name)))) - (not (vc-git-conflicted-files (vc-git-root buffer-file-name)))) + (unless (or + (not (eq vc-git-resolve-conflicts 'unstage-maybe)) + ;; Doing a merge, so bug#20292 doesn't apply. + (file-exists-p (expand-file-name ".git/MERGE_HEAD" + (vc-git-root buffer-file-name))) + (vc-git-conflicted-files (vc-git-root buffer-file-name))) (vc-git-command nil 0 nil "reset")) ;; Remove the hook so that it is not called multiple times. (remove-hook 'after-save-hook 'vc-git-resolve-when-done t)))) commit 30151ee56ba6f88d4ba8d36fb5c28c2940630965 Author: Dmitry Gutov Date: Sat May 16 17:06:10 2015 +0300 Remove redundant :group declarations from vc-git.el * lisp/vc/vc-git.el (vc-git-diff-switches) (vc-git-annotate-switches, vc-git-resolve-conflicts) (vc-git-program, vc-git-root-log-format): Remove the redundant :group declarations. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 9dae190..b08baba 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -117,8 +117,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." (const :tag "None" t) (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) - :version "23.1" - :group 'vc-git) + :version "23.1") (defcustom vc-git-annotate-switches nil "String or list of strings specifying switches for Git blame under VC. @@ -127,8 +126,7 @@ If nil, use the value of `vc-annotate-switches'. If t, use no switches." (const :tag "None" t) (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) - :version "25.1" - :group 'vc-git) + :version "25.1") (defcustom vc-git-resolve-conflicts t "When non-nil, mark conflicted file as resolved upon saving. @@ -140,14 +138,12 @@ the staging area." (const :tag "Resolve" t) (const :tag "Resolve and maybe unstage all files" unstage-maybe)) - :version "25.1" - :group 'vc-git) + :version "25.1") (defcustom vc-git-program "git" "Name of the Git executable (excluding any arguments)." :version "24.1" - :type 'string - :group 'vc-git) + :type 'string) (defcustom vc-git-root-log-format '("%d%h..: %an %ad %s" @@ -167,7 +163,6 @@ format string (which is passed to \"git log\" via the argument matching the resulting Git log output, and KEYWORDS is a list of `font-lock-keywords' for highlighting the Log View buffer." :type '(list string string (repeat sexp)) - :group 'vc-git :version "24.1") (defvar vc-git-commits-coding-system 'utf-8 commit daaa4a38e85c7af131568eaf0c487f0a51fd5f5b Author: Nicolas Petton Date: Sat May 16 15:53:44 2015 +0200 Removes the predicate from lisp-complete-symbol (Bug#20456) * lisp/emacs-lisp/lisp.el (lisp-complete-symbol): Do not use predicate and remove it from the docstring. diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 67d1487..d401b31 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -736,22 +736,19 @@ character." ) (call-interactively 'minibuffer-complete))) -(defun lisp-complete-symbol (&optional predicate) +(defun lisp-complete-symbol (&optional _predicate) "Perform completion on Lisp symbol preceding point. Compare that symbol against the known Lisp symbols. If no characters can be completed, display a list of possible completions. Repeating the command at that point scrolls the list. -When called from a program, optional arg PREDICATE is a predicate -determining which symbols are considered, e.g. `commandp'. -If PREDICATE is nil, the context determines which symbols are -considered. If the symbol starts just after an open-parenthesis, only -symbols with function definitions are considered. Otherwise, all -symbols with function definitions, values or properties are -considered." +The context determines which symbols are considered. If the +symbol starts just after an open-parenthesis, only symbols with +function definitions are considered. Otherwise, all symbols with +function definitions, values or properties are considered." (declare (obsolete completion-at-point "24.4")) (interactive) - (let* ((data (lisp-completion-at-point predicate)) + (let* ((data (lisp-completion-at-point)) (plist (nthcdr 3 data))) (if (null data) (minibuffer-message "Nothing to complete") commit 45651154473c7d2f16230da765d034ecfde7968a Author: Dmitry Gutov Date: Sat May 16 16:14:01 2015 +0300 Add new option vc-git-resolve-conflicts * lisp/vc/vc-git.el (vc-git-resolve-conflicts): New variable. (vc-git-find-file-hook): Add to after-save-hook only when the above is non-nil. (vc-git-resolve-when-done): Update to honor the new variable. (Bug#20292) diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 20f2101..9dae190 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -130,6 +130,19 @@ If nil, use the value of `vc-annotate-switches'. If t, use no switches." :version "25.1" :group 'vc-git) +(defcustom vc-git-resolve-conflicts t + "When non-nil, mark conflicted file as resolved upon saving. +That is performed after all conflict markers in it have been +removed. If the value is `unstage-maybe', and no merge is in +progress, then after the last conflict is resolved, also clear +the staging area." + :type '(choice (const :tag "Don't resolve" nil) + (const :tag "Resolve" t) + (const :tag "Resolve and maybe unstage all files" + unstage-maybe)) + :version "25.1" + :group 'vc-git) + (defcustom vc-git-program "git" "Name of the Git executable (excluding any arguments)." :version "24.1" @@ -801,12 +814,16 @@ This prompts for a branch to merge from." (save-excursion (goto-char (point-min)) (unless (re-search-forward "^<<<<<<< " nil t) - (if (file-exists-p (expand-file-name ".git/MERGE_HEAD" - (vc-git-root buffer-file-name))) - ;; Doing a merge. - (vc-git-command nil 0 buffer-file-name "add") - ;; Doing something else. Likely applying a stash (bug#20292). - (vc-git-command nil 0 buffer-file-name "reset")) + (vc-git-command nil 0 buffer-file-name "add") + (when (and + (eq vc-git-resolve-conflicts 'unstage-maybe) + ;; Not doing a merge. Likely applying a stash + ;; (bug#20292). + (not + (file-exists-p (expand-file-name ".git/MERGE_HEAD" + (vc-git-root buffer-file-name)))) + (not (vc-git-conflicted-files (vc-git-root buffer-file-name)))) + (vc-git-command nil 0 nil "reset")) ;; Remove the hook so that it is not called multiple times. (remove-hook 'after-save-hook 'vc-git-resolve-when-done t)))) @@ -823,7 +840,8 @@ This prompts for a branch to merge from." (re-search-forward "^<<<<<<< " nil 'noerror))) (vc-file-setprop buffer-file-name 'vc-state 'conflict) (smerge-start-session) - (add-hook 'after-save-hook 'vc-git-resolve-when-done nil 'local) + (when vc-git-resolve-conflicts + (add-hook 'after-save-hook 'vc-git-resolve-when-done nil 'local)) (message "There are unresolved conflicts in this file"))) ;;; HISTORY FUNCTIONS commit 0d3451c75dcdc52948caf5c464feada7280c64c1 Author: Eli Zaretskii Date: Sat May 16 12:41:02 2015 +0300 ; * lisp/textmodes/ispell.el (ispell-aspell-find-dictionary): Add a comment. diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 8107f79..f67fae8 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1075,7 +1075,8 @@ of `ispell-dictionary-base-alist' elements." (dolist ( tmp-path (list ispell-aspell-dict-dir ispell-aspell-data-dir )) ;; Try xx.dat first, strip out variant, country code, etc, - ;; then try xx_YY.dat (without stripping country code). + ;; then try xx_YY.dat (without stripping country code), + ;; then try xx-alt.dat, for deu-alt etc. (dolist (tmp-regexp (list "^[[:alpha:]]+" "^[[:alpha:]_]+" "^[[:alpha:]]+-\\(alt\\|old\\)")) commit da4a31b1b1af919f0473dffa86b46beec5ca5541 Merge: 91a2748 a96731d Author: Eli Zaretskii Date: Sat May 16 12:33:12 2015 +0300 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs commit a96731d7f0f0616e500583a1d3eaa912a7f0ec16 Author: Artur Malabarba Date: Sat May 16 09:52:53 2015 +0100 * lisp/emacs-lisp/tabulated-list.el: Don't error on nil header-string (tabulated-list-init-header): Document new behavior. (tabulated-list-print-fake-header): No nothing if `tabulated-list--header-string' is nil. (tabulated-list--header-string): Add a docstring. * doc/lispref/modes.texi (Tabulated List Mode): Document it. * etc/NEWS: Document it. diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index 8cb0f3d..c325506 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -958,9 +958,9 @@ Menu,,, emacs, The GNU Emacs Manual}). way, specifying @code{tabulated-list-mode} as the second argument (@pxref{Derived Modes}). The body of the @code{define-derived-mode} form should specify the format of the tabulated data, by assigning -values to the variables documented below; then, it should call the -function @code{tabulated-list-init-header} to initialize the header -line. +values to the variables documented below; optionally, it can then call +the function @code{tabulated-list-init-header}, which will populate a +header with the names of the columns. The derived mode should also define a @dfn{listing command}. This, not the mode command, is what the user calls (e.g., @kbd{M-x diff --git a/etc/NEWS b/etc/NEWS index 2888c16..fdd0c87 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -205,6 +205,10 @@ font, and (iii) the specified window. `message' and related functions from displaying messages the Echo Area. The output is still logged to the *Messages* buffer. +** It is now safe for a mode that derives `tabulated-list-mode' to not +call `tabulated-list-init-header', in which case it will have no +header. + * Editing Changes in Emacs 25.1 diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el index b12edc8..5d10b55 100644 --- a/lisp/emacs-lisp/tabulated-list.el +++ b/lisp/emacs-lisp/tabulated-list.el @@ -179,7 +179,9 @@ If ADVANCE is non-nil, move forward by one line afterwards." table) "The `glyphless-char-display' table in Tabulated List buffers.") -(defvar tabulated-list--header-string nil) +(defvar tabulated-list--header-string nil + "Holds the header if `tabulated-list-use-header-line' is nil. +Populated by `tabulated-list-init-header'.") (defvar tabulated-list--header-overlay nil) (defun tabulated-list-init-header () @@ -243,15 +245,17 @@ If ADVANCE is non-nil, move forward by one line afterwards." (setq-local tabulated-list--header-string cols)))) (defun tabulated-list-print-fake-header () - "Insert a fake Tabulated List \"header line\" at the start of the buffer." - (goto-char (point-min)) - (let ((inhibit-read-only t)) - (insert tabulated-list--header-string "\n") - (if tabulated-list--header-overlay - (move-overlay tabulated-list--header-overlay (point-min) (point)) - (setq-local tabulated-list--header-overlay - (make-overlay (point-min) (point)))) - (overlay-put tabulated-list--header-overlay 'face 'underline))) + "Insert a fake Tabulated List \"header line\" at the start of the buffer. +Do nothing if `tabulated-list--header-string' is nil." + (when tabulated-list--header-string + (goto-char (point-min)) + (let ((inhibit-read-only t)) + (insert tabulated-list--header-string "\n") + (if tabulated-list--header-overlay + (move-overlay tabulated-list--header-overlay (point-min) (point)) + (setq-local tabulated-list--header-overlay + (make-overlay (point-min) (point)))) + (overlay-put tabulated-list--header-overlay 'face 'underline)))) (defun tabulated-list-revert (&rest ignored) "The `revert-buffer-function' for `tabulated-list-mode'. commit 91a274810ff17403f37bde512716b180c9ab75ef Author: Eli Zaretskii Date: Fri May 15 17:24:06 2015 +0300 Support de-alt dictionary with Aspell. * lisp/textmodes/ispell.el (ispell-aspell-find-dictionary): Support Aspell dictionaries with names like "de-alt". (Bug#20581) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 43003af..8107f79 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1077,7 +1077,8 @@ of `ispell-dictionary-base-alist' elements." ;; Try xx.dat first, strip out variant, country code, etc, ;; then try xx_YY.dat (without stripping country code). (dolist (tmp-regexp (list "^[[:alpha:]]+" - "^[[:alpha:]_]+")) + "^[[:alpha:]_]+" + "^[[:alpha:]]+-\\(alt\\|old\\)")) (let ((fullpath (concat tmp-path "/" (and (string-match tmp-regexp dict-name)