Unverified Commit 1823349e authored by Philip Kaludercic's avatar Philip Kaludercic
Browse files

Merge remote-tracking branch 'origin/master' into feature/package+vc

parents faa7f03b 829b131e
Pipeline #19891 failed with stages
in 42 minutes and 54 seconds
2022-07-31 Eli Zaretskii <eliz@gnu.org>
* src/lisp.h (CHECK_INTEGER): Fix the predicate. (Bug#56856)
2022-07-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of column-related functions
* doc/lispref/text.texi (Primitive Indent, Columns):
* src/indent.c (Fcurrent_indentation, Fmove_to_column): Document
that column counting ignores invisible text. (Bug#56837)
2022-07-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* src/macfont.m (macfont_open): Initialize font->space_width. (Bug#56808)
2022-07-30 Eli Zaretskii <eliz@gnu.org>
Improve indexing of keymap variables
* doc/lispref/maps.texi (Standard Keymaps):
* doc/lispref/display.texi (Button Buffer Commands)
(Button Properties):
* doc/lispref/keymaps.texi (Translation Keymaps): Improve indexing
of keymaps. (Bug#56816)
2022-07-29 Alan Mackenzie <acm@muc.de>
CC Mode: fontify variables/functions after line comments ending in spaces
* lisp/progmodes/cc-engine.el (c-forward-comment-minus-1): Take account of
spaces preceding a linefeed when scanning a putative line comment end.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Bump Emacs version to 28.1.91
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.1.91.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Update ChangeLog and AUTHORS for 28.1.91 pretest
* ChangeLog.3:
* etc/AUTHORS: Update.
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Revert the `...' documentation back to actual usage
......@@ -236558,7 +236607,7 @@
This file records repository revisions from
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
commit 05df70e755f72b7a4c7b7d94ca2349f1c5c67968 (inclusive).
commit 78759ddcb0fc7dd75a7a8edfb2c19dc2f1d86ee2 (inclusive).
See ChangeLog.2 for earlier changes.
;; Local Variables:
......@@ -455,18 +455,11 @@ lisp: src
lib lib-src lisp nt: Makefile
$(MAKE) -C $@ all
# Ideally, VCSWITNESS should be a file that is modified whenever the
# repository registers a commit from either a local checkin or a
# repository pull. In git there is no single file that guarantees
# this, but the local log for the current head should be close enough.
# Pass an unexpanded $srcdir to src's Makefile, which then
# expands it using its own value of srcdir (which points to the
# source directory of src/).
dirstate = .git/logs/HEAD
VCSWITNESS = $(if $(wildcard $(srcdir)/$(dirstate)),$$(srcdir)/../$(dirstate))
src: Makefile
blessmail: Makefile src
......@@ -137,6 +137,7 @@ Andrea Corallo
Stefan Kangas
Po Lu
The Haiku port:
......@@ -290,13 +290,7 @@ while (my $file = <FIND>) {
my @pkgs;
if (-d "../xemacs-packages") {
@pkgs = qw (libs/edebug libs/xemacs-base comm/eudc oa/edit-utils);
} else {
@pkgs = ();
for (@pkgs) { s@^@../xemacs-packages/@; }
my @pkgs = ();
open (FIND, "find lisp @pkgs -name '*.el' -print |") or die;
while (my $file = <FIND>) {
my $contents = FileContents $file;
......@@ -36,6 +36,7 @@ SCRAPE|\
INFO.*Scraping.*[.] ?\$|\
^Waiting for git|\
^Finding pointers|\
^Using load-path|\
......@@ -183,9 +183,10 @@ General steps (for each step, check for possible errors):
yourself, find it at <https://alpha.gnu.org/gnu/emacs/pretest>.
Releases are of course at <https://ftp.gnu.org/pub/gnu/emacs/>.
./admin/diff-tar-files emacs-OLD.tar.gz emacs-NEW.tar.gz
./admin/diff-tar-files emacs-OLD.tar emacs-NEW.tar
Alternatively, if you want to use the compressed tarballs (which
diff-tar-files doesn't understand):
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
......@@ -203,7 +204,7 @@ General steps (for each step, check for possible errors):
The output of this command might be easier to compare to the
tarball than the one you get from find.
7. tar -xf emacs-NEW.tar; cd emacs-NEW
7. tar xf emacs-NEW.tar; cd emacs-NEW
./configure --prefix=/tmp/emacs && make check && make install
Use 'script' or M-x compile to save the compilation log in
......@@ -288,7 +289,7 @@ General steps (for each step, check for possible errors):
https://ftp.gnu.org/gnu/emacs/ for a release.
Download them and check the signatures and SHA1/SHA256 checksums.
Check they build.
Check they build (./configure --with-native-compilation).
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
For a pretest, also bcc: platform-testers@gnu.org.
......@@ -309,8 +310,8 @@ General steps (for each step, check for possible errors):
sha1sum emacs-NEW.tar.xz
sha256sum emacs-NEW.tar.xz
You can optionally sign the announcement email, probably using the
same PGP key that you used for signing the tarball.
You can optionally sign the announcement email, preferably using
the same PGP key that you used for signing the tarball.
(Use e.g. `M-x mml-secure-message-sign' in `message-mode' to sign
an email.)
......@@ -4,7 +4,7 @@
## Copyright (C) 2011-2022 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org>
## Maintainer: emacs-devel@gnu.org
## Maintainer: Stefan Kangas <stefan@marxist.se>
## This file is part of GNU Emacs.
......@@ -81,7 +81,6 @@ ldefs_flag=1
## Parameters.
sources="configure.ac lib/Makefile.am"
## Files to copy into autogendir.
......@@ -177,8 +176,6 @@ modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp}) || die
echo "Running 'make maintainer-clean'..."
make maintainer-clean #|| die "Cleaning error"
rm -f $ldefs_in
......@@ -289,18 +286,13 @@ make -C src "$@" bootstrap-emacs || die "make src error"
echo "Running lisp/ make..."
make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error"
make -C lisp "$@" ldefs-boot.el EMACS=../src/bootstrap-emacs || die "make src error"
## Ignore comment differences.
[ ! "$lboot_flag" ] || \
diff -q -I '^;' $ldefs_in $ldefs_out || \
cp $ldefs_in $ldefs_out || die "cp ldefs_boot error"
# Refresh the prebuilt grammar-wy.el
make -C admin/grammars/ ../../$grammar_in
make -C admin/grammars/ ../../$grammar_in EMACS=../../src/bootstrap-emacs
cp $grammar_in $grammar_out || die "cp grm_wy_boot error"
......@@ -4675,6 +4675,10 @@ if test "${HAVE_X11}" = "yes"; then
[Define to 1 if the X Synchronization Extension is available.])
LIBS="-lXext $LIBS" # Set this temporarily for AC_CHECK_FUNC
AC_CHECK_FUNCS([XSyncTriggerFence]) # Check for version 3.1
......@@ -2452,6 +2452,9 @@ keys which send non-@acronym{ASCII} characters.
Write a single-quote (@code{'}) followed by the Lisp object you want.
@end table
For more information on the Emacs Lisp syntax, @pxref{Introduction,,,
elisp, The Emacs Lisp Reference Manual}.
@node Init Examples
@subsection Init File Examples
......@@ -228,8 +228,9 @@ customizing the @code{isearch-wrap-pause} user option. If it is
@code{t} (the default), signal an error. (Repeating the search will
wrap around.) If @code{no}, issue a @code{ding} and wrap immediately
after reaching the last match. If @code{no-ding}, wrap immediately,
but don't @code{ding}. Finally, if @code{nil}, never wrap, but just
stop at the last match.
but don't @code{ding}. With the values @code{no} and @code{no-ding}
the search will try to wrap around also on typing a character.
Finally, if @code{nil}, never wrap, but just stop at the last match.
@cindex search ring
@findex isearch-ring-advance
......@@ -2704,7 +2704,7 @@ Return the timestamp in @var{position}. This is the time at which the
event occurred, in milliseconds. Such a timestamp is reported
relative to an arbitrary starting time that varies according to the
window system in use. On the X Window System, for example, it is the
number of miliseconds since the X server was started.
number of milliseconds since the X server was started.
@end defun
These functions compute a position list given particular buffer
......@@ -77,6 +77,7 @@ debugger recursively. @xref{Recursive Editing}.
* Error Debugging:: Entering the debugger when an error happens.
* Debugging Redisplay:: Getting backtraces from redisplay errors.
* Infinite Loops:: Stopping and debugging a program that doesn't exit.
* Function Debugging:: Entering it when a certain function is called.
* Variable Debugging:: Entering it when a variable is modified.
......@@ -105,6 +106,10 @@ debugger, set the variable @code{debug-on-error} to non-@code{nil}.
(The command @code{toggle-debug-on-error} provides an easy way to do
Note that, for technical reasons, you cannot use the facilities
defined in this subsection to debug errors in Lisp that the redisplay
code has invoked. @xref{Debugging Redisplay}, for help with these.
@defopt debug-on-error
This variable determines whether the debugger is called when an error
is signaled and not handled. If @code{debug-on-error} is @code{t},
......@@ -213,6 +218,45 @@ file, use the option @samp{--debug-init}. This binds
bypasses the @code{condition-case} which normally catches errors in the
init file.
@node Debugging Redisplay
@subsection Debugging Redisplay Errors
@cindex redisplay errors
@cindex debugging redisplay errors
When an error occurs in Lisp code which redisplay has invoked, Emacs's
usual debugging mechanisms are unusable, for technical reasons. This
subsection describes how to get a backtrace from such an error, which
should be helpful in debugging it.
These directions apply to Lisp forms used, for example, in
@code{:eval} mode line constructs (@pxref{Mode Line Data}), and in all
hooks invoked from redisplay, such as:
@code{fontification-functions} (@pxref{Auto Faces}).
@code{window-scroll-functions} (@pxref{Window Hooks}).
@end itemize
Note that if you have had an error in a hook function called from
redisplay, the error handling might have removed this function from
the hook. You will thus need to reinitialize that hook somehow,
perhaps with @code{add-hook}, to be able to replay the bug.
To generate a backtrace in these circumstances, set the variable
@code{backtrace-on-redisplay-error} to non-@code{nil}. When the error
occurs, Emacs will dump the backtrace to the buffer
@file{*Redisplay-trace*}, but won't automatically display it in a
window. This is to avoid needlessly corrupting the redisplay you are
debugging. You will thus need to display the buffer yourself, with a
command such as @code{switch-to-buffer-other-frame} @key{C-x 5 b}.
@defvar backtrace-on-redisplay-error
Set this variable to non-@code{nil} to enable the generation of a
backtrace when an error occurs in any Lisp called from redisplay.
@end defvar
@node Infinite Loops
@subsection Debugging Infinite Loops
@cindex infinite loops
......@@ -8596,9 +8596,9 @@ Characters of Unicode General Category [Cf], such as U+200E
images, such as U+00AD @sc{soft hyphen}.
@item variation-selectors
Unicode VS-1 through VS-16 (U+FE00 through U+FE0F), which are used to
select between different glyphs for the same codepoints (typically
Unicode VS-1 through VS-256 (U+FE00 through U+FE0F and U+E0100 through
U+E01EF), which are used to select between different glyphs for the same
codepoints (typically emojis).
@item no-font
Characters for which there is no suitable font, or which cannot be
......@@ -2180,10 +2180,20 @@ If non-@code{nil}, the frame is visible on all virtual desktops on systems
with virtual desktops.
@vindex shaded@r{, a frame parameter}
@item sticky
@item shaded
If non-@code{nil}, tell the window manager to display the frame in a
way that its contents are hidden, leaving only the title bar.
@vindex use-frame-synchronization@r{, a frame parameter}
@item use-frame-synchronization
If non-@code{nil}, synchronize the frame redisplay with the refresh
rate of the monitor to avoid graphics tearing. At present, this is
only implemented on Haiku and the X window system inside no-toolkit
and X toolkit builds, does not work correctly with toolkit scroll
bars, and requires a compositing manager supporting the relevant
display synchronization protocols. The @code{synchronizeResize} X
resource must also be set to the string @code{"extended"}.
@vindex inhibit-double-buffering@r{, a frame parameter}
@item inhibit-double-buffering
If non-@code{nil}, the frame is drawn to the screen without double
......@@ -2498,6 +2498,10 @@ the current buffer.
Specify that this command is meant to be applicable for @var{modes}
@item (interactive-args @var{arg} ...)
Specify the arguments that should be stored for @code{repeat-command}.
Each @var{arg} is on the form @code{@var{argument-name} @var{form}}.
@item (pure @var{val})
If @var{val} is non-@code{nil}, this function is @dfn{pure}
(@pxref{What Is a Function}). This is the same as the @code{pure}
......@@ -374,7 +374,8 @@ number of keys. Here's a very basic example:
@end lisp
This function creates a new sparse keymap, defines the keystrokes in
@var{pairs}, and returns the new keymap.
@var{pairs}, and returns the new keymap. It signals an error if there
are duplicate key bindings in @var{pairs}.
@var{pairs} is a list of alternating key bindings and key definitions,
as accepted by @code{keymap-set}. In addition, the key can be the
......@@ -438,7 +439,8 @@ variable. This is what virtually all modes do---a mode called
This macro defines @var{name} as a variable, passes @var{options}
and @var{pairs} to @code{define-keymap}, and uses the result as the
default value for the variable.
default value for the variable. It signals an error if there are
duplicate key bindings in @var{pairs}.
@var{options} is like the keywords in @code{define-keymap}, but
there's an additional @code{:doc} keyword that provides the doc
......@@ -698,14 +698,13 @@ Switch to *doctor* buffer and start giving psychotherapy.
@cindex @code{fn} in function's documentation string
The backslash and newline immediately following the double-quote are a
convention used only in the preloaded uncompiled Lisp files such as
@file{loaddefs.el}; they tell @code{make-docfile} to put the
documentation string in the @file{etc/DOC} file. @xref{Building Emacs}.
See also the commentary in @file{lib-src/make-docfile.c}. @samp{(fn)}
in the usage part of the documentation string is replaced with the
function's name when the various help functions (@pxref{Help
Functions}) display it.
While the @file{loaddefs.el} isn't for editing, we try to keep it
somewhat readable for people. For instance, control characters in
@code{defvar} values are escaped, and we insert a backslash and
newline immediately following the double-quote of the doc string to
keep the line length down. @samp{(fn)} in the usage part of the
documentation string is replaced with the function's name when the
various help functions (@pxref{Help Functions}) display it.
If you write a function definition with an unusual macro that is not
one of the known and recognized function definition methods, use of an
......@@ -767,7 +766,7 @@ the corresponding list of files to load for it. Entries to this
mapping are added by calls to @code{register-definition-prefixes}
which are generated by @code{loaddefs-generate}
(@pxref{Autoload}). Files which don't contain any definitions worth
loading (test files, for examples), should set
loading (test files, for example), should set
@code{autoload-compute-prefixes} to @code{nil} as a file-local
......@@ -1032,7 +1031,7 @@ with a call to @code{provide}. The order of the elements in the
@cindex symbol, where defined
@cindex where was a symbol defined
@defun symbol-file symbol &optional type
@defun symbol-file symbol &optional type native-p
This function returns the name of the file that defined @var{symbol}.
If @var{type} is @code{nil}, then any kind of definition is acceptable.
If @var{type} is @code{defun}, @code{defvar}, or @code{defface}, that
......@@ -1043,6 +1042,14 @@ The value is normally an absolute file name. It can also be @code{nil},
if the definition is not associated with any file. If @var{symbol}
specifies an autoloaded function, the value can be a relative file name
without extension.
If the optional third argument @var{native-p} is non-@code{nil}, and
Emacs was built with native compilation support (@pxref{Native
Compilation}), this function will try to find the @file{.eln} file
that defined @var{symbol}, instead of the @file{.elc} or @file{.el}
file. If such a @file{.eln} file is found and is not outdated, the
function will return its absolute file name; otherwise it will report
the name of either the source or the byte-compiled file.
@end defun
The basis for @code{symbol-file} is the data in the variable
......@@ -1356,11 +1356,10 @@ the conventions listed above:
;; @r{Create the keymap for this mode.}
(defvar-keymap text-mode-map
"C-M-i" #'ispell-complete-word
"Keymap for `text-mode'.
Many other modes, such as `mail-mode', `outline-mode' and
`indented-text-mode', inherit all the commands defined in this map.")
:doc "Keymap for `text-mode'.
Many other modes, such as `mail-mode' and `outline-mode', inherit all
the commands defined in this map."
"C-M-i" #'ispell-complete-word)
@end group
@end smallexample
......@@ -1541,7 +1541,7 @@ Year numbers count since the year 1 BCE, and do not skip zero
as traditional Gregorian years do; for example, the year number
@minus{}37 represents the Gregorian year 38 BCE@.
@defun time-convert time &optional form
@defun time-convert time form
This function converts a time value into a Lisp timestamp.
The optional @var{form} argument specifies the timestamp form to be
......@@ -1554,7 +1554,7 @@ representing the timestamp; for example, it is treated as 1000000000
if @var{time} is @code{nil} and the platform timestamp has nanosecond
resolution. If @var{form} is @code{list}, this function returns an
integer list @code{(@var{high} @var{low} @var{micro} @var{pico})}.
Although an omitted or @code{nil} @var{form} currently acts like
Although a @code{nil} @var{form} currently acts like
@code{list}, this is planned to change in a future Emacs version, so
callers requiring list timestamps should pass @code{list} explicitly.
......@@ -2067,7 +2067,12 @@ This returns @code{t} if the time value @var{t1} is less than the time value
@defun time-equal-p t1 t2
This returns @code{t} if the two time values @var{t1} and @var{t2} are
equal. The result is @code{nil} if either argument is a NaN.
For the purpose of comparison, a @code{nil} argument represents the
current time with infinite resolution, so this function returns
@code{nil} if one argument is @code{nil} and the other is not, and
callers can therefore use @code{nil} to represent an unknown time
value that does not equal any timestamp.
@end defun
@defun time-subtract t1 t2
......@@ -995,7 +995,7 @@ the entire buffer regardless of any narrowing.
types of text, consider using an alternative facility described in
@ref{Swapping Text}.
@deffn Command narrow-to-region start end &optional lock
@deffn Command narrow-to-region start end
This function sets the accessible portion of the current buffer to start
at @var{start} and end at @var{end}. Both arguments should be character
......@@ -1003,10 +1003,11 @@ positions.
In an interactive call, @var{start} and @var{end} are set to the bounds
of the current region (point and the mark, with the smallest first).
When @var{lock} is non-@code{nil}, calls to @code{widen}, or to
@code{narrow-to-region} with an optional argument @var{lock}
@code{nil}, do not produce any effect until the end of the current
body form.
Note that, in rare circumstances, Emacs may decide to leave, for
performance reasons, the accessible portion of the buffer unchanged
after a call to @code{narrow-to-region}. This can happen when a Lisp
program is called via low-level hooks, such as
@code{jit-lock-functions}, @code{post-command-hook}, etc.
@end deffn
@deffn Command narrow-to-page &optional move-count
......@@ -1032,9 +1033,11 @@ It is equivalent to the following expression:
@end example
@end deffn
However, when @code{widen} is called inside a body form in which
@code{narrow-to-region} was called with an optional argument
@code{lock} non-@code{nil}, it does not produce any effect.
Note that, in rare circumstances, Emacs may decide to leave, for
performance reasons, the accessible portion of the buffer unchanged
after a call to @code{widen}. This can happen when a Lisp program is
called via low-level hooks, such as @code{jit-lock-functions},
@code{post-command-hook}, etc.
@defun buffer-narrowed-p
This function returns non-@code{nil} if the buffer is narrowed, and
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment