Alan Third [Fri, 8 Sep 2023 18:33:06 +0000 (19:33 +0100)]
Fix crash on child frame creation (bug#65817)
* src/nsterm.m ([EmacsView initFrameFromEmacs:]): Reorder the way the
frame and layers are created.
([EmacsView makeBackingLayer]): Change to the newly renamed method
below.
([EmacsLayer initWithColorSpace:doubleBuffered:]):
([EmacsLayer initWithDoubleBuffered:]): Rename the method and remove
the colorspace argument as it's no longer able to be set on initial
creation.
* src/nsterm.h: Use new method prototype.
Alan Third [Sun, 23 Jul 2023 11:00:30 +0000 (12:00 +0100)]
Simplify the EmacsLayer double buffering code (bug#63187)
Stephen Berman [Mon, 11 Sep 2023 14:15:29 +0000 (16:15 +0200)]
Avoid confusing message in Ibuffer (bug#64230)
* lisp/ibuffer.el (ibuffer-map-lines): With `ibuffer-auto-mode'
enabled, Ibuffer counts the automatically popped up (and hence not
user-marked) buffer "*Ibuffer confirmation*". Since Ibuffer
reports how many user-marked buffers were acted upon, and in this
case the reported count would be too high by one, decrement the
count to avoid the confusing message.
Gerd Möllmann [Mon, 11 Sep 2023 13:02:50 +0000 (15:02 +0200)]
Eglot support for objc-mode
* lisp/progmodes/eglot.el (eglot-server-programs): Add objc-mode to
the list containing c-mode.
Michael Albinus [Mon, 11 Sep 2023 11:51:58 +0000 (13:51 +0200)]
New command tramp-revert-buffer-with-sudo
* doc/misc/tramp.texi (Ad-hoc multi-hops):
Document tramp-file-name-with-method and tramp-revert-buffer-with-sudo.
* etc/NEWS: New command tramp-revert-buffer-with-sudo.
* lisp/net/tramp-cmds.el (dired-advertise, dired-unadvertise): Declare.
(tramp-dired-buffer-p, tramp-remote-process-p): Rename.
(tramp-file-name-with-method): New defcustom.
(tramp-file-name-with-sudo, tramp-revert-buffer-with-sudo): New defuns.
Po Lu [Mon, 11 Sep 2023 11:45:58 +0000 (19:45 +0800)]
Provide an option to disable font instruction code execution
* etc/PROBLEMS: Mention instruction code woes and illustrate how
to circumvent them.
* src/sfntfont.c (sfntfont_setup_interpreter): Respect
Vsfnt_uninstructable_family_regexp.
(syms_of_sfntfont) <Vsfnt_uninstructable_family_regexp>: New
option.
Po Lu [Mon, 11 Sep 2023 07:41:07 +0000 (15:41 +0800)]
Expunge another instance of ``allows to''
* etc/NEWS (Tramp) <tramp-cleanup-some-buffers>: Reword and
rephrase to avoid ``allows to''.
Po Lu [Mon, 11 Sep 2023 04:56:37 +0000 (12:56 +0800)]
Respect vertical centering preferences under Android
* src/sfntfont.c (sfntfont_open): Match XLFD name against
Vvertical_centering_font_regexp; if they agree, set
font->vertical_centering. Also set a suitable full name.
F. Jason Park [Mon, 11 Sep 2023 03:44:49 +0000 (20:44 -0700)]
; * lisp/erc/erc.el (erc-check-text-conversion): Try fboundp.
F. Jason Park [Mon, 11 Sep 2023 02:29:09 +0000 (19:29 -0700)]
; Add newline to erc--scrolltobottom-window-info
* lisp/erc/erc-goodies.el (erc--scrolltobottom-window-info): Add
`newline'. (Bug#64855)
* lisp/erc/erc.el (erc-check-text-conversion): Quote variable.
Po Lu [Mon, 11 Sep 2023 01:32:44 +0000 (09:32 +0800)]
Properly set text conversion style within ERC buffers
* lisp/erc/erc.el (erc-mode): Register
`erc-check-text-conversion' as a local post command hook.
(set-text-conversion-style): New function. Detect if point is
within the input prompt, then enable or disable text conversion
correspondingly.
F. Jason Park [Sat, 22 Jul 2023 07:46:44 +0000 (00:46 -0700)]
Consider all windows in erc-scrolltobottom-mode
* etc/ERC-NEWS: Add entry for option `erc-scrolltobottom-all', and
mention explicit hook-depth intervals reserved by ERC.
* lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth on
`pre-command-hook' from 91 to 80.
* lisp/erc/erc-goodies.el (erc-input-line-position): Mention secondary
role when new option `erc-scroll-to-bottom-relaxed' is non-nil.
(erc-scrolltobottom-all): New option that decides whether module
`scrolltobottom' affects all windows or just the selected one, as it
always has.
(erc-scrolltobottom-relaxed): New option to leave the prompt
stationary instead of forcing it to the bottom of the window.
(erc-scrolltobottom-mode, erc-scrolltobottom-enable,
erc-scrolltobottom-disable): Use `erc--scrolltobottom-setup' instead
of `erc-add-scroll-to-bottom' for adding and removing local hooks and
instead of ranging over buffers when removing them. Also add and
remove new hook members when `erc-scrolltobottom-all' is non-nil.
(erc--scrolltobottom-relaxed-commands,
erc--scrolltobottom-window-info,
erc--scrolltobottom-post-force-commands,
erc--scrolltobottom-relaxed-skip-commands): New internal variables.
(erc--scrolltobottom-on-pre-command
erc--scrolltobottom-on-post-command): New functions resembling
`erc-possibly-scroll-to-bottom' that try to avoid scrolling repeatedly
for no reason.
(erc--scrolltobottom-on-pre-command-relaxed,
erc--scrolltobottom-on-post-command-relaxed): New commands to help
implement `erc-scroll-to-bottom-relaxed'.
(erc--scrolltobottom-at-prompt-minibuffer-active): New function to
scroll to bottom on window configuration changes when using the
minibuffer.
(erc--scrolltobottom-all): New function to scroll all windows
displaying the current buffer.
(erc-add-scroll-to-bottom): Deprecate this function because it is now
unused in the default client and trivial to implement otherwise.
(erc--scrolltobottom-setup): New generic function to perform teardown
as well as setup depending on the state of the module's mode variable.
Also add an implementation specifically for `erc-scrolltobottom-all'
that locally modifies different sets of hooks depending on
`erc-scrolltobottom-relaxed'.
(erc--scrolltobottom-on-pre-insert): New generic function that
remembers the last `window-start' and maybe the current screen line
before inserting a message, in order to restore it afterward.
(erc--scrolltobottom-confirm): New function, a replacement for
`erc-scroll-to-bottom' that returns non-nil when it's actually
recentered the window. For now, used only when
`erc-scrolltobottom-all' is enabled.
(erc-move-to-prompt-setup): Add `erc-move-to-prompt' to
`pre-command-hook' at a depth of 70 in the current buffer.
(erc-keep-place-mode, erc-keep-place-enable): Change hook depth from 0
to 85.
(erc--keep-place-indicator-setup): Add overlay arrow `after-string' in
non-graphical settings in case users have time stamps or other content
occupying the left margin.
(erc-keep-place-indicator-mode, erc-keep-place-indicator-enable):
Change hook depth from 90 to 85 locally so as not to conflict with a
value of t, for append.
(erc--keep-place-indicator-on-global-module): Change hook depth from
90 to 85 locally.
* test/lisp/erc/erc-scenarios-scrolltobottom-relaxed.el: New file.
* test/lisp/erc/erc-scenarios-scrolltobottom.el: New file.
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common--term-size, erc-scenarios-common--run-in-term,
erc-scenarios-common-interactive-debug-term-p,
erc-scenarios-common-with-noninteractive-in-term): New test macro and
supporting helper function and variables to facilitate running
scenario-based tests in an inferior Emacs, in term-mode.
(erc-scenarios-common--at-win-end-p,
erc-scenarios-common--above-win-end-p,
erc-scenarios-common--prompt-past-win-end-p,
erc-scenarios-common--recenter-top-bottom-around,
erc-scenarios-common--recenter-top-bottom,
erc-scenarios-scrolltobottom--normal): New test fixture and assertion
helper functions.
* test/lisp/erc/resources/scrolltobottom/help.eld: New file.
(Bug#64855)
F. Jason Park [Thu, 31 Aug 2023 06:15:22 +0000 (23:15 -0700)]
Add optional timezone param to erc-echo-timestamp
* etc/ERC-NEWS: Move `erc-echo-timestamp' from misc section
to own entry, and mention option `erc-echo-timestamp-zone'.
* lisp/erc/erc-stamp.el (erc-echo-timestamps): Mention that some
finagling is required if enabling this option after activating the
module.
(erc-echo-timestamp-format): Add additional Custom choice constants
and make the existing default one of them.
(erc-echo-timestamp-zone): New option to specify timezone for option
`erc-echo-timestamps' and function `erc-echo-timestamp'.
(erc-stamp-mode, erc-stamp-enable, erc-stamp-disable): Call
`erc-stamp--setup' instead of `erc-munge-invisibility-spec'.
(erc-stamp--current-time): Use `current-time' instead of
`erc-current-time'.
(erc-add-timestamp): Improve readability slightly, and change
`fboundp' to `functionp' to avoid signaling an error when the
variable's value is not a symbol.
(erc-munge-invisibility-spec): Perform teardown when boolean flag
options, like `erc-timestamp-intangible' and `erc-echo-timestamps' are
nil.
(erc-stamp--setup): Call `erc-munge-invisibility-spec', possibly
binding timestamp options to nil to force a tear down).
(erc-stamp--last-stamp, erc-stamp--on-clear-message): New function and
helper state variable to tell Emacs not to clear the current timestamp
message when navigating within the same IRC message.
(erc-echo-timestamp): Add optional `zone' parameter, to be passed
directly to `format-time-string', when non-interactive, and massaged
sensibly otherwise. Set the local variable `erc-stamp--last-stamp'.
* test/lisp/erc/erc-stamp-tests.el (erc-echo-timestamp): New test.
(Bug#60936)
F. Jason Park [Sat, 26 Aug 2023 02:03:26 +0000 (19:03 -0700)]
; Allow alternate ert-info text in ERC test utility
* test/lisp/erc/erc-tests.el
(erc-tests--assert-printed-in-subprocess): Don't insist that arguments
to the Emacs "-load" invocation option be actual disk files.
* test/lisp/erc/resources/erc-d/erc-d-t.el
(erc-d-t--wait-message-prefix, erc-d-t-wait-for, erc-d-t-ensure-for):
Add and use new variable to make `ert-info' message prefix adjustable.
The immediate use for this is to make it easier to distinguish between
consecutive assertions in which the first waits for a condition and
the second ensures it holds for some duration.
* test/lisp/erc/resources/erc-d/erc-d-u.el
(erc-d-u--read-exchange-default): Skip killed buffers.
* test/lisp/erc/resources/erc-d/erc-d.el: Typo.
* test/lisp/erc/resources/base/assoc/bouncer-history/barnet.eld: Timeouts.
* test/lisp/erc/resources/base/assoc/bouncer-history/foonet.eld: Timeouts.
* test/lisp/erc/resources/base/assoc/bumped/again.eld: Timeouts.
* test/lisp/erc/resources/base/assoc/bumped/foisted.eld: Timeouts.
* test/lisp/erc/resources/base/assoc/bumped/refoisted.eld: Timeouts.
* test/lisp/erc/resources/base/flood/soju.eld: Timeouts.
* test/lisp/erc/resources/base/netid/bouncer/barnet.eld: Timeouts.
* test/lisp/erc/resources/base/netid/bouncer/foonet.eld: Timeouts.
* test/lisp/erc/resources/base/reconnect/aborted-dupe.eld: Timeouts.
* test/lisp/erc/resources/base/reconnect/aborted.eld: Timeouts.
* test/lisp/erc/resources/base/renick/self/qual-chester.eld: Timeouts.
* test/lisp/erc/resources/base/renick/self/qual-tester.eld: Timeouts.
* test/lisp/erc/resources/erc-d/resources/dynamic-barnet.eld: Timeouts.
* test/lisp/erc/resources/erc-d/resources/dynamic-foonet.eld: Timeouts.
* test/lisp/erc/resources/erc-d/resources/linger.eld: Timeouts.
* test/lisp/erc/resources/join/legacy/foonet.eld: Timeouts.
F. Jason Park [Sat, 2 Sep 2023 03:05:35 +0000 (20:05 -0700)]
Allow login to contain NUH delimiters in erc-parse-user
* lisp/erc/erc.el (erc--parse-user-regexp-legacy,
erc--parse-user-regexp-pedantic): New constants. The first is the
original pattern that matches across line endings. The second
disallows multiline strings and interprets excess delimiting
characters as part of the middle, "user" component as per RFC1459.
The latter distinction is largely academic because most servers reject
such logins anyway, but bridges to other protocols and future
extensions may need to exploit this for novel uses.
(erc--parse-user-regexp): New variable, currently set to
`erc--parse-user-regexp-legacy'.
(erc-parse-user): Keep original pattern as default, but do so
indirectly via `erc--parse-user-regexp'.
* test/lisp/erc/erc-tests.el (erc-parse-user): New test.
Stefan Kangas [Mon, 11 Sep 2023 00:29:41 +0000 (02:29 +0200)]
; * .mailmap: Update some entries.
Stefan Kangas [Mon, 11 Sep 2023 00:06:23 +0000 (02:06 +0200)]
New defgroup pixel-scroll-precision
* lisp/pixel-scroll.el (pixel-scroll-precision): New defgroup.
(pixel-scroll-precision-use-momentum)
(pixel-scroll-precision-momentum-tick)
(pixel-scroll-precision-momentum-seconds)
(pixel-scroll-precision-momentum-min-velocity)
(pixel-scroll-precision-initial-velocity-factor)
(pixel-scroll-precision-large-scroll-height)
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor)
(pixel-scroll-precision-interpolation-between-scroll)
(pixel-scroll-precision-interpolate-page)
(pixel-scroll-precision-interpolate-mice): Move to above new
defgroup. (Bug#57970)
* lisp/mouse.el (mouse): Remove stale comment.
Jim Porter [Thu, 7 Sep 2023 00:01:06 +0000 (17:01 -0700)]
Wait for all processes in a pipeline before resuming an Eshell command
Previously, we only waited until the tail process was finished, but
now, we wait for all of them. This is more consistent with other
shells, and prevents some cases of a process's output coming *after*
we continued past its pipeline.
* lisp/eshell/esh-cmd.el (eshell-resume-command): Simplify
conditionals, and check that all the foreground processes are dead
before resuming Eshell command.
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/pipeline-wait/multi-proc): New test.
Jim Porter [Thu, 7 Sep 2023 00:00:59 +0000 (17:00 -0700)]
; Move some Eshell tests to more-topical files
eshell-tests.el should mainly be for code in eshell.el.
* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc)
(eshell-test/pipe-tailproc, eshell-test/pipe-subcommand)
(eshell-test/pipe-subcommand-with-pipe)
(eshell-test/subcommand-reset-in-pipeline)
(eshell-test/lisp-reset-in-pipeline): Move to...
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/pipeline-wait/head-proc)
(esh-cmd-test/pipeline-wait/tail-proc)
(esh-cmd-test/pipeline-wait/subcommand)
(esh-cmd-test/pipeline-wait/subcommand-with-pipe)
(esh-cmd-test/reset-in-pipeline/subcommand)
(esh-cmd-test/reset-in-pipeline/lisp): ... here.
* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc-stdin):
Move to...
* test/lisp/eshell/esh-io-tests.el
(esh-io-test/pipeline/stdin-to-head): ... here.
Jim Porter [Mon, 3 Apr 2023 05:41:29 +0000 (22:41 -0700)]
Collect all processes in an Eshell pipeline, not just the head and tail
This has the extra benefit that Eshell now only considers a pipeline
to be done when *all* of its processes are done (previously, it
checked only the last one in the pipeline).
* lisp/eshell/esh-util.el (eshell-process-pair-p)
(eshell-make-process-pair): Rename to...
(eshell-process-list-p, eshell-make-process-list): ... these, and
handle lists of processes. Update callers.
* lisp/eshell/esh-cmd.el (eshell-head-process): Use 'car'.
(eshell-tail-process): Get the last element of the list.
(eshell-do-pipelines): Return a list of all processes in the pipeline.
(eshell-do-pipelines-synchronously): Return the result of the first
command (usually t or nil).
(eshell-execute-pipeline): Simplify.
(eshell-do-eval): Pass all processes to 'eshell/wait'.
Jim Porter [Mon, 3 Apr 2023 04:54:32 +0000 (21:54 -0700)]
; Make Eshell synchronous pipeline code more similar to asynchronous
* lisp/eshell/esh-cmd.el (eshell-do-pipelines-synchronously): Use
'eshell-with-copied-handles'.
(eshell-execute-pipeline): Remove now-unnecessary let-bindings.
Jim Porter [Fri, 31 Mar 2023 23:57:18 +0000 (16:57 -0700)]
; Move common Eshell pipeline code to a separate function
* lisp/eshell/esh-cmd.el (eshell-do-pipelines)
(eshell-do-pipelines-synchronously): Move code for manipulating
deferrable command forms to...
(eshell--unmark-deferrable): ... here.
Mauro Aranda [Sun, 10 Sep 2023 13:45:04 +0000 (10:45 -0300)]
Fix order of `other' choice in defcustom :type
* lisp/font-lock.el (font-lock-verbose)
* lisp/image-mode.el (image-auto-resize)
* lisp/gnus/message.el (message-openpgp-header): Arrange for 'other'
to be the last choice. (Bug#65852)
Stefan Kangas [Sun, 10 Sep 2023 14:44:08 +0000 (16:44 +0200)]
Doc fix; explain what it means if comint-pager is nil
* lisp/comint.el (comint-pager): Doc fix; explain the meaning of the
default nil value.
Mattias Engdegård [Sun, 10 Sep 2023 13:15:12 +0000 (15:15 +0200)]
; Suppress relint complaint in test
* test/src/regex-emacs-tests.el
(regex-tests-mutual-exclusive-inf-rec): This isn't supposed to be a
good regexp.
Mattias Engdegård [Sun, 10 Sep 2023 11:24:57 +0000 (13:24 +0200)]
Replace PVEC_FONT as pseudo-vector subtype upper bound
* src/lisp.h (enum pvec_type): Add PVEC_TAG_MAX.
* src/alloc.c (allocate_pseudovector): Use PVEC_TAG_MAX instead of
PVEC_FONT.
Mattias Engdegård [Sun, 10 Sep 2023 11:13:17 +0000 (13:13 +0200)]
; Spruce up union vectorlike_header description
* src/lisp.h (union vectorlike_header): Rewrite the description of the
header word layout, with some useful added precision and the customary
ASCII art for bit fields.
Michael Albinus [Sun, 10 Sep 2023 07:53:47 +0000 (09:53 +0200)]
Fix file name completion in `shell'
* lisp/shell.el (shell-completion-vars): Fix setting of
`pcomplete-remote-file-ignore'. (Bug#65705)
Eli Zaretskii [Sun, 10 Sep 2023 07:44:10 +0000 (10:44 +0300)]
; Fix documentation of last change (bug#65621)
* lisp/dired.el (dired-movement-style): Fix doc string and
customization tags.
(dired-next-line, dired-previous-line): Doc fixes.
* etc/NEWS: Fix wording of last added entry.
shynur [Sat, 2 Sep 2023 14:39:00 +0000 (22:39 +0800)]
`dired-next-line' movement style (bug#65621)
Point will skips empty lines and optionally goto the other
end when encountering a boundary.
* lisp/dired.el (dired-movement-style): Control whether to
skip empty lines and whether to cycle through non-empty
lines.
* lisp/dired.el (dired-next-line): Add a new movement style
controlled by `dired-movement-style'.
* etc/NEWS (dired-movement-style):
Felix Dietrich [Sun, 6 Aug 2023 04:01:24 +0000 (06:01 +0200)]
Make ‘mailcap-viewer-passes-test’ return t for viewers without tests
* lisp/net/mailcap.el (mailcap-viewer-passes-test):
Make ‘mailcap-viewer-passes-test’ follow its docstring and return t
for viewers without a test. (Bug#65224)
* test/lisp/net/mailcap-tests.el
(mailcap-viewer-passes-test-w/o-test-returns-t): New test.
Po Lu [Sun, 10 Sep 2023 06:11:37 +0000 (14:11 +0800)]
; List myself as the Android port maintainer
* admin/MAINTAINERS: Add myself and Android files.
Po Lu [Sun, 10 Sep 2023 05:46:52 +0000 (13:46 +0800)]
Update Android port
* src/sfntfont.c (sfntfont_probe_widths): Prevent widths of
glyphs representing control characters from affecting the
average width.
Po Lu [Sun, 10 Sep 2023 01:33:50 +0000 (09:33 +0800)]
Correct many instances of ``allows to''
Refer to:
lists.gnu.org/archive/html/emacs-devel/2016-01/msg01598.html
* doc/emacs/frames.texi (Tab Bars):
* doc/emacs/maintaining.texi (Tag Syntax):
* doc/lispref/compile.texi (Native Compilation):
* doc/lispref/control.texi (Destructuring with pcase Patterns):
* doc/lispref/display.texi (Overlay Properties, Glyphless Chars):
* doc/lispref/frames.texi (Size Parameters, Layout Parameters)
(Child Frames):
* doc/lispref/minibuf.texi (Minibuffer Windows):
* doc/lispref/processes.texi (Asynchronous Processes):
* doc/lispref/windows.texi (Precedence of Action Functions)
(Mouse Window Auto-selection):
* doc/misc/autotype.texi (Autoinserting):
* doc/misc/efaq.texi (New in Emacs 28):
* doc/misc/idlwave.texi (Examining Variables):
* doc/misc/ses.texi (Quick Tutorial, Standard formula functions):
* doc/misc/tramp.texi (External methods, FUSE-based methods):
* lisp/comint.el (comint-insert-previous-argument-from-end):
* lisp/emacs-lisp/rmc.el (read-multiple-choice):
* lisp/gnus/gnus-util.el:
* lisp/mail/rmailsum.el (rmail-summary-progressively-narrow):
* lisp/mouse.el (mouse-drag-track):
* lisp/net/tramp-sudoedit.el:
* lisp/obsolete/landmark.el:
* lisp/org/org.el (org-startup-truncated, org-file-apps):
* lisp/pixel-scroll.el (pixel-scroll-precision-mode):
* lisp/progmodes/cperl-mode.el (cperl-praise):
* lisp/simple.el (yank-from-kill-ring, kill-visual-line):
* lisp/window.el (delete-window-choose-selected):
* src/ChangeLog.11:
* src/xdisp.c (syms_of_xdisp):
* src/xterm.c (handle_one_xevent): The construct ``allows to
<infinitive>'' is not English inasmuch as no direct object to
``allows'' is provided. Correct and rephrase each instance of such a
construct within our documentation and commentary.
Yuan Fu [Sat, 9 Sep 2023 19:35:13 +0000 (12:35 -0700)]
Fix treesit-node-at wrt local parsers
* lisp/treesit.el (treesit-node-at): Don't compute language at point
first. Because treesit-language-at uses treesit-node-at with a
language argument. Only call treesit-language-at when PARSER-OR-LANG
is nil.
Po Lu [Sat, 9 Sep 2023 13:59:30 +0000 (21:59 +0800)]
; * doc/emacs/android.texi (Android Windowing): Fix markup error.
Mattias Engdegård [Sat, 9 Sep 2023 11:04:54 +0000 (13:04 +0200)]
Add byte-compiler warning about useless trailing cond clauses
Warn about clauses after the default clause, as in
(cond ((= x 0) (say "none"))
(t (say "some"))
(say "goodbye"))
because they are very much an indicator of a mistake (such as
misplaced brackets), and since they are deleted by the optimiser, any
other warnings there are lost and the user wouldn't know that
something is wrong otherwise.
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Add warning.
* etc/NEWS: Announce.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-test--with-suppressed-warnings): Add test case.
Mattias Engdegård [Sat, 9 Sep 2023 11:03:42 +0000 (13:03 +0200)]
Don't cache warnings between bytecode compilation tests
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--with-fresh-warnings): New macro.
(test-byte-comp-compile-and-load, bytecomp--with-warning-test):
Use it.
Eli Zaretskii [Sat, 9 Sep 2023 08:33:47 +0000 (04:33 -0400)]
Merge from origin/emacs-29
b8a8106fa1a ; Add missing space in the manual
5b906b62157 Fix defcustom :type of ielm-indirect-setup-hook
82af484ec15 ; Two updates of etc/TODO
0ab2823f518 ; Describe in PROBLEMS 2 problems with keyboard input
4e7112ab211 ; Fix inaccuracy in ELisp reference manual
34bbb6c8d21 Document NonGNU ELPA in FAQ
2af092741e5 Fix remote path setting in Eshell
4613575d97f ; * lisp/completion.el (dynamic-completion-mode): Fix las...
2f0f33fbf9d Update docs for (co-)maintainer changes
b068fcd4a31 * doc/lispref/strings.texi (Text Comparison): Fix typo (b...
2e2a5f8118c Adapt Tramp manual
d32f00a35bc Improve docstring of message-sendmail-envelope-from
1a668cda8bc Unbreak builds with CHECK_STRUCTS.
77b6e9bb17b Improve documentation of EPG
d3382f94714 ; * lisp/completion.el (dynamic-completion-mode): Doc fix.
1458daf3164 Avoid crashes on macOS with context menus
# Conflicts:
# src/pdumper.c
Eli Zaretskii [Sat, 9 Sep 2023 08:32:58 +0000 (04:32 -0400)]
; Merge from origin/emacs-29
The following commit was skipped:
14819131fff Fix c-ts-mode BSD style indentation
Eli Zaretskii [Sat, 9 Sep 2023 08:32:45 +0000 (04:32 -0400)]
Merge from origin/emacs-29
bc56da92d8d ; Fix error in 'tex-recenter-output-buffer'
d17c5adc057 Fix regexp for recognizing PBM images
9e9f61866e7 Improve wording in ELisp manual
7427efa033b Fix typo (Bug#65764)
59c66244080 ; * lisp/ido.el (ido-completion-buffer): Fix :type (bug#6...
4ec4b18c2a0 Fix libgccjit build on Haiku
80bdcf8f351 (regexp-tests-backtrack-optimization): Mark it as failing
8a9e653cc82 ; Add regression test for bug#65726
6fad73d7cc5 * src/regex-emacs.c (mutually_exclusive_p): Fix inf-loop ...
1d3d4196073 ; * lisp/files.el (save-some-buffers-functions): Doc fix ...
42b14c6e5bb Bump seq version to 2.24
ff5190a174f Add note on ELPA to admin/notes/bug-triage
f1e4cbe72aa ; * etc/PROBLEMS: Minor wording fix.
fd5593c7f25 * etc/PROBLEMS: Mention bug#65432 and its remedy.
dd896ea1e62 Ignore errors when checking for object initializers (bug#...
3550f44c17c ; Fix typos
5b246b9b817 * CONTRIBUTE: Document making ChangeLogs with Magit.
0bd46619413 Doc fixes for obsolete functions and variables
524c0c34f24 ; * lisp/ffap.el (ffap-rfs-regexp): Fix :type (bug#65698).
f48dccc4675 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
71a85e22668 A revision to the Widget manual
dbbcf4a6599 Fix fontification of " in edit-kbd-macro
# Conflicts:
# test/src/regex-emacs-tests.el
Eli Zaretskii [Sat, 9 Sep 2023 08:29:48 +0000 (11:29 +0300)]
; * lisp/progmodes/c-ts-mode.el (treesit-parser-root-node): Declare.
Po Lu [Sat, 9 Sep 2023 07:49:47 +0000 (15:49 +0800)]
Update Android port
* src/android-asset.h (android_asset_read_internal): Return an
error indication if an exception arises while reading.
(AAsset_getBuffer): Free BUFFER using the C library free
function.
Jim Porter [Sat, 9 Sep 2023 05:24:06 +0000 (22:24 -0700)]
; Fix last change
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/sigpipe-exits-process): Make sure we have no *new*
processes, instead of making sure we have no processes at all.
Jim Porter [Sat, 9 Sep 2023 04:08:57 +0000 (21:08 -0700)]
; Fix name of an Eshell test
* test/lisp/eshell/esh-proc-tests.el
(esh-var-test/output/remote-redirect): Rename to...
(esh-proc-test/output/remote-redirect): ... this.
Stefan Monnier [Sat, 9 Sep 2023 02:17:43 +0000 (22:17 -0400)]
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): Fix bug#65833
For some reason the intervals case failed to push the var to
`loop-for-bindings` before pushing to `loop-for-sets`.
AFAICT this was the only place where we made that mistake.
Po Lu [Sat, 9 Sep 2023 02:00:17 +0000 (10:00 +0800)]
Micro-optimize sfnt_interpret_trap
* src/sfnt.c (AVOID) [TEST]: Define to its standard value in
lisp.h.
(sfnt_interpret_trap): Label AVOID.
Stefan Monnier [Fri, 8 Sep 2023 23:41:28 +0000 (19:41 -0400)]
* lisp/tempo.el (tempo-insert): Use `pcase` and `dolist`
Stefan Monnier [Fri, 8 Sep 2023 23:24:53 +0000 (19:24 -0400)]
* lisp/tempo.el (tempo-find-match-string): Simplify
Stefan Monnier [Fri, 8 Sep 2023 23:22:16 +0000 (19:22 -0400)]
* lisp/tempo.el: Remove left over uses of the dynbind dialect
* lisp/tempo.el (tempo-define-template): Use a real closure.
(tempo-insert, tempo-build-collection): Use lexical scoping.
Stefan Monnier [Fri, 8 Sep 2023 23:18:28 +0000 (19:18 -0400)]
(tempo-user-elements): Make it a proper hook
* lisp/tempo.el (tempo-user-element-functions): Rename from
`tempo-user-elements`.
(tempo-user-elements): Preserve as obsolete alias.
(tempo-is-user-element): Use `run-hook-with-args-until-success`.
Stefan Monnier [Fri, 8 Sep 2023 23:15:11 +0000 (19:15 -0400)]
* lisp/tempo.el: Remove redundant `:group`s and use #'
Yuan Fu [Fri, 8 Sep 2023 17:10:32 +0000 (10:10 -0700)]
; * lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Fix typo.
Vincent Lefevre [Wed, 6 Sep 2023 11:57:07 +0000 (13:57 +0200)]
; Add missing space in the manual
* doc/lispref/compile.texi (Native-Compilation Variables): Add missing
space. (Bug#65782)
Copyright-paperwork-exempt: yes
Mauro Aranda [Fri, 8 Sep 2023 15:44:42 +0000 (12:44 -0300)]
Fix defcustom :type of ielm-indirect-setup-hook
* lisp/ielm.el (ielm-indirect-setup-hook): Fix :type and remove :safe
property, since it was probably a copy-pasta. (Bug#65821)
Yuan Fu [Fri, 8 Sep 2023 16:39:54 +0000 (09:39 -0700)]
Extract c-ts-mode--feature-list out
* lisp/progmodes/c-ts-mode.el (c-ts-mode--feature-list): New variable.
Yuan Fu [Fri, 8 Sep 2023 16:09:14 +0000 (09:09 -0700)]
; * lisp/treesit.el (treesit--indent-1): Get all parsers.
Yuan Fu [Fri, 8 Sep 2023 16:07:46 +0000 (09:07 -0700)]
; * lisp/treesit.el (treesit--indent-1): Add missing call.
Stefan Monnier [Fri, 8 Sep 2023 15:31:35 +0000 (11:31 -0400)]
* lisp/pcomplete.el (pcomplete-completions-at-point): Add hack for bug#65089
Improve our guess for `end` and `buftext` when point is not at the end
of the current "thing to complete".
Stefan Kangas [Fri, 8 Sep 2023 14:47:33 +0000 (16:47 +0200)]
Mark two flyspell functions as internal
* lisp/textmodes/flyspell.el: Minor doc fix.
(flyspell--mode-on, flyspell--mode-off): Rename from
'flyspell-mode-on' and 'flyspell-mode-off'. The old names are
preserved as obsolete aliases.
Eli Zaretskii [Fri, 8 Sep 2023 13:31:14 +0000 (16:31 +0300)]
; Two updates of etc/TODO
* etc/TODO: Remove the redesign-overlays item (already done in
Emacs 29.1). Add an item about supporting external indentation
rules.
Eli Zaretskii [Fri, 8 Sep 2023 12:35:05 +0000 (15:35 +0300)]
; Describe in PROBLEMS 2 problems with keyboard input
* etc/PROBLEMS: Describe problems with WSL and PGTK keyboard
input. (Bug#65802) (Bug#65811)
Eli Zaretskii [Fri, 8 Sep 2023 12:11:10 +0000 (15:11 +0300)]
Avoid errors in EWW when EWW is killed
* lisp/net/eww.el (eww-render): Don't signal errors if the page
being rendered was closed. (Bug#65678)
Eli Zaretskii [Fri, 8 Sep 2023 12:06:03 +0000 (15:06 +0300)]
; * doc/lispref/display.texi (Low-Level Font): Fix last change.
Po Lu [Fri, 8 Sep 2023 11:57:40 +0000 (19:57 +0800)]
Fix typos
* src/android.c (android_set_task_name):
* src/sfnt.c (main): Test if fd < 0, not fd < 1.
Eli Zaretskii [Fri, 8 Sep 2023 11:39:49 +0000 (14:39 +0300)]
; Fix inaccuracy in ELisp reference manual
* doc/lispref/text.texi (Motion by Indent): Remove incorrect
information about return values that can be anything. (Bug#65819)
Stefan Kangas [Fri, 8 Sep 2023 09:43:14 +0000 (11:43 +0200)]
Document NonGNU ELPA in FAQ
* doc/misc/efaq.texi (Packages that do not come with Emacs):
Document NonGNU ELPA. (Bug#65818)
Michael Albinus [Fri, 8 Sep 2023 09:07:54 +0000 (11:07 +0200)]
Fix Perl script in Tramp
* lisp/net/tramp-sh.el (tramp-perl-file-name-all-completions):
Fix Perl script. (Bug#65744)
Po Lu [Fri, 8 Sep 2023 08:12:12 +0000 (16:12 +0800)]
Properly detect content files in Doc View
* lisp/doc-view.el (doc-view-mode): Detect if file name starts
with /content or /assets, and don't regard it as available to
subprocesses in that case.
Po Lu [Fri, 8 Sep 2023 03:00:10 +0000 (11:00 +0800)]
Fix typos in last change
* src/font.c (font_dynamic_unparse_xlfd): Remove unused variable.
(Ffont_xlfd_name): Initialize name.
Po Lu [Fri, 8 Sep 2023 02:37:53 +0000 (10:37 +0800)]
; * src/fontset.c: Remove extraneous portion of last change.
Po Lu [Fri, 8 Sep 2023 02:37:18 +0000 (10:37 +0800)]
Permit XLFD names to exceed 255 characters
* doc/lispref/display.texi (Low-Level Font)
<font-xlfd-name>: Document new argument `long-xlfds'.
* etc/NEWS: Mention removal of XLFD length restrictions.
* src/font.c (font_build_object): Dynamically allocate XLFD,
permitting them to surpass 255 characters in length.
(font_parse_xlfd_1): Cease rejecting XLFDs more than 255
characters in length.
(font_dynamic_unparse_xlfd): New function. Like
font_unparse_xlfd, but allocate the XLFD dynamically.
(font_delete_unmatched): Dynamically allocate XLFD if necessary.
(Ffont_xlfd_name): New arg LONG_XLFDs. If t, return a
dynamically allocated XLFD. All callers changed.
* src/font.h: Update prototypes.
* src/fontset.c (Fnew_fontset): Dynamically allocate XLFD when
establishing fontset name.
Yuan Fu [Fri, 8 Sep 2023 00:56:11 +0000 (17:56 -0700)]
Fix treesit-thing-definition
* lisp/treesit.el (treesit-thing-definition): Don't modify
treesit-thing-settings itself.
Yuan Fu [Fri, 8 Sep 2023 00:44:32 +0000 (17:44 -0700)]
; * lisp/treesit.el (treesit-node-on): Fix treesit-local-parsers-on.
Yuan Fu [Thu, 7 Sep 2023 23:08:42 +0000 (16:08 -0700)]
Fix treesit-thing-settings for c++-ts-mode (bug#65810)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--thing-settings): New varaible.
(c-ts-base-mode): Use c-ts-mode--thing-settings.
Yuan Fu [Thu, 7 Sep 2023 23:03:01 +0000 (16:03 -0700)]
; * lisp/treesit.el (treesit-update-ranges): Fix use of parser-list.
Yuan Fu [Thu, 7 Sep 2023 05:15:21 +0000 (22:15 -0700)]
Add Ftreesit_parser_tag
* lisp/treesit.el (treesit-parser-tag): Add.
* src/treesit.c (Ftreesit_parser_tag): Add.
Yuan Fu [Thu, 7 Sep 2023 23:04:29 +0000 (16:04 -0700)]
Change treesit-local-parsers-in to treesit-local-parsers-on
To improve consistency. We already have treesit-node-at and
treesit-node-on.
* doc/lispref/parsing.texi (Multiple Languages): Update manual.
* lisp/treesit.el (treesit-local-parsers-on): Change to in.
(treesit-font-lock-fontify-region): Change to in.
Stefan Kangas [Wed, 6 Sep 2023 09:21:39 +0000 (11:21 +0200)]
Error when trying to make nil or t obsolete
* lisp/emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
Signal error if the symbol to make obsolete is nil or t. (Bug#62248)
(byte-run--constant-obsolete-warning): New function.
* test/lisp/emacs-lisp/byte-run-tests.el: New file.
Stefan Kangas [Thu, 7 Sep 2023 21:50:50 +0000 (23:50 +0200)]
Add note regarding `seq` on GNU ELPA
* lisp/emacs-lisp/seq.el: Add note regarding seq on GNU ELPA.
Co-authored-by: Stefan Monnier <monnier@iro.umontreal.ca>
Lämppi Lütti [Sat, 22 Oct 2022 04:58:46 +0000 (07:58 +0300)]
Fix detection of vtable start and end
* lisp/emacs-lisp/vtable.el (vtable-beginning-of-table)
(vtable-end-of-table): Fix detection of vtable limits. (Bug#58712)
Copyright-paperwork-exempt: yes
Jim Porter [Sun, 27 Aug 2023 19:53:40 +0000 (12:53 -0700)]
Fix remote path setting in Eshell
This ensures that we supply Tramp with the local PATH so that it can
do its job of starting the local "ssh", or whatever the method uses
(bug#65551).
* lisp/eshell/esh-proc.el (eshell-gather-process-output): Add special
handling for remote processes.
* test/lisp/eshell/esh-proc-tests.el
(esh-var-test/remote/remote-path): New test.
Mattias Engdegård [Thu, 7 Sep 2023 16:06:34 +0000 (18:06 +0200)]
Translate backslash-saturated regexp to rx
* lisp/minibuffer.el (minibuffer--regexp-propertize):
The original regexp had 83 backslashes in 147 characters which may be
some kind of record. This transformation cuts it down to 6, and the
generated regexp string is about 14 % shorter.
Mattias Engdegård [Thu, 7 Sep 2023 09:25:46 +0000 (11:25 +0200)]
* admin/unidata/emoji-zwj.awk: More efficient code generation
Hoist the `eval-when-compile` to encompass the entire list, since
backquote forms aren't automatically evaluated at compile time.
This results in a single constant list in the generated code, and
much less actual code.
Eli Zaretskii [Thu, 7 Sep 2023 15:52:35 +0000 (18:52 +0300)]
; * lisp/completion.el (dynamic-completion-mode): Fix last change.
Stefan Kangas [Thu, 7 Sep 2023 15:48:14 +0000 (17:48 +0200)]
Update docs for (co-)maintainer changes
* admin/MAINTAINERS: Add information on current maintainers as a
canonical place to find this information.
* doc/emacs/ack.texi (Acknowledgments): Update for recent
Emacs (co-)maintainer changes.
* admin/make-tarball.txt: Add note as a reminder to update the above
before making a new release.
Sebastian Miele [Thu, 7 Sep 2023 11:51:12 +0000 (13:51 +0200)]
* doc/lispref/strings.texi (Text Comparison): Fix typo (bug#65799).
Michael Albinus [Thu, 7 Sep 2023 13:03:42 +0000 (15:03 +0200)]
Adapt Tramp manual
* doc/misc/tramp.texi (Frequently Asked Questions): Do not use
`defadvice'. Add indices. (Bug#65481)
Stefan Kangas [Wed, 6 Sep 2023 20:46:23 +0000 (22:46 +0200)]
Improve docstring of message-sendmail-envelope-from
* lisp/gnus/message.el (message-sendmail-envelope-from): Doc fix.
Philipp Stephani [Thu, 7 Sep 2023 09:30:52 +0000 (11:30 +0200)]
Unbreak builds with CHECK_STRUCTS.
* src/pdumper.c (dump_buffer): Fix hash for 'struct buffer'. The
recent changes to that structure where commits
8f3091defb3ec4396ccea563f67c005044b822ca and
0bd46619413e83fe3c85c8a1dfbf5e20dfce8605, both of which just affected
comments.
Jens Schmidt [Tue, 29 Aug 2023 20:14:48 +0000 (22:14 +0200)]
Improve documentation of EPG
* lisp/epg.el (epg-context-set-passphrase-callback): Update
GnuPG-version-dependent information in docstring and refer to
Info node `(epa)' for details.
(epg-start-edit-key): Replace description of arguments by a
reference to `epg-edit-key'.
(epg-edit-key): More precisely describe callback operation and
arguments and provide an example of how to edit a key. (Bug#65603)
john muhl [Mon, 4 Sep 2023 16:36:42 +0000 (11:36 -0500)]
Fix java-ts-mode tests (bug#65738)
* admin/notes/tree-sitter/build-module/batch.sh (languages):
Add Java.
* lisp/progmodes/java-ts-mode.el (java-ts-mode): Pass a list
to 'treesit-thing-settings'.
Eli Zaretskii [Thu, 7 Sep 2023 08:56:16 +0000 (11:56 +0300)]
; Fix documentation of last change
* lisp/minibuffer.el (minibuffer-regexp-prompts):
* doc/lispref/minibuf.texi (Minibuffer Misc): Fix docs (bug#50766).
martin rudalics [Wed, 6 Sep 2023 08:09:49 +0000 (10:09 +0200)]
New minor mode 'minibuffer-regexp-mode'
This mode is for editing regexps in minibuffer, it highlights
parens via `show-paren-mode' and `blink-matching-paren' in a
user-friendly way, avoids reporting false paren mismatches,
and makes sexp navigation more intuitive.
* lisp/minibuffer.el (minibuffer-regexp-mode)
(minibuffer--regexp-primed, minibuffer--regexp-prompt-regexp):
New variables.
(minibuffer--regexp-propertize, minibuffer--regexp-primed)
(minibuffer--regexp-before-change)
(minibuffer--regexp-after-change)
(minibuffer--regexp-post-self-insert, minibuffer--regexp-setup)
(minibuffer--regexp-exit, minibuffer-regexp-mode): New functions.
(minibuffer-regexp-prompts): New option.
* doc/lispref/minibuf.texi (Minibuffer Misc): Document the new
mode and its option.
* etc/NEWS: Announce the new mode.
Bug#50766
Eli Zaretskii [Thu, 7 Sep 2023 08:09:56 +0000 (11:09 +0300)]
; Fix recent changes in treesit documentation
* lisp/treesit.el (treesit-local-parsers-at)
(treesit-local-parsers-in):
* doc/lispref/parsing.texi (Multiple Languages):
(Using Parser): Fix wording of recently added docs.
Eli Zaretskii [Thu, 7 Sep 2023 06:52:23 +0000 (09:52 +0300)]
; * lisp/completion.el (dynamic-completion-mode): Doc fix.
Daniel Martín [Thu, 13 Jul 2023 08:47:35 +0000 (10:47 +0200)]
Avoid crashes on macOS with context menus
* src/nsmenu.m ([EmacsMenu menuNeedsUpdate:]): Avoid crashes with
context menus. (Bug#63495)
Yuan Fu [Wed, 6 Sep 2023 03:12:19 +0000 (20:12 -0700)]
Fix c-ts-mode BSD style indentation
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
Add else_clause.
(cherry picked from commit
d392a5d3c11b7e7479d31421f8237f29952c909e)
Po Lu [Thu, 7 Sep 2023 03:02:12 +0000 (11:02 +0800)]
Tag NEWS
* etc/NEWS: Tag Android as documented, given that all pertinent
documentation has been written.
Po Lu [Thu, 7 Sep 2023 02:32:23 +0000 (02:32 +0000)]
; * ChangeLog.android: Minor formatting correction.