Po Lu [Wed, 13 Sep 2023 01:25:42 +0000 (09:25 +0800)]
Request additional permissions on Android
* doc/emacs/android.texi (Android Environment): List two
additional permissions within the summary of permissions granted
by default.
* java/AndroidManifest.xml.in: Request READ_CALENDAR and
WRITE_CALENDAR.
Po Lu [Wed, 13 Sep 2023 01:24:16 +0000 (09:24 +0800)]
Facilitate opening content:// files without a linked file name
* java/org/gnu/emacs/EmacsOpenActivity.java
(checkReadableOrCopy): If FILE is NULL, return a matching
content URI if possible, else generate a file name with the URI
as a reference.
(onCreate): Catch SecurityException around calls to
openFileDescriptor.
Jim Porter [Wed, 13 Sep 2023 01:13:52 +0000 (18:13 -0700)]
; Improve recent change to printing exit status in Eshell
* lisp/eshell/esh-proc.el (eshell-interactive-filter): Declare.
(eshell-interactive-process-filter): Simplify.
(eshell-sentinel): Call 'eshell-interactive-filter'.
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/kill-process/redirect-message): Use
'eshell-with-temp-buffer'.
Yuan Fu [Tue, 12 Sep 2023 07:36:07 +0000 (00:36 -0700)]
Avoid unnecessary tree-sitter reparse when setting the same range
* src/treesit.h (Lisp_TS_Parser)
* src/treesit.c (make_treesit_parser): Remove has_range field, add
last_set_ranges field.
(Ftreesit_parser_set_included_ranges): Return early if the new range
is the same as the old one.
(Ftreesit_parser_included_ranges): Change has_range to
last_set_ranges.
Yuan Fu [Tue, 12 Sep 2023 03:59:50 +0000 (20:59 -0700)]
Make sure undefined tree-sitter thing doesn't raise an error
A previous change should've achived this, but that wasn't enough.
This one actually achieves the intended effect, namely,
treesit-node-match-p doesn't raise an error if IGNORE-MISSING is
non-nil, and traverse functions don't raise error by default.
* src/treesit.c (treesit_traverse_validate_predicate): Remove
ignore_missing parameter, return error symbol.
(Ftreesit_node_match_p)
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Check returned error symbol.
(syms_of_treesit): New symbol.
Jim Porter [Tue, 12 Sep 2023 05:05:38 +0000 (22:05 -0700)]
Ensure that Eshell doesn't consider a process complete until stderr is done
This will hopefully help resolve some timing issues with subprocesses
in Eshell. There's now much less chance of output going missing when
using redirects.
* lisp/eshell/esh-proc.el (eshell-gather-process-output): Set
':eshell-stderr-live'...
(eshell-sentinel): ... use it.
Jim Porter [Tue, 12 Sep 2023 04:32:05 +0000 (21:32 -0700)]
Be more careful about when to print abnormal exit status in Eshell
* lisp/eshell/esh-proc.el (eshell-sentinel): Only output abnormal
status when stderr is interactive.
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/kill-process/redirect-message): New test.
Jim Porter [Fri, 18 Aug 2023 05:40:03 +0000 (22:40 -0700)]
Don't do anything in 'eshell-sentinel' if the process status is "run"
This doesn't change anything right now, but it will prevent future
issues when we add the ability to resume suspended processes in
Eshell.
* lisp/eshell/esh-proc.el (eshell-sentinel): Check for "run" status
earlier.
Stefan Monnier [Tue, 12 Sep 2023 18:06:54 +0000 (14:06 -0400)]
* src/alloc.c (garbage_collect): Run `post-gc-hook` later (bug#65700)
Stefan Monnier [Tue, 12 Sep 2023 16:59:03 +0000 (12:59 -0400)]
Address "Useless clause following default cond clause" warnings
* lisp/gnus/message.el (message-position-point): Fix paren typo.
* lisp/org/org.el: Remove dead-code.
Stefan Monnier [Tue, 12 Sep 2023 16:55:54 +0000 (12:55 -0400)]
(read-char-from-minibuffer): Allow use of `quoted-insert` (bug#65805)
* lisp/subr.el (read-char-from-minibuffer-map): No need to remap
`self-insert-command` any more.
(read-char-from-minibuffer): Use `post-command-hook` to exit as soon as
a char is provided.
Alan Mackenzie [Tue, 12 Sep 2023 14:45:47 +0000 (14:45 +0000)]
Correct the XEmacs version of c-put-char-properties
* lisp/progmodes/cc-defs.el (c-put-char-properties): Use the
put-text-property interface rather than make-extent for XEmacs
as well as Emacs.
Po Lu [Tue, 12 Sep 2023 02:39:51 +0000 (10:39 +0800)]
Merge remote-tracking branch 'savannah/master' into master-android-1
Po Lu [Tue, 12 Sep 2023 02:37:55 +0000 (10:37 +0800)]
Extract font foundry metadata from the OS/2 table
* src/sfnt.c (sfnt_table_names): Append an entry for OS/2
tables.
(sfnt_read_OS_2_table): New function.
(main): Introduce a new test for the OS/2 table reader.
* src/sfnt.h (sfnt_read_OS_2_table): New declaration.
* src/sfntfont.c (sfnt_decode_foundry_name): Delete function.
(sfnt_enum_font_1): Read the font's OS/2 table and extract the
foundry name from there. Use `misc' if absent.
(sfntfont_desc_to_entity, sfntfont_open): Cease interning
desc->designer, as that is now a symbol.
(syms_of_sfntfont) <Qmisc>: New defsym Qmisc. (bug#65865)
Yuan Fu [Tue, 12 Sep 2023 01:06:23 +0000 (18:06 -0700)]
; * lisp/treesit.el (treesit-explore-mode): Support local parsers.
Łukasz Stelmach [Mon, 21 Nov 2022 21:30:55 +0000 (22:30 +0100)]
Fix tracing for advanced scoring in gnus-logic.el
* lisp/gnus/gnus-logic.el (gnus-score-advanced): Move the tracing code
outside conditional so it's executed for both branches. (Bug#59458)
Stefan Kangas [Mon, 11 Sep 2023 23:50:28 +0000 (01:50 +0200)]
Match recent version of GNU global in CEDET
* lisp/cedet/cedet-global.el (cedet-gnu-global-version-check):
Match recent version of GNU global. (Bug#62581)
Alan Third [Mon, 11 Sep 2023 16:18:31 +0000 (17:18 +0100)]
Remove check for appdefined events on the queue (bug#65843)
It seems this was likely a bug in macOS 10.10.1. I have no way to find
out when it was fixed, but hopefully before 10.10.5, the most recent
release of that version.
* src/nsterm.m (ns_send_appdefined): Remove check for whether previous
appdefined events have been lost.
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.