emacs-diffs
[Top][All Lists]
Advanced

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

master 60a3c5d: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 60a3c5d: Merge from origin/emacs-27
Date: Tue, 28 Jan 2020 10:55:13 -0500 (EST)

branch: master
commit 60a3c5d56c5684913e1ae77464d7c9e71bc04560
Merge: 5ee3c37 1bcac29
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-27
    
    1bcac29b2f (origin/emacs-27) dns-mode-soa-auto-increment-serial: safe...
    abf0f8666d * lisp/wdired.el: Clean out isearch-filter-predicate (bug#...
    c31c31e57f ; Spelling and URL fixes
    066aad7b9d Finish the documentation for c-noise-macro-{,with-parens-}...
    c8fcabf245 Correct regexp for flags in `format' doc string
    2e9a153b26 Moderate recommendation to escape '(' in doc strings
    d7cd4ab7d9 Objective C Mode: Make c-forward-type work with "unsigned ...
    1705e32ebc Fix help text about configure module support
    baca81e641 * doc/lispref/streams.texi (Output Functions): Improve ind...
    568a560fce Improve doc string of 'newline'
    7f50698505 Improve doc of eq on bignums etc.
    e5327a569c Do not refer to obsolete alias
    fd09196781 ; Clarify what time-stamp-active enables
    
    # Conflicts:
    #   etc/NEWS
---
 configure.ac               |  2 +-
 doc/lispref/numbers.texi   |  4 ++--
 doc/lispref/objects.texi   | 32 +++++++++++++++++---------------
 doc/lispref/streams.texi   |  1 +
 doc/lispref/tips.texi      | 27 +++++++++++++++------------
 doc/misc/cc-mode.texi      | 22 ++++++++++++----------
 etc/NEWS.27                |  4 ++++
 lisp/cedet/mode-local.el   |  2 +-
 lisp/erc/erc-pcomplete.el  |  2 +-
 lisp/progmodes/cc-langs.el |  5 ++---
 lisp/progmodes/cc-vars.el  | 15 +++++++++++----
 lisp/simple.el             |  7 ++++---
 lisp/textmodes/dns-mode.el |  1 +
 lisp/time-stamp.el         | 23 +++++++++++++++--------
 lisp/wdired.el             |  2 ++
 src/callproc.c             |  2 +-
 src/editfns.c              |  2 +-
 17 files changed, 91 insertions(+), 62 deletions(-)

diff --git a/configure.ac b/configure.ac
index 27e44da..f604acb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -461,7 +461,7 @@ OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings 
support])
 OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
 OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
 OPTION_DEFAULT_ON([zlib],[don't compile with zlib decompression support])
-OPTION_DEFAULT_ON([modules],[compile with dynamic modules support])
+OPTION_DEFAULT_ON([modules],[don't compile with dynamic modules support])
 OPTION_DEFAULT_ON([threads],[don't compile with elisp threading support])
 
 AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index e952980..c8941ea 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -39,8 +39,8 @@ numbers have a fixed amount of precision.
   Under the hood, though, there are two kinds of integers: smaller
 ones, called @dfn{fixnums}, and larger ones, called @dfn{bignums}.
 Some functions in Emacs accept only fixnums.  Also, while fixnums can
-always be compared for numeric equality with @code{eq}, bignums
-require more-heavyweight equality predicates like @code{eql}.
+be compared for numeric equality with @code{eq}, bignums require
+more-heavyweight equality predicates like @code{eql} and @code{=}.
 
   The range of values for bignums is limited by the amount of main
 memory, by machine characteristics such as the size of the word used
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 4242223..855dff2 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -266,8 +266,8 @@ but many machines provide a wider range.
   Bignums can have arbitrary precision.  Operations that overflow a
 fixnum will return a bignum instead.
 
-  Fixnums can be compared with @code{eq}, but bignums require
-@code{eql} or @code{=}.  To test whether an integer is a fixnum or a
+  All numbers can be compared with @code{eql} or @code{=}; fixnums can
+also be compared with @code{eq}.  To test whether an integer is a fixnum or a
 bignum, you can compare it to @code{most-negative-fixnum} and
 @code{most-positive-fixnum}, or you can use the convenience predicates
 @code{fixnump} and @code{bignump} on any object.
@@ -2167,17 +2167,20 @@ appropriate chapter describing the data type.
 This function returns @code{t} if @var{object1} and @var{object2} are
 the same object, and @code{nil} otherwise.
 
-If @var{object1} and @var{object2} are fixnums with the same value,
-they are considered to be the same object (i.e., @code{eq} returns
-@code{t}).  If @var{object1} and @var{object2} are symbols with the
+If @var{object1} and @var{object2} are symbols with the
 same name, they are normally the same object---but see @ref{Creating
-Symbols} for exceptions.  For other types (e.g., lists, vectors,
+Symbols} for exceptions.  For other non-numeric types (e.g., lists, vectors,
 strings), two arguments with the same contents or elements are not
 necessarily @code{eq} to each other: they are @code{eq} only if they
 are the same object, meaning that a change in the contents of one will
 be reflected by the same change in the contents of the other.
-For other types of objects whose contents cannot be changed (e.g.,
-bignums and floats), two arguments with the same contents might or might not be
+
+If @var{object1} and @var{object2} are numbers with differing types or values,
+then they cannot be the same object and @code{eq} returns @code{nil}.
+If they are fixnums with the same value,
+then they are the same object and @code{eq} returns @code{t}.
+If they were computed separately but happen to have the same value
+and the same non-fixnum numeric type, then they might or might not be
 the same object, and @code{eq} returns @code{t} or @code{nil}
 depending on whether the Lisp interpreter created one object or two.
 
@@ -2188,26 +2191,25 @@ depending on whether the Lisp interpreter created one 
object or two.
 @end group
 
 @group
-(eq 456 456)
+(eq ?A ?A)
      @result{} t
 @end group
 
 @group
 (eq 3.0 3.0)
      @result{} t @r{or} nil
-;; @r{The result is implementation-dependent.}
+;; @r{Equal floats may or may not be the same object.}
 @end group
 
 @group
-(eq "asdf" "asdf")
+(eq (make-string 3 ?A) (make-string 3 ?A))
      @result{} nil
 @end group
 
 @group
-(eq "" "")
-     @result{} t
-;; @r{This exception occurs because Emacs Lisp}
-;; @r{makes just one multibyte empty string, to save space.}
+(eq "asdf" "asdf")
+     @result{} t @r{or} nil
+;; @r{Equal string constants or may not be the same object.}
 @end group
 
 @group
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 6d0b4b0..d40ec8d 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -716,6 +716,7 @@ For example, if the current buffer name is @samp{foo},
 returns @code{"The buffer is foo"}.
 @end defmac
 
+@cindex pretty-printer
 @defun pp object &optional stream
 This function outputs @var{object} to @var{stream}, just like
 @code{prin1}, but does it in a prettier way.  That is, it'll
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index 4395069..0610f80 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -803,18 +803,6 @@ starting the sentence with lower-case ``t'', which could 
be somewhat
 distracting.
 
 @item
-If a line in a documentation string begins with an open-parenthesis,
-write a backslash before the open-parenthesis, like this:
-
-@example
-The argument FOO can be either a number
-\(a buffer position) or a string (a file name).
-@end example
-
-This prevents the open-parenthesis from being treated as the start of a
-defun (@pxref{Defuns,, Defuns, emacs, The GNU Emacs Manual}).
-
-@item
 Write documentation strings in the active voice, not the passive, and in
 the present tense, not the future.  For instance, use ``Return a list
 containing A and B.@:'' instead of ``A list containing A and B will be
@@ -849,6 +837,21 @@ The documentation string for a variable that is a 
yes-or-no flag should
 start with words such as ``Non-nil means'', to make it clear that
 all non-@code{nil} values are equivalent and indicate explicitly what
 @code{nil} and non-@code{nil} mean.
+
+@item
+If a line in a documentation string begins with an open-parenthesis,
+consider writing a backslash before the open-parenthesis, like this:
+
+@example
+The argument FOO can be either a number
+\(a buffer position) or a string (a file name).
+@end example
+
+This avoids a bug in Emacs versions older than 27.1, where the
+@samp{(} was treated as the start of a defun
+(@pxref{Defuns,, Defuns, emacs, The GNU Emacs Manual}).
+If you do not anticipate anyone editing your code with older Emacs
+versions, there is no need for this work-around.
 @end itemize
 
 @node Comment Tips
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 2c49a90..544ff85 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -7095,22 +7095,24 @@ constitute noise macros.
 @vindex noise-macro-names @r{(c-)}
 This variable is a list of names of noise macros which never have
 parenthesized arguments.  Each element is a string, and must be a
-valid identifier.  An element in @code{c-noise-macro-names} must not
-also be in @code{c-noise-macro-with-parens-names}.  Such an element is
-treated as whitespace by @ccmode{}.
+valid identifier.  Alternatively, the variable may be a regular
+expression which matches the names of such macros.  Such a noise macro
+is treated as whitespace by @ccmode{}.  It must not also be in, or be
+matched by @code{c-noise-macro-with-parens-names}.
 @end defopt
 
 @defopt c-noise-macro-with-parens-names
 @vindex noise-macro-with-parens-names @r{(c-)}
 This variable is a list of names of noise macros which optionally have
 arguments in parentheses.  Each element of the list is a string, and
-must be a valid identifier.  An element in
-@code{c-noise-macro-with-parens-names} must not also be in
-@code{c-noise-macro-names}.  For performance reasons, such an element,
-together with the optional parenthesized arguments, is specially
-handled, but it is only handled when used in declaration
-contexts@footnote{If this restriction causes your project
-difficulties, please get in touch with @email{bug-cc-mode@@gnu.org}.}.
+must be a valid identifier.  Alternatively, the variable may be a
+regular expression which matches the names of such macros.  Such a
+noise macro must not also be in, or be matched by
+@code{c-noise-macro-names}.  For performance reasons, such a noise
+macro, including any parenthesized arguments, is specially handled,
+but it is only handled when used in declaration contexts@footnote{If
+this restriction causes your project difficulties, please get in touch
+with @email{bug-cc-mode@@gnu.org}.}.
 
 The two compiler directives @code{__attribute__} and @code{__declspec}
 have traditionally been handled specially in @ccmode{}; for example
diff --git a/etc/NEWS.27 b/etc/NEWS.27
index 792851e..433f1f7 100644
--- a/etc/NEWS.27
+++ b/etc/NEWS.27
@@ -3338,6 +3338,10 @@ versions.
 'forward-comment', 'scan-sexps', and 'forward-sexp' when parsing backward.
 The new variable 'comment-use-syntax-ppss' can be set to nil to recover
 the old behavior if needed.
+This also means that there is no longer any need to precede opening
+brackets at the start of a line inside documentation strings with a
+backslash, although there is no harm in doing so to make the code
+easier to edit with an older Emacs version.
 
 ---
 ** The 'server-name' and 'server-socket-dir' variables are set when a
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
index bd02a4f..a6e143c 100644
--- a/lisp/cedet/mode-local.el
+++ b/lisp/cedet/mode-local.el
@@ -588,7 +588,7 @@ OVERARGS is a list of arguments passed to the override and
 (defmacro define-mode-local-override
   (name mode args docstring &rest body)
   "Define a mode specific override of the function overload NAME.
-Has meaning only if NAME has been created with `define-overload'.
+Has meaning only if NAME has been created with `define-overloadable-function'.
 MODE is the major mode this override is being defined for.
 ARGS are the function arguments, which should match those of the same
 named function created with `define-overload'.
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index 457fd07..65b0f66 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -5,7 +5,7 @@
 ;; Author: Sacha Chua <address@hidden>
 ;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, convenience
-;; URL: http://wwws.emacswiki.org/emacs/ErcCompletion
+;; URL: https://www.emacswiki.org/emacs/ErcCompletion
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index b50e7e7..715af32 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -2055,11 +2055,10 @@ the appropriate place for that."
   "Keywords that might act as prefixes for primitive types.  Assumed to
 be a subset of `c-primitive-type-kwds'."
   t       nil
-  (c c++) '("long" "short" "signed" "unsigned")
-  idl     '("long" "unsigned"
+  (c c++ objc) '("long" "short" "signed" "unsigned")
+  idl    '("long" "unsigned"
            ;; In CORBA PSDL:
            "strong"))
-
 (c-lang-defconst c-typedef-kwds
   "Prefix keyword(s) like \"typedef\" which make a type declaration out
 of a variable declaration."
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 8618724..556ff60 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -1657,9 +1657,10 @@ white space either before or after the operator, but not 
both."
 
 (defcustom c-noise-macro-names nil
   "A list of names of macros which expand to nothing, or compiler extensions
-like \"????\" which are syntactic noise.  Such a macro/extension is complete in
-itself, never having parentheses.  All these names must be syntactically valid
-identifiers.
+like \"INLINE\" which are syntactic noise.  Such a macro/extension is complete
+in itself, never having parentheses.  All these names must be syntactically
+valid identifiers.  Alternatively, this variable may be a regular expression
+which matches the names of such macros.
 
 If you change this variable's value, call the function
 `c-make-noise-macro-regexps' to set the necessary internal variables (or do
@@ -1673,7 +1674,13 @@ this implicitly by reinitializing C/C++/Objc Mode on any 
buffer)."
 (defcustom c-noise-macro-with-parens-names nil
   "A list of names of macros (or compiler extensions like \"__attribute__\")
 which optionally have arguments in parentheses, and which expand to nothing.
-These are recognized by CC Mode only in declarations."
+All these names must be syntactically valid identifiers.  These are recognized
+by CC Mode only in declarations.  Alternatively, this variable may be a
+regular expression which matches the names of such macros.
+
+If you change this variable's value, call the function
+`c-make-noise-macro-regexps' to set the necessary internal variables (or do
+this implicitly by reinitializing C/C++/Objc Mode on any buffer)."
   :version "26.1"
   :type '(repeat :tag "List of names (possibly empty)" string)
   :group 'c)
diff --git a/lisp/simple.el b/lisp/simple.el
index 8be2774..2ec3da6 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -503,9 +503,7 @@ This hook is run by `delete-selection-uses-region-p', which 
see.")
 
 (defun newline (&optional arg interactive)
   "Insert a newline, and move to left margin of the new line if it's blank.
-If option `use-hard-newlines' is non-nil, the newline is marked with the
-text-property `hard'.
-With ARG, insert that many newlines.
+With prefix argument ARG, insert that many newlines.
 
 If `electric-indent-mode' is enabled, this indents the final new line
 that it adds, and reindents the preceding line.  To just insert
@@ -514,6 +512,9 @@ a newline, use \\[electric-indent-just-newline].
 If `auto-fill-mode' is enabled, this may cause automatic line
 breaking of the preceding line.  A non-nil ARG inhibits this.
 
+If `use-hard-newlines' is enabled, the newline is marked with the
+text-property `hard'.
+
 A non-nil INTERACTIVE argument means to run the `post-self-insert-hook'."
   (interactive "*P\np")
   (barf-if-buffer-read-only)
diff --git a/lisp/textmodes/dns-mode.el b/lisp/textmodes/dns-mode.el
index 3bdea94..6dfea8f 100644
--- a/lisp/textmodes/dns-mode.el
+++ b/lisp/textmodes/dns-mode.el
@@ -134,6 +134,7 @@ manually with \\[dns-mode-soa-increment-serial]."
   :type '(choice (const :tag "Always" t)
                 (const :tag "Ask" ask)
                 (const :tag "Never" nil))
+  :safe 'symbolp
   :group 'dns-mode)
 
 ;; Syntax table.
diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el
index a09294d..7c64f29 100644
--- a/lisp/time-stamp.el
+++ b/lisp/time-stamp.el
@@ -94,6 +94,13 @@ edited by older versions of Emacs also, do not use this 
format yet."
 (defcustom time-stamp-active t
   "Non-nil to enable time-stamping of buffers by \\[time-stamp].
 Can be toggled by \\[time-stamp-toggle-active].
+
+This option does not affect when `time-stamp' is run, only what it
+does when it runs.  To activate automatic time-stamping of buffers
+when they are saved, either add this line to your init file:
+    (add-hook \\='before-save-hook \\='time-stamp)
+or customize option `before-save-hook'.
+
 See also the variable `time-stamp-warn-inactive'."
   :type 'boolean
   :group 'time-stamp)
@@ -269,7 +276,7 @@ time-stamped file itself.")
 A template in a file can be automatically updated with a new time stamp
 every time you save the file.  Add this line to your init file:
     (add-hook \\='before-save-hook \\='time-stamp)
-or customize `before-save-hook' through Custom.
+or customize option `before-save-hook'.
 Normally the template must appear in the first 8 lines of a file and
 look like one of the following:
       Time-stamp: <>
@@ -606,24 +613,24 @@ and all `time-stamp-format' compatibility."
         ((eq cur-char ?F)              ;buffer-file-name, full path
          (or buffer-file-name
              time-stamp-no-file))
-        ((eq cur-char ?s)              ;system name
+        ((eq cur-char ?s)              ;system name, legacy
          (system-name))
-        ((eq cur-char ?u)              ;user name
+        ((eq cur-char ?u)              ;user name, legacy
          (user-login-name))
-        ((eq cur-char ?U)              ;user full name
+        ((eq cur-char ?U)              ;user full name, legacy
          (user-full-name))
-        ((eq cur-char ?l)              ;logname (undocumented user name alt)
+        ((eq cur-char ?l)              ;login name
          (user-login-name))
-        ((eq cur-char ?L)              ;(undocumented alt user full name)
+        ((eq cur-char ?L)              ;full name of logged-in user
          (user-full-name))
         ((eq cur-char ?h)              ;mail host name
          (or mail-host-address (system-name)))
-        ((eq cur-char ?q)              ;(undocumented unqual hostname)
+        ((eq cur-char ?q)              ;unqualified host name
          (let ((qualname (system-name)))
            (if (string-match "\\." qualname)
                (substring qualname 0 (match-beginning 0))
              qualname)))
-        ((eq cur-char ?Q)              ;(undocumented fully-qualified host)
+        ((eq cur-char ?Q)              ;fully-qualified host name
          (system-name))
         ))
         (and (numberp field-result)
diff --git a/lisp/wdired.el b/lisp/wdired.el
index d470e0a..d91853e 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -357,6 +357,8 @@ non-nil means return old filename."
     (remove-text-properties
      (point-min) (point-max)
      '(front-sticky nil rear-nonsticky nil read-only nil keymap nil)))
+  (remove-function (local 'isearch-filter-predicate)
+                   #'wdired-isearch-filter-read-only)
   (use-local-map dired-mode-map)
   (force-mode-line-update)
   (setq buffer-read-only t)
diff --git a/src/callproc.c b/src/callproc.c
index 6bd4ae2..07dcc4c 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -794,7 +794,7 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int 
filefd,
              signal_after_change hasn't.  A continue statement
              restarts the enclosing while (1) loop.  A second,
              unwanted, call to `prepare_to_modify_buffer' is inhibited
-             by the test perpared_pos < PT.  The data are inserted
+            by the test prepared_pos < PT.  The data are inserted
              again, and this time signal_after_change gets called,
              balancing the previous call to prepare_to_modify_buffer.  */
           if ((prepared_pos < PT) && nread)
diff --git a/src/editfns.c b/src/editfns.c
index 4e35784..3f1b3aa 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3031,7 +3031,7 @@ width, and precision specifiers, as follows:
   %<field><flags><width><precision>character
 
 where field is [0-9]+ followed by a literal dollar "$", flags is
-[+ #-0]+, width is [0-9]+, and precision is a literal period "."
+[+ #0-]+, width is [0-9]+, and precision is a literal period "."
 followed by [0-9]+.
 
 If a %-sequence is numbered with a field with positive value N, the



reply via email to

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