diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-01-01 01:02:45 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-01-01 01:02:45 -0800 |
commit | 4f7a90bf6ce831063d721324e712f8c38e85c678 (patch) | |
tree | 73e980746ddc55c4285d145769a94b2845cbfcdf | |
parent | 620e5a3cd4464aaffaa3568d6f6b89764de5cfbd (diff) | |
parent | 9adb101353e1f3d41a8f822fa4164e9b41e82ce5 (diff) | |
download | emacs-4f7a90bf6ce831063d721324e712f8c38e85c678.tar.gz |
Merge from origin/emacs-25
9adb101 Document 'describe-fontset'
229315c ; Add missing symbol quoting.
3d94931 Repair desktop restoration on text terminals
43022f9 Ignore forward-sexp-function in js-mode indentation code
b19fb49 Improve documentation of 'define-coding-system'
467768f Fix Bug#25162
6db78ae Fix a typo in define-abbrev-table
5f7d906 Bump makeinfo requirement from 4.7 to 4.13
442e2f6 Fixes related to select-enable-clipboard
e4ac450 Define struct predicate before acccesors
08decbd Doc fix for vc-git
5531e75 Further improve make-dist checking
953bf67 Improve previous make-dist change
129645a Make make-dist --snapshot do some sanity checks
# Conflicts:
# lisp/menu-bar.el
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | doc/emacs/files.texi | 8 | ||||
-rw-r--r-- | doc/emacs/mule.texi | 7 | ||||
-rw-r--r-- | lisp/abbrev.el | 8 | ||||
-rw-r--r-- | lisp/autorevert.el | 11 | ||||
-rw-r--r-- | lisp/desktop.el | 4 | ||||
-rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 16 | ||||
-rw-r--r-- | lisp/eshell/esh-io.el | 4 | ||||
-rw-r--r-- | lisp/international/mule.el | 13 | ||||
-rw-r--r-- | lisp/menu-bar.el | 14 | ||||
-rw-r--r-- | lisp/progmodes/js.el | 4 | ||||
-rw-r--r-- | lisp/term/pc-win.el | 2 | ||||
-rw-r--r-- | lisp/vc/ediff-util.el | 2 | ||||
-rw-r--r-- | lisp/vc/vc-git.el | 2 | ||||
-rwxr-xr-x | make-dist | 56 |
15 files changed, 119 insertions, 39 deletions
diff --git a/configure.ac b/configure.ac index cd6c689a52c..07b2e7f085d 100644 --- a/configure.ac +++ b/configure.ac @@ -1218,14 +1218,13 @@ esac AC_SUBST([PAXCTL_dumped]) AC_SUBST([PAXCTL_notdumped]) -## Need makeinfo >= 4.7 (?) to build the manuals. +## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals. if test "$MAKEINFO" != "no"; then if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then MAKEINFO=makeinfo fi case `($MAKEINFO --version) 2>/dev/null` in - *' (GNU texinfo) '4.[[7-9]]* | \ - *' (GNU texinfo) '4.[[1-9][0-9]]* | \ + *' (GNU texinfo) '4.1[[3-9]]* | \ *' (GNU texinfo) '[[5-9]]* | \ *' (GNU texinfo) '[[1-9][0-9]]* ) ;; *) MAKEINFO=no;; @@ -1248,7 +1247,7 @@ if test "$MAKEINFO" = "no"; then if test "x${with_makeinfo}" = "xno"; then HAVE_MAKEINFO=no elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then - AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your + AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.13, and your source tree does not seem to have pre-built manuals in the 'info' directory. Either install a suitable version of makeinfo, or re-run configure with the '--without-makeinfo' option to build without the manuals.] ) diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index ef362e9a529..eca41af7a18 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -937,6 +937,8 @@ discard your changes.) @findex auto-revert-mode @findex auto-revert-tail-mode @vindex auto-revert-interval +@vindex auto-revert-remote-files +@vindex auto-revert-verbose You can also tell Emacs to revert buffers periodically. To do this for a specific buffer, enable the minor mode Auto-Revert mode by typing @kbd{M-x auto-revert-mode}. This automatically reverts the @@ -944,7 +946,8 @@ current buffer every five seconds; you can change the interval through the variable @code{auto-revert-interval}. To do the same for all file buffers, type @kbd{M-x global-auto-revert-mode} to enable Global Auto-Revert mode. These minor modes do not check or revert remote -files, because that is usually too slow. +files, because that is usually too slow. This behavior can be changed +by setting the variable @code{auto-revert-remote-files} to non-@code{nil}. One use of Auto-Revert mode is to ``tail'' a file such as a system log, so that changes made to that file by other programs are @@ -955,6 +958,9 @@ the end, use Auto-Revert Tail mode instead (@code{auto-revert-tail-mode}). It is more efficient for this. Auto-Revert Tail mode works also for remote files. + When a buffer is auto-reverted, a message is generated. This can be +suppressed by setting @code{auto-revert-verbose} to @code{nil}. + @xref{VC Undo}, for commands to revert to earlier versions of files under version control. @xref{VC Mode Line}, for Auto Revert peculiarities when visiting files under version control. diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi index 882d75f5e61..a0925747ff2 100644 --- a/doc/emacs/mule.texi +++ b/doc/emacs/mule.texi @@ -1369,6 +1369,13 @@ Resources}). characters the font does not cover. The standard fontset is only used if explicitly requested, despite its name. +@findex describe-fontset + To show the information about a specific fontset, use the +@w{@kbd{M-x describe-fontset}} command. It prompts for a fontset +name, defaulting to the one used by the current frame, and then +displays all the subranges of characters and the fonts assigned to +them in that fontset. + A fontset does not necessarily specify a font for every character code. If a fontset specifies no font for a certain character, or if it specifies a font that does not exist on your system, then it cannot diff --git a/lisp/abbrev.el b/lisp/abbrev.el index b6d202c1807..df817aeae22 100644 --- a/lisp/abbrev.el +++ b/lisp/abbrev.el @@ -979,10 +979,10 @@ Properties with special meaning: ;; We used to manually add the docstring, but we also want to record this ;; location as the definition of the variable (in load-history), so we may ;; as well just use `defvar'. - (if (and docstring props (symbolp docstring)) - ;; There is really no docstring, instead the docstring arg - ;; is a property name. - (push docstring props) (setq docstring nil)) + (when (and docstring props (symbolp docstring)) + ;; There is really no docstring, instead the docstring arg + ;; is a property name. + (push docstring props) (setq docstring nil)) (eval `(defvar ,tablename nil ,@(if docstring (list docstring)))) (let ((table (if (boundp tablename) (symbol-value tablename)))) (unless table diff --git a/lisp/autorevert.el b/lisp/autorevert.el index 1129af8a2fa..f399ada5714 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el @@ -174,7 +174,7 @@ Thus, with this setting, Emacs might be non-responsive at times." (defcustom auto-revert-verbose t "When nil, Auto-Revert Mode does not generate any messages. -When non-nil, a message is generated whenever a file is reverted." +When non-nil, a message is generated whenever a buffer is reverted." :group 'auto-revert :type 'boolean) @@ -352,6 +352,9 @@ Auto-Revert Mode is a minor mode that affects only the current buffer. When enabled, it reverts the buffer when the file on disk changes. +When a buffer is reverted, a message is generated. This can be +suppressed by setting `auto-revert-verbose' to nil. + Use `global-auto-revert-mode' to automatically revert all buffers. Use `auto-revert-tail-mode' if you know that the file will only grow without being changed in the part that is already in the buffer." @@ -400,6 +403,9 @@ You can edit the buffer and turn this mode off and on again as you please. But make sure the background process has stopped writing before you save the file! +When a buffer is reverted, a message is generated. This can be +suppressed by setting `auto-revert-verbose' to nil. + Use `auto-revert-mode' for changes other than appends!" :group 'find-file :lighter auto-revert-tail-mode-text (when auto-revert-tail-mode @@ -464,6 +470,9 @@ documentation of that variable. It ignores buffers with modes matching `global-auto-revert-ignore-modes', and buffers with a non-nil vale of `global-auto-revert-ignore-buffer'. +When a buffer is reverted, a message is generated. This can be +suppressed by setting `auto-revert-verbose' to nil. + This function calls the hook `global-auto-revert-mode-hook'. It displays the text that `global-auto-revert-mode-text' specifies in the mode line." diff --git a/lisp/desktop.el b/lisp/desktop.el index 9fb8393e76c..063208fee69 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -1158,13 +1158,13 @@ This function also sets `desktop-dirname' to nil." ;; ---------------------------------------------------------------------------- (defun desktop-restoring-frameset-p () "True if calling `desktop-restore-frameset' will actually restore it." - (and desktop-restore-frames desktop-saved-frameset t)) + (and desktop-restore-frames desktop-saved-frameset (display-graphic-p) t)) (defun desktop-restore-frameset () "Restore the state of a set of frames. This function depends on the value of `desktop-saved-frameset' being set (usually, by reading it from the desktop)." - (when (and (display-graphic-p) (desktop-restoring-frameset-p)) + (when (desktop-restoring-frameset-p) (frameset-restore desktop-saved-frameset :reuse-frames (eq desktop-restore-reuses-frames t) :cleanup-frames (not (eq desktop-restore-reuses-frames 'keep)) diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 210a2083727..5e6388af057 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2708,6 +2708,14 @@ non-nil value, that slot cannot be set via `setf'. (= safety 1)) (cons 'and (cl-cdddr pred-form)) `(,predicate cl-x)))) + (when pred-form + (push `(cl-defsubst ,predicate (cl-x) + (declare (side-effect-free error-free)) + ,(if (eq (car pred-form) 'and) + (append pred-form '(t)) + `(and ,pred-form t))) + forms) + (push `(put ',name 'cl-deftype-satisfies ',predicate) forms)) (let ((pos 0) (descp descs)) (while descp (let* ((desc (pop descp)) @@ -2768,14 +2776,6 @@ non-nil value, that slot cannot be set via `setf'. (setq pos (1+ pos)))) (setq slots (nreverse slots) defaults (nreverse defaults)) - (when pred-form - (push `(cl-defsubst ,predicate (cl-x) - (declare (side-effect-free error-free)) - ,(if (eq (car pred-form) 'and) - (append pred-form '(t)) - `(and ,pred-form t))) - forms) - (push `(put ',name 'cl-deftype-satisfies ',predicate) forms)) (and copier (push `(defalias ',copier #'copy-sequence) forms)) (if constructor diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index 1b4f4093168..e88a4e0f66d 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -125,7 +125,7 @@ from executing while Emacs is redisplaying." 'eshell-kill-append) t) ("/dev/clip" (lambda (mode) (if (eq mode 'overwrite) - (let ((gui-select-enable-clipboard t)) + (let ((select-enable-clipboard t)) (kill-new ""))) 'eshell-clipboard-append) t)) "Map virtual devices name to Emacs Lisp functions. @@ -325,7 +325,7 @@ last execution result should not be changed." (defun eshell-clipboard-append (string) "Call `kill-append' with STRING, if it is indeed a string." (if (stringp string) - (let ((gui-select-enable-clipboard t)) + (let ((select-enable-clipboard t)) (kill-append string nil)))) (defun eshell-get-target (target &optional mode) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 5bc0e9c4c34..0761e688684 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -713,7 +713,11 @@ decoded by the coding system itself and before any functions in `after-insert-functions' are called. This function is passed one argument: the number of characters in the text to convert, with point at the start of the text. The function should leave point -unchanged, and should return the new character count. +unchanged, and should return the new character count. Note that +this function should avoid reading from files or receiving text +from subprocesses -- anything that could invoke decoding; if it +must do so, it should bind `coding-system-for-read' to a value +other than the current coding-system, to avoid infinite recursion. `:pre-write-conversion' @@ -722,7 +726,12 @@ VALUE must be a function to call after all functions in called, and before the text is encoded by the coding system itself. This function should convert the whole text in the current buffer. For backward compatibility, this function is -passed two arguments which can be ignored. +passed two arguments which can be ignored. Note that this +function should avoid writing to files or sending text to +subprocesses -- anything that could invoke encoding; if it +must do so, it should bind `coding-system-for-write' to a +value other than the current coding-system, to avoid infinite +recursion. `:default-char' diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index d21fa2cd61c..af031bd99c0 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -530,14 +530,10 @@ (gui-backend-selection-exists-p 'CLIPBOARD)) (not buffer-read-only))))) -(defvar gui-select-enable-clipboard) - (defun clipboard-yank () "Insert the clipboard contents, or the last stretch of killed text." (interactive "*") - (let ((gui-select-enable-clipboard t) - (interprogram-paste-function (or interprogram-paste-function - #'gui-selection-value))) + (let ((select-enable-clipboard t)) (yank))) (defun clipboard-kill-ring-save (beg end &optional region) @@ -545,9 +541,7 @@ If the optional argument REGION is non-nil, the function ignores BEG and END, and saves the current region instead." (interactive "r\np") - (let ((gui-select-enable-clipboard t) - (interprogram-cut-function (or interprogram-cut-function - #'gui-select-text))) + (let ((select-enable-clipboard t)) (kill-ring-save beg end region))) (defun clipboard-kill-region (beg end &optional region) @@ -555,9 +549,7 @@ BEG and END, and saves the current region instead." If the optional argument REGION is non-nil, the function ignores BEG and END, and kills the current region instead." (interactive "r\np") - (let ((gui-select-enable-clipboard t) - (interprogram-cut-function (or interprogram-cut-function - #'gui-select-text))) + (let ((select-enable-clipboard t)) (kill-region beg end region))) (defun menu-bar-enable-clipboard () diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 6fff981c6bd..e385e91f756 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -1852,7 +1852,8 @@ nil." "Helper function for `js--proper-indentation'. Return the proper indentation of the current line if it belongs to a declaration statement spanning multiple lines; otherwise, return nil." - (let (at-opening-bracket) + (let (forward-sexp-function ; Use Lisp version. + at-opening-bracket) (save-excursion (back-to-indentation) (when (not (looking-at js--declaration-keyword-re)) @@ -1929,6 +1930,7 @@ indentation is aligned to that column." (let ((bracket (nth 1 parse-status)) declaration-keyword-end at-closing-bracket-p + forward-sexp-function ; Use Lisp version. comma-p) (when (looking-at js--declaration-keyword-re) (setq declaration-keyword-end (match-end 0)) diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index 031768cec2c..5b4bdf7cb97 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el @@ -263,7 +263,7 @@ Consult the selection. Treat empty strings as if they were unset." (if (w16-selection-owner-p selection) t) ;; FIXME: Other systems don't obey - ;; gui-select-enable-clipboard here. + ;; select-enable-clipboard here. (with-demoted-errors "w16-set-clipboard-data: %S" (w16-set-clipboard-data value)) value)) diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el index 31201477fa2..76223e9f6e4 100644 --- a/lisp/vc/ediff-util.el +++ b/lisp/vc/ediff-util.el @@ -2625,7 +2625,7 @@ temporarily reverses the meaning of this variable." (defun ediff-janitor (ask keep-variants) "Kill buffers A, B, and, possibly, C, if these buffers aren't modified. In merge jobs, buffer C is not deleted here, but rather according to -ediff-quit-merge-hook. +`ediff-quit-merge-hook'. ASK non-nil means ask the user whether to keep each unmodified buffer, unless KEEP-VARIANTS is non-nil, in which case buffers are never killed. A side effect of cleaning up may be that you should be careful when comparing diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 514b97c2632..72bc6b55505 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1029,6 +1029,8 @@ or BRANCH^ (where \"^\" can be repeated)." (buffer-string)))) (defun vc-git-region-history (file buffer lfrom lto) + "Insert into BUFFER the history of FILE for lines LFROM to LTO. +This requires git 1.8.4 or later, for the \"-L\" option of \"git log\"." ;; The "git log" command below interprets the line numbers as applying ;; to the HEAD version of the file, not to the current state of the file. ;; So we need to look at all the local changes and adjust lfrom/lto diff --git a/make-dist b/make-dist index b0a8dff2cc7..795cca8ed38 100755 --- a/make-dist +++ b/make-dist @@ -101,7 +101,6 @@ while [ $# -gt 0 ]; do clean_up=yes make_tar=yes update=no - check=no ;; ## Include the test/ directory. @@ -211,6 +210,11 @@ them, and try again." >&2 fi if [ $check = yes ]; then + + echo "Sanity checking (use --no-check to disable this)..." + + error=no + ls -1 lisp/[a-zA-Z]*.el lisp/[a-z]*/[a-zA-Z0-9]*.el \ lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el > /tmp/el @@ -224,6 +228,7 @@ if [ $check = yes ]; then bogosities=`comm -13 /tmp/elelc /tmp/elc` if [ x"${bogosities}" != x"" ]; then + error=yes echo "The following .elc files have no corresponding .el files:" echo "${bogosities}" fi @@ -232,6 +237,19 @@ if [ $check = yes ]; then sed 's/\.elc$/.el/' /tmp/elc > /tmp/elcel losers=`comm -23 /tmp/el /tmp/elcel` + bogosities= + while read elc; do + el=`echo $elc | sed 's/c$//'` + [ -e $el ] || continue + [ $elc -nt $el ] || bogosities="$bogosities $elc" + done < /tmp/elc + + if [ x"${bogosities}" != x"" ]; then + error=yes + echo "The following .elc files are older than their .el files:" + echo "${bogosities}" + fi + rm -f /tmp/el /tmp/elc /tmp/elcel /tmp/elelc bogosities= @@ -245,9 +263,45 @@ if [ $check = yes ]; then done if [ x"${bogosities}" != x"" ]; then + error=yes echo "The following .el files have no corresponding .elc files:" echo "${bogosities}" fi + + + ## This is only a crude check, eg it does not handle .info + ## files with multiple .texi source files. + find doc -name '*.texi' > /tmp/el + + bogosities= + while read texi; do + info=`sed -n 's/^@setfilename //p' $texi | sed 's|.*info/||'` + [ x"${info}" != x"" ] || continue + info=info/$info + [ -e $info ] || continue + [ $info -nt $texi ] || bogosities="$bogosities $info" + done < /tmp/el + + rm -f /tmp/el + + if [ x"${bogosities}" != x"" ]; then + error=yes + echo "The following .info files are older than their .texi files:" + echo "${bogosities}" + fi + + ## This exits with non-zero status if any .info files need + ## rebuilding. + if [ -e Makefile ]; then + echo "Checking to see if info files are up-to-date..." + make --question info || error=yes + fi + + if [ $error = yes ]; then + echo "Failed checks" >&2 + exit 1 + fi + fi if [ $update = yes ]; then |