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
This commit is contained in:
Glenn Morris 2020-01-28 07:50:22 -08:00
commit 60a3c5d56c
17 changed files with 91 additions and 62 deletions

View file

@ -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],

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -802,18 +802,6 @@ explicitly what constitutes truth. The word ``return'' avoids
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
@ -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

View file

@ -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

View file

@ -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

View file

@ -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'.

View file

@ -5,7 +5,7 @@
;; Author: Sacha Chua <sacha@free.net.ph>
;; Maintainer: Amin Bandali <mab@gnu.org>
;; Keywords: comm, convenience
;; URL: http://wwws.emacswiki.org/emacs/ErcCompletion
;; URL: https://www.emacswiki.org/emacs/ErcCompletion
;; This file is part of GNU Emacs.

View file

@ -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."

View file

@ -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)

View file

@ -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)

View file

@ -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.

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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