emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 4f7a90b 1/9: Merge from origin/emacs-25


From: Paul Eggert
Subject: [Emacs-diffs] master 4f7a90b 1/9: Merge from origin/emacs-25
Date: Sun, 1 Jan 2017 09:18:47 +0000 (UTC)

branch: master
commit 4f7a90bf6ce831063d721324e712f8c38e85c678
Merge: 620e5a3 9adb101
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    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
---
 configure.ac               |    7 +++---
 doc/emacs/files.texi       |    8 ++++++-
 doc/emacs/mule.texi        |    7 ++++++
 lisp/abbrev.el             |    8 +++----
 lisp/autorevert.el         |   11 ++++++++-
 lisp/desktop.el            |    4 ++--
 lisp/emacs-lisp/cl-macs.el |   16 ++++++-------
 lisp/eshell/esh-io.el      |    4 ++--
 lisp/international/mule.el |   13 ++++++++--
 lisp/menu-bar.el           |   14 +++--------
 lisp/progmodes/js.el       |    4 +++-
 lisp/term/pc-win.el        |    2 +-
 lisp/vc/ediff-util.el      |    2 +-
 lisp/vc/vc-git.el          |    2 ++
 make-dist                  |   56 +++++++++++++++++++++++++++++++++++++++++++-
 15 files changed, 119 insertions(+), 39 deletions(-)

diff --git a/configure.ac b/configure.ac
index cd6c689..07b2e7f 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 ef362e9..eca41af 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
address@hidden auto-revert-remote-files
address@hidden 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 address@hidden
 
   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 882d75f..a092574 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.
 
address@hidden describe-fontset
+  To show the information about a specific fontset, use the
address@hidden@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 b6d202c..df817ae 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 1129af8..f399ada 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 9fb8393..063208f 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 210a208..5e6388a 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 1b4f409..e88a4e0 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 5bc0e9c..0761e68 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 d21fa2c..af031bd 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 6fff981..e385e91 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 031768c..5b4bdf7 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 3120147..76223e9 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 514b97c..72bc6b5 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 b0a8dff..795cca8 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/address@hidden //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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]