[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