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 fixes066aad7b9d
Finish the documentation for c-noise-macro-{,with-parens-}...c8fcabf245
Correct regexp for flags in `format' doc string2e9a153b26
Moderate recommendation to escape '(' in doc stringsd7cd4ab7d9
Objective C Mode: Make c-forward-type work with "unsigned ...1705e32ebc
Fix help text about configure module supportbaca81e641
* 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 aliasfd09196781
; Clarify what time-stamp-active enables # Conflicts: # etc/NEWS
This commit is contained in:
commit
60a3c5d56c
17 changed files with 91 additions and 62 deletions
|
@ -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],
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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."
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue