Juri Linkov [Fri, 24 May 2024 17:48:42 +0000 (20:48 +0300)]
New variable shell-command-guess-dired-optional (bug#18132)
* doc/emacs/dired.texi (Shell Command Guessing):
Add dired-guess-shell-alist-optional.
* lisp/dired.el (dired-guess-shell-alist-user):
* lisp/dired-aux.el (dired-do-shell-command):
Add dired-guess-shell-alist-optional to docstring.
(dired-guess-shell-alist-default): Move media commands to
'dired-guess-shell-alist-optional'.
(dired-guess-shell-alist-optional): New variable.
(dired-guess-default): Add 'dired-guess-shell-alist-optional'
to the end after 'dired-guess-shell-alist-user'
and 'dired-guess-shell-alist-default'.
(shell-command-guess-functions): Add more options.
(shell-command-guess-dired): Remove function.
(shell-command-guess-dired-user)
(shell-command-guess-dired-default)
(shell-command-guess-dired-optional): New functions.
Eshel Yaron [Sat, 27 Apr 2024 18:39:19 +0000 (20:39 +0200)]
; Refine 'completion-preview-exact' face
* lisp/completion-preview.el (completion-preview-exact): Use
different underline color to further distinguish this face from
'completion-preview-common', and improve legibility with dark
background color.
Eshel Yaron [Wed, 1 May 2024 16:59:45 +0000 (18:59 +0200)]
; Exclude a few more modes in 'global-completion-preview-mode'
* lisp/completion-preview.el (global-completion-preview-mode):
Exclude a few non-edit major modes whose definition sets
'major-mode' directly, rather than using 'define-derived-mode'.
Andrea Corallo [Fri, 24 May 2024 06:37:41 +0000 (08:37 +0200)]
* src/comp.c (check_comp_unit_relocs): Remove unneccesary double access.
Eshel Yaron [Thu, 23 May 2024 19:59:38 +0000 (21:59 +0200)]
Fix argument name highlighting in 'describe-function' output
This fixes a regression introduced in
dd38097f0b9458eea882043fa06b27248e505b22, which prevented proper
argument name highlighting in function docstrings in the output
buffer of 'describe-function'.
* lisp/help-fns.el (help-do-arg-highlight): New optional arg
that says if we're highlighting arguments in the usage string or
in the docstring. Tweak generated regex to only expect argument
name to be preceded by function name in usage string.
(help-highlight-arguments): Use new argument for usage string.
Eshel Yaron [Thu, 23 May 2024 13:02:05 +0000 (15:02 +0200)]
Fix 'help-view-source' for variables defined in C
This fixes an issue that Juri Linkov mentioned in Bug#71117.
* lisp/help-mode.el (help-function-def--button-function): When
searching for the definition of a variable, make sure to call
'help-C-file-name' with KIND argument set to 'var'.
Eli Zaretskii [Thu, 23 May 2024 18:14:13 +0000 (21:14 +0300)]
Improve Dired context menu
* lisp/dired.el (dired-context-menu): Add 'w32-shell-execute' menu
item on MS-Windows. Improve help-echo.
Eli Zaretskii [Thu, 23 May 2024 13:23:57 +0000 (16:23 +0300)]
Documentation followup for last change
* etc/NEWS: Announce the change in 'key-translate'.
* doc/lispref/commands.texi (Event Mod): Update documentation of
'key-translate'. (Bug#70139)
Charalampos Mitrodimas [Tue, 2 Apr 2024 19:02:46 +0000 (19:02 +0000)]
Improve 'key-translate' to support removing translations
This patch enhances the key-translate function to allow removing
keyboard translations by passing nil as the second argument (TO).
If TO is nil, any existing translation for the FROM key will be
removed. The compiler macro is updated to only check TO when it
is non-nil. This change makes key-translate more consistent with
the behavior of 'keyboard-translate', providing a way to remove
translations without having to specify the same key for both FROM
and TO.
The documentation string is updated to reflect the new behavior.
* lisp/keymap.el (key-translate): Support removing translations
by passing nil as the second argument (TO). Also signal an error
if multiple items are passed. (Bug#70139)
Lin Sun [Fri, 3 May 2024 06:52:22 +0000 (06:52 +0000)]
Enhance python-tests to adapt different Python interpreters (bug#70815)
* test/lisp/progmodes/python-tests.el
(python-tests-get-shell-interpreter): New function to get Python
interpreter for testing; and also introduce new env variable
EMACS_PYTHON_INTERPRETER to support customer Python interpreter.
Co-authored-by: kobarity <kobarity@gmail.com>
Eli Zaretskii [Thu, 23 May 2024 09:51:19 +0000 (12:51 +0300)]
Fix uncompressing a .tar.gz archive whose files have no leading dir
* lisp/dired-aux.el (dired-compress): Handle the case when
NEW-FILE is not produced in the current directory by uncompressing
a compressed file. (Bug#47058)
Po Lu [Thu, 23 May 2024 09:46:48 +0000 (17:46 +0800)]
Work around one Android bug and document another
* etc/PROBLEMS (Runtime problems specific to Android): Document
deficiency of "Android Keyboard (AOSP)."
* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
Revert yesterday's change.
* java/org/gnu/emacs/EmacsWindow.java (toggleOnScreenKeyboard):
Sync with the UI thread after displaying the on-screen keyboard.
Po Lu [Thu, 23 May 2024 07:19:46 +0000 (15:19 +0800)]
Restore specbound keyboard-locals in the correct KBOARD
* doc/lispref/variables.texi (Intro to Buffer-Local): Fix typo
in documentation.
* src/data.c (KBOARD_OBJFWDP): Move to lisp.h.
(kboard_for_bindings): New variable.
(do_symval_forwarding, store_symval_forwarding): Call
kboard_for_bindings rather than retrieving this value directly.
(set_default_internal): New argument WHERE; if valcontents be a
Lisp_Kboard_Objfwd and WHERE be specified, save the binding
there. All callers changed.
* src/eval.c (specpdl_where): Adjust for changes in structure
layout.
(specpdl_kboard): New function.
(do_specbind): Clear let->where.kbd in ordinary SPECPDL_LETs,
and set it to the kboard where the binding will be installed if
binding keyboard forwards.
(specbind, do_one_unbind, specpdl_unrewind): Provide
specpdl_kboard in invocation of set_default_internal.
* src/keyboard.c (delete_kboard): Clean thread specpdls of
references to kboards.
* src/keyboard.h (KBOARD_OBJFWDP): Move from data.c.
* src/lisp.h (union specbinding) <let.where>: Convert into
union of KBOARD and Lisp_Object.
* src/thread.c (all_threads): Export.
* src/thread.h: Adjust correspondingly.
Po Lu [Thu, 23 May 2024 05:54:48 +0000 (13:54 +0800)]
; * src/unexelf.c (unexec): Fix compiler warning.
Manuel Giraud [Wed, 22 May 2024 19:53:47 +0000 (21:53 +0200)]
; Fix typo in NEWS (bug#71130).
Eli Zaretskii [Wed, 22 May 2024 18:43:43 +0000 (21:43 +0300)]
; Fix recently-added documentation
* doc/lispref/parsing.texi (Tree-sitter Major Modes): Mention
'treesit-indent-function'. (Bug#71086)
Stefan Monnier [Wed, 22 May 2024 17:27:50 +0000 (13:27 -0400)]
* lisp/emacs-lisp/pcase.el (pcase--subtype-bitsets): Fix bootstrap failure
`rm lisp/emacs-lisp/cl-preloaded.elc src/bootstrap-emacs`
followed by `make` ended up loading right after defining
`built-in-class-p` but before actually defining the
built-in-classes so the computation of bitsets failed.
Po Lu [Wed, 22 May 2024 14:00:02 +0000 (22:00 +0800)]
Improve compatibility with Android's default text editor
* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
Request a selection update if `inputConnection' has been
established, to more closely emulate the OS text editing widget.
(onCreateInputConnection) [EmacsService.DEBUG_IC]: Print current
selection values before reporting them.
Basil L. Contovounesios [Wed, 22 May 2024 10:02:35 +0000 (12:02 +0200)]
; Fix last tree-sitter changes in Elisp manual.
Yuan Fu [Wed, 22 May 2024 06:15:00 +0000 (23:15 -0700)]
Improve treesit-major-mode-setup indentation setup (bug#71086)
* lisp/treesit.el (treesit-major-mode-setup): Setup indentation when
treesit-indent-function is set.
* doc/lispref/modes.texi (Parser-based Indentation): Fix manual.
Yuan Fu [Wed, 22 May 2024 06:01:33 +0000 (23:01 -0700)]
Fontify namespace in constant face in c++-ts-mode (bug#71070)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use
constant face.
Yuan Fu [Wed, 22 May 2024 05:40:32 +0000 (22:40 -0700)]
Address a common pitfall in tree-sitter's manual section (bug#71048)
* doc/lispref/parsing.texi (Multiple Languages): Add example for
treesit-language-at-point-function.
Dmitry Gutov [Tue, 21 May 2024 23:51:51 +0000 (02:51 +0300)]
etags-regen-program: Use more robust default value
* lisp/progmodes/etags-regen.el (etags-regen-program):
Default to the value of the variable etags-program-name.
Juri Linkov [Tue, 21 May 2024 17:22:31 +0000 (20:22 +0300)]
Use read-from-minibuffer instead of read-string for dired-do-touch
* lisp/dired-aux.el (dired-mark-read-string): Use read-from-minibuffer
instead of read-string when op-symbol is 'touch', since it's more clear
when read-from-minibuffer returns an empty string for RET,
and it was used in dired-mark-read-string initially (bug#70725).
Michael Albinus [Tue, 21 May 2024 16:13:40 +0000 (18:13 +0200)]
Fix some Tramp oddities
* lisp/net/tramp-container.el: Move connection-local settings
where they belong to.
* lisp/net/tramp-sshfs.el (tramp-connection-properties): Do not
set connection property "direct-async-process".
(tramp-direct-async-process): Set connection-local value.
* test/lisp/net/tramp-tests.el (comp-warn-primitives): Declare.
(tramp-test18-file-attributes): Use it.
Stephen Berman [Tue, 21 May 2024 13:04:43 +0000 (15:04 +0200)]
; Avoid byte-compiler warning in todo-mode.el differently
* lisp/calendar/todo-mode.el (todo-mode-map): Define it without a
value before its use in 'todo-insert-item--next-param' to pacify
the byte-compiler.
(todo-insert-item--next-param): Move back to its previous location
to keep it under the outline heading with related code.
Eli Zaretskii [Tue, 21 May 2024 11:17:24 +0000 (14:17 +0300)]
; Avoid byte-compiler warning in todo-mode.el
* lisp/calendar/todo-mode.el (todo-insert-item--next-param): Move
to after the definition of 'todo-mode-map', which this function
uses. This avoids byte-compiler warning.
Stephen Berman [Tue, 21 May 2024 09:04:17 +0000 (11:04 +0200)]
Fix todo-mode item insertion bug (bug#70937)
* lisp/calendar/todo-mode.el (todo-insert-item--next-param):
Initially assign each key in todo-mode-map a function identifying
it as invalid for item insertion, thus preventing mistakenly
pressing a key from executing an unwanted different todo-mode
command; the actual item insertion keys are redefined when looping
over the item insertion parameters.
Juri Linkov [Tue, 21 May 2024 06:20:01 +0000 (09:20 +0300)]
Use read-string instead of completing-read for dired-do-touch
* lisp/dired-aux.el (dired-mark-read-string): Use read-string
when op-symbol is 'touch' (bug#70725).
Juri Linkov [Tue, 21 May 2024 06:16:18 +0000 (09:16 +0300)]
Fix for 'vc-default-patch-addressee' recently added to .dir-locals.el
* lisp/vc/vc.el: Add autoloaded setting of 'safe-local-variable' property
for 'vc-default-patch-addressee' exactly like it's already done
for 'vc-prepare-patches-separately'.
Jared Finder [Tue, 21 May 2024 02:21:29 +0000 (19:21 -0700)]
Do not message for repeated enable/disable of tab-line-mode
tab-line-mode should not inform the user of an unexpected change
when enabling the mode if already enabled. For example, when
running (tab-line-mode 1) repeatedly (bug#68765).
* lisp/tab-line.el (tab-line-mode): Modify case when user is informed.
Jim Porter [Tue, 21 May 2024 00:38:00 +0000 (17:38 -0700)]
; * lisp/eshell/em-unix.el (eshell-grep): Fix "plain grep" behavior.
Jim Porter [Mon, 20 May 2024 19:45:13 +0000 (12:45 -0700)]
Support text overlays for thingatpt provider helpers
* lisp/thingatpt.el (thing-at-point-for-text-property)
(forward-thing-for-text-property)
(bounds-of-thing-at-point-for-text-property): Rename to...
(thing-at-point-for-char-property)
(forward-thing-for-char-property)
(bounds-of-thing-at-point-for-char-property): ... and add overlay
support. Update callers.
* test/lisp/thingatpt-tests.el (thing-at-point-providers)
(forward-thing-providers, bounds-of-thing-at-point-providers): Test
overlays too.
* test/lisp/progmodes/bug-reference-tests.el (test-thing-at-point): Test
'bounds-of-thing-at-point' and 'forward-point'.
* etc/NEWS: Update function names in announcement.
Jim Porter [Mon, 20 May 2024 19:37:22 +0000 (12:37 -0700)]
Improve implementation of 'forward-thing' using custom providers
Now, call all the custom providers for each step, using the provider
that moves point the smallest non-zero amount. This allows multiple
providers for a given "thing" to work nicely together.
* lisp/thingatpt.el (forward-thing-provider-alist): Update docstring.
(forward-thing): New implementation to call each provider N times.
(forward-thing-for-text-property): Take BACKWARD instead of N. Update
callers.
* test/lisp/thingatpt-tests.el (thing-at-point-providers)
(forward-thing-providers): Add more checks.
(consecutive-things-at-point): New test.
Paul Eggert [Mon, 20 May 2024 17:12:56 +0000 (10:12 -0700)]
Sync m4/byteswap.m4 from Gnulib
* m4/byteswap.m4: Copy from Gnulib. This fixes a configure
glitch on macOS reported by Mattias Engdegård
Michael Albinus [Mon, 20 May 2024 14:22:17 +0000 (16:22 +0200)]
Tramp code cleanup
* lisp/net/tramp-sh.el (tramp-find-shell, tramp-find-inline-compress)
(tramp-get-remote-path):
* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
Use `tramp-warning'.
* test/lisp/net/tramp-tests.el (tramp--test-container-p):
Add "kubernetes", "run0" and "nspawn".
(tramp--test-toolbox-p): New defun.
(tramp-test45-asynchronous-requests): Use it.
(tramp--test-check-files): Adapt regexp.
Po Lu [Mon, 20 May 2024 13:13:44 +0000 (21:13 +0800)]
Adapt last change to Android
* src/sfntfont.c (sfnt_parse_style): Replace unrepresentable
characters in DESC->adstyle with ` '.
Po Lu [Mon, 20 May 2024 12:59:32 +0000 (20:59 +0800)]
Circumvent bug#70989
* src/ftfont.c (get_adstyle_property): Substitute a space for
unrepresentable adstyle characters. (bug#70989)
Eli Zaretskii [Mon, 20 May 2024 12:29:39 +0000 (15:29 +0300)]
Fix visiting zip archives inside tar archives
* lisp/tar-mode.el (tar-archive-from-tar): New local variable.
(tar-extract): Set it non-nil for an extracted member that happens
to be arc-mode archive.
* lisp/arc-mode.el (tar-archive-from-tar): Defvar it.
(archive-unique-fname): Make sure FNAME can be created in DIR,
even if FNAME is provided as an absolute file name (this happens
if the archive is a member of a Tar archive, for example).
(archive-extract): Set 'archive-remote' for archives that were
extracted from Tar archives. (Bug#70987)
Philip Kaludercic [Tue, 13 Feb 2024 09:52:24 +0000 (10:52 +0100)]
; * .dir-locals.el: Set 'vc-default-patch-addressee'
Juri Linkov [Mon, 20 May 2024 06:22:10 +0000 (09:22 +0300)]
New tests for nested archives (bug#70987)
* test/lisp/tar-mode-tests.el (tar-mode-test-tar-extract-zip-and-gz):
* test/lisp/arc-mode-tests.el (arc-mode-test-zip-extract-tar-and-gz):
New tests.
* test/data/decompress/tzg.tar.gz:
* test/data/decompress/ztg.zip:
New data files to test decompressing of different combinations
of nested tar and zip archives.
Jim Porter [Sat, 11 May 2024 18:41:11 +0000 (11:41 -0700)]
Tell direction in prompts for '(previous|next)-matching-history-element'
Previously, this always said "Previous" for
'previous-matching-history-element' (likewise "Next"). Now, the prompt
accounts for a negative prefix argument changing the search direction
(bug#70882).
* lisp/simple.el (previous-matching-history-element)
(next-matching-history-element): Consult numeric prefix argument to
determine the prompt string.
Jim Porter [Mon, 29 Apr 2024 04:19:53 +0000 (21:19 -0700)]
Allow defining custom providers for more "thingatpt" functions
This also fixes an issue in EWW and bug-reference-mode where
(thing-at-point 'url) at the end of a URL would return nil.
See <https://lists.gnu.org/archive/html/emacs-devel/2024-02/msg00200.html>.
* lisp/thingatpt.el (forward-thing-provider-alist)
(bounds-of-thing-at-point-provider-alist): New variables...
(forward-thing, bounds-of-thing-at-point): ... use them.
(text-property-search-forward, text-property-search-backward)
(prop-match-beginning, prop-match-end): Declare.
(thing-at-point-for-text-property, forward-thing-for-text-property)
(bounds-of-thing-at-point-for-text-property): New functions.
* lisp/net/eww.el (eww--url-at-point): Use
'thing-at-point-for-text-property'.
(eww--bounds-of-url-at-point, eww--forward-url): New functions...
(eww-mode): ... use them.
* lisp/progmodes/bug-reference.el (bug-reference--url-at-point): Use
'thing-at-point-for-text-property'.
(bug-reference--bounds-of-url-at-point, bug-reference--forward-url): New
functions...
(bug-reference--init): ... use them.
* test/lisp/thingatpt-tests.el (thing-at-point-providers)
(forward-thing-providers, bounds-of-thing-at-point-providers): New
tests.
* etc/NEWS: Announce this change.
Po Lu [Mon, 20 May 2024 01:10:57 +0000 (09:10 +0800)]
; Stylistic adjustments to sfnt.c
* src/sfnt.c (sfnt_map_table, sfnt_read_table): Adapt to coding
style of another project using this module.
Paul Eggert [Sun, 19 May 2024 15:48:52 +0000 (08:48 -0700)]
Tweak STORE_NUMBER arg type
* src/regex-emacs.c (STORE_NUMBER): Make the arg int, not int16_t.
There’s no need for the caller to convert to int16_t, and using
int makes the machine code a bit smaller (and presumably a bit
faster) on x86-64 with GCC 14.
Paul Eggert [Sun, 19 May 2024 15:42:57 +0000 (08:42 -0700)]
Port knuth_hash to odd platforms
* src/lisp.h (hash_hash_t, knuth_hash): Use unsigned int and
unsigned long long int rather than uint32_t and uint64_t, as POSIX
does not guarantee the presence of uint64_t, and uint32_t and
uint64_t both in theory have problems with undefined behavior on
integer overflow. This doesn’t affect behavior (or even machine
code) on typical platforms.
Paul Eggert [Sun, 19 May 2024 02:12:55 +0000 (19:12 -0700)]
Update from Gnulib by running admin/merge-gnulib
Paul Eggert [Sat, 18 May 2024 20:18:32 +0000 (13:18 -0700)]
Pacify -Wanalyzer-null-dereference in sfnt.c
* src/sfnt.c (sfnt_map_table, sfnt_read_table)
(sfnt_read_cvar_table): Pacify GCC -Wanalyzer-null-dereference.
The change to sfnt_read_cvar_table fixes what appears to be
an actual null-dereference bug.
Eli Zaretskii [Sun, 19 May 2024 13:40:42 +0000 (16:40 +0300)]
; * lisp/menu-bar.el (kill-this-buffer): Fix typo.
Po Lu [Sun, 19 May 2024 12:57:09 +0000 (12:57 +0000)]
Fix kill-this-buffer's detection of minibuffer frames
* lisp/menu-bar.el (kill-this-buffer): Don't test against
menu-updating-frame, because this variable is only meaningful
during menu bar updates.
Andrea Corallo [Sun, 19 May 2024 12:50:39 +0000 (14:50 +0200)]
Silence 3 warnings for non sqlite builds
* lisp/emacs-lisp/multisession.el (sqlite-commit)
(sqlite-transaction, sqlite-rollback): Declare.
Michael Albinus [Sun, 19 May 2024 12:13:03 +0000 (14:13 +0200)]
Add connection-local variable `tramp-direct-async-process'
* doc/misc/tramp.texi (Predefined connection information):
Remove "direct-async-process".
(Remote processes): Explain connection-local variable
tramp-direct-async-process.
* etc/NEWS: Add connection-local variable 'tramp-direct-async-process'.
* lisp/net/tramp-compat.el (tramp-compat-connection-local-p): Sync with
Emacs source.
(tramp-compat-connection-local-value): New defalias.
* lisp/net/tramp-message.el (tramp-warning): New defsubst.
* lisp/net/tramp.el (tramp-direct-async-process): New defvar.
(tramp-direct-async-process-p): Use connection-local variable for
check. (Bug#70959)
* test/lisp/net/tramp-tests.el
(tramp--test-deftest-direct-async-process):
Use connection-local-variable `tramp-direct-async-process'.
Stefan Kangas [Sun, 19 May 2024 08:43:59 +0000 (10:43 +0200)]
Add convenience binding for html-paragraph to mhtml-mode
* lisp/textmodes/sgml-mode.el (html-mode-map): Bind 'C-c C-c p' to
'html-paragraph'. (Bug#70533)
Eli Zaretskii [Sun, 19 May 2024 08:23:19 +0000 (11:23 +0300)]
; * lisp/color.el (color-oklab-to-xyz): Doc fix.
Eli Zaretskii [Sun, 19 May 2024 08:21:22 +0000 (11:21 +0300)]
; * etc/NEWS: Announce Oklab support.
Robert Church [Tue, 14 May 2024 00:28:28 +0000 (17:28 -0700)]
Add Oklab color space utility functions in color.el.
* lisp/color.el (color-oklab-to-xyz, color-oklab-to-srgb)
(color-srgb-to-oklab): New functions. (Bug#70963)
* test/lisp/color-tests.el (color-tests-oklab-to-xyz)
(color-tests-xyz-to-oklab, color-tests-srgb-to-oklab)
(color-tests-oklab-to-srgb): New tests.
Morgan Smith [Sun, 12 May 2024 13:19:30 +0000 (09:19 -0400)]
* lisp/window.el (fit-window-to-buffer): Fix width calculation
When PIXELWISE is nil, we still calculate width in pixels and
then convert it to columns. However, part of the calculation
was using columns where it should have used pixels. (Bug#70894)
Eli Zaretskii [Sun, 19 May 2024 07:58:52 +0000 (10:58 +0300)]
Fix MinGW build with GCC 14 and later
* configure.ac [mingw]: Add -Wno-error=implicit-function-declaration
to GCC_TEST_OPTIONS. (Bug#70889)
Jared Finder [Sun, 19 May 2024 03:51:09 +0000 (20:51 -0700)]
Fix byte compiler warnings in window-tool-bar.el
* lisp/window-tool-bar.el (window-tool-bar--static-if)
(window-tool-bar--ignored-event-types): Avoid byte compiler
seeing variables obsolete in Emacs 30 and up. (Bug#68765)
Po Lu [Sun, 19 May 2024 01:46:26 +0000 (09:46 +0800)]
Fix the DJGPP build
* config.bat: Generate stdbit.in-h from stdbit.in.h.
* msdos/sedlibmk.inp (GL_STDC_...): Enable generation
of ISO C2x features.
(STDBIT_H): Define to stdbit.h.
(GL_GENERATE_STDBIT_H_CONDITION): Define to 1.
Po Lu [Sun, 19 May 2024 01:38:50 +0000 (09:38 +0800)]
Fix Android 2.2 build
* src/android.h: Include sys/select.h.
Po Lu [Sun, 19 May 2024 01:16:59 +0000 (09:16 +0800)]
Fix Android build
* src/androidfns.c: Include stdlib.h.
Stefan Kangas [Sat, 18 May 2024 23:10:50 +0000 (01:10 +0200)]
* lisp/play/doctor.el: Add a few more word meanings.
F. Jason Park [Thu, 9 May 2024 02:03:58 +0000 (19:03 -0700)]
Reconcile erc-stamp--date-stamps when merging buffers
* etc/ERC-NEWS: Mention new face `erc-information'.
* lisp/erc/erc-button.el (erc-button-add-buttons): Skip buttonization
when the "msg prop" `erc--skip' is present and contains the symbol
`button'. Set `alist' to nil in the same guard condition as a
roundabout way of suppressing further processing.
* lisp/erc/erc-networks.el (erc--insert-admin-message): Forward
declaration.
(erc-networks--insert-transplanted-content)
(erc-networks--transplant-buffer-content): Replace former with latter.
Change signature to take source and destination buffers as parameters.
(erc-networks--transplant-target-buffer-function): New function-valued
variable.
(erc-networks--target-transplant-in-progress-p): New variable, a flag
for downstream code to detect when a transplant is underway.
(erc-networks--reclaim-orphaned-target-buffers): Defer to
`erc-networks--transplant-target-buffer-function' to handle the actual
transplant business. Crucially, kill the buffer afterwards instead of
beforehand. If new buffer-association bugs emerge related to the
combining of old or renamed target buffers, this reordering may be at
fault.
(erc-networks--copy-over-server-buffer-contents): Pass old and new
buffers to `erc-networks--insert-transplanted-content'.
* lisp/erc/erc-stamp.el
(erc-stamp--defer-date-insertion-on-post-modify): Set `fn' slot of
`erc-stamp--date' instance to `ignore' when running the actual
callback in order to conserve a little space.
(erc-stamp--date-mode): Add and remove hook members for
`erc-networks--copy-server-buffer-functions' and
`erc-networks--transplant-target-buffer-function'.
(erc-insert-timestamp-left-and-right): Always clear
`erc-timestamp-last-inserted-right' to ensure a right stamp
accompanies every date stamp.
(erc-stamp--dedupe-date-stamps)
(erc-stamp--dedupe-date-stamps-from-buffer)
(erc-stamp--dedupe-date-stamps-from-target-buffer): New functions.
Date stamp behavior was revamped as part of bug#60936.
* lisp/erc/erc.el (erc-informational): New face.
(erc--insert-admin-message): New function to hide some "msg prop"
complexity from "upstream" libraries, like `erc-networks', and thus
avoid more forward-declarations. A less smelly approach would be to
devise a general interface owned by such libraries, or erc-common,
that `erc-mode' could then hook into on init.
(erc-display-message-highlight): Make face matching more limber to
accommodate the convention of face names lacking a "-face" suffix.
(erc-message-english-graft): New variable.
(erc-kill-channel): Inhibit execution of hook when
`erc-networks--target-transplant-in-progress-p' is non-nil.
* test/lisp/erc/erc-networks-tests.el
(erc-networks--rename-server-buffer--no-existing--orphan)
(erc-networks--rename-server-buffer--existing--reuse)
(erc-networks--rename-server-buffer--local-match)
(erc-networks--rename-server-buffer--local-nomatch): Use helper to
initialize markers.
* test/lisp/erc/erc-stamp-tests.el (erc-stamp--dedupe-date-stamps):
New test. (Bug#70928)
F. Jason Park [Wed, 15 May 2024 04:09:55 +0000 (21:09 -0700)]
Don't kill server buffer with erc-kill-buffer-on-part
* etc/ERC-NEWS: Mention new flag `erc-killing-buffer-on-part-p' and
the renaming of `erc-kill-channel'.
* lisp/erc/erc-backend.el (erc-server-PART): Only kill a buffer on
behalf of `erc-kill-buffer-on-part' when the buffer hasn't already
been killed, and bind `erc-killing-buffer-on-part-p' to t when doing
so.
* lisp/erc/erc-log.el (erc-conditional-save-buffer): Don't save logs
when the buffer parameter is nil because that causes the server buffer
to be saved out. It's possible that user code relying on this
longstanding bug will be affected, however, by default, the server
buffer will also be saved out independently at designated junctures.
* lisp/erc/erc.el (erc-part-hook): Redo doc string.
(erc-killing-buffer-on-part-p): New variable, a flag to prevent
redundant execution of `erc-kill-channel-hook' members concerned with
parted channels.
(erc-kill-buffer-on-part): Tweak doc string.
(erc-kill-channel-hook): Use new name for `erc-kill-channel',
`erc-part-channel-on-kill'.
(erc-kill-channel, erc-part-channel-on-kill): Rename former to latter,
and inhibit execution when `erc-killing-buffer-on-part-p' is non-nil.
* test/lisp/erc/erc-scenarios-base-kill-on-part.el: New file.
(Bug#70840)
Augusto Stoffel [Wed, 24 Apr 2024 16:13:36 +0000 (18:13 +0200)]
comint.el: Add applicable modes to 'interactive' forms
* lisp/comint.el (comint-dynamic-list-input-ring-select)
(comint-dynamic-list-input-ring, comint-restore-input)
(comint-previous-input, comint-next-input)
(comint-previous-matching-input, comint-next-matching-input)
(comint-previous-matching-input-from-input)
(comint-next-matching-input-from-input)
(comint-replace-by-expanded-history, comint-magic-space)
(comint-history-isearch-backward)
(comint-history-isearch-backward-regexp, comint-send-input)
(comint-truncate-buffer, comint-strip-ctrl-m)
(comint-show-maximum-output, comint-copy-old-input, comint-bol)
(comint-send-invisible, comint-delete-output, comint-write-output)
(comint-append-output-to-file, comint-show-output)
(comint-clear-buffer, comint-interrupt-subjob, comint-kill-subjob)
(comint-quit-subjob, comint-stop-subjob, comint-continue-subjob)
(comint-kill-input, comint-delchar-or-maybe-eof, comint-send-eof)
(comint-backward-matching-input, comint-forward-matching-input)
(comint-next-prompt, comint-previous-prompt)
(comint-insert-previous-argument, comint-kill-whole-line)
(comint-kill-region, comint-dynamic-complete-filename)
(comint-replace-by-expanded-filename)
(comint-dynamic-list-filename-completions)
(comint-get-next-from-history, comint-accumulate)
(comint-goto-process-mark, comint-bol-or-process-mark)
(comint-set-process-mark, comint-redirect-cleanup)
(comint-redirect-send-command)
(comint-redirect-send-command-to-process, comint-fontify-input-mode):
Add mode to interactive form. (Bug#70555)
nibon7 [Tue, 26 Mar 2024 09:24:33 +0000 (17:24 +0800)]
eglot: Add blueprint language server (Bug#70015)
* lisp/progmodes/eglot.el (eglot-server-programs): Add
blueprint-compiler.
kobarity [Sat, 24 Feb 2024 14:11:02 +0000 (23:11 +0900)]
Improve fontification of Python assignments with type hints
* lisp/progmodes/python.el (python-font-lock-keywords-maximum-decoration):
Fontify type hints of assignment statement. (Bug#69357)
* test/lisp/progmodes/python-tests.el
(python-font-lock-assignment-statement-11)
(python-font-lock-assignment-statement-12)
(python-font-lock-assignment-statement-13)
(python-font-lock-assignment-statement-18): Add fontification of type
hints.
(python-font-lock-assignment-statement-19): New test.
Andrea Corallo [Sat, 18 May 2024 20:17:58 +0000 (22:17 +0200)]
* admin/syncdoc-type-hierarchy.el (syncdoc-make-type-table): Clean-up quote.
Stefan Kangas [Sat, 18 May 2024 19:28:49 +0000 (21:28 +0200)]
; * etc/NEWS: Announce last change.
Jostein Kjønigsen [Thu, 15 Feb 2024 20:54:14 +0000 (21:54 +0100)]
nxml-mode: Add schemas for Mono/.NET related files
* etc/schema/dotnet-appconfig.rnc:
* etc/schema/dotnet-packages-config.rnc:
* etc/schema/dotnet-packages-props.rnc:
* etc/schema/dotnet-resx.rnc:
* etc/schema/msbuild.rnc:
* etc/schema/nuget.rnc:
* etc/schema/nuspec.rnc: New files.
* etc/schema/README: Document copyright status of above new files.
* etc/schema/schemas.xml: Use above new files to support Mono/.NET
development related XML files.
This change was discussed in:
https://lists.gnu.org/r/emacs-devel/2024-02/msg00638.html
Stefan Kangas [Sat, 18 May 2024 18:33:16 +0000 (20:33 +0200)]
; Fix typo (Bug#71043)
Stefan Kangas [Sat, 18 May 2024 17:23:11 +0000 (19:23 +0200)]
Fix double periods in `doctor-symptoms`
* lisp/play/doctor.el (doctor-symptoms): Don't produce double periods.
Paul Eggert [Sun, 12 May 2024 21:26:32 +0000 (14:26 -0700)]
Simplify 32-bit Android bit fiddling
* src/sfnt.c: Include stdbit.h.
(sfnt_count_leading_zero_bits) [!INT64_MAX]: Remove this function,
which was confusingly named as it actually returned 31 minus the
number of leading zero bits.
(sfnt_multiply_divide_2) [!INT64_MAX]: Use stdc_leading_zeros instead.
Paul Eggert [Sun, 12 May 2024 21:22:58 +0000 (14:22 -0700)]
Prefer stdbit.h to count-one-bits.h etc
C23's <stdbit.h> in the long run should be better supported than
Gnulib's count-one-bits.h and similar headers, so switch to the
C23 primitives, with a Gnulib fallback for platforms lacking C23.
* admin/merge-gnulib (GNULIB_MODULES): Remove count-leading-zeros,
count-one-bits, count-trailing-zeros. Add stdc_bit_width,
stdc_count_ones, stdc_trailing_zeros.
* lib/count-leading-zeros.c, lib/count-leading-zeros.h:
* lib/count-one-bits.c, lib/count-one-bits.h:
* lib/count-trailing-zeros.c, lib/count-trailing-zeros.h: Remove.
* lib/stdbit.c, lib/stdbit.in.h, lib/stdc_bit_width.c:
* lib/stdc_count_ones.c, lib/stdc_leading_zeros.c:
* lib/stdc_trailing_zeros.c, m4/stdbit_h.m4:
New files, copied from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* src/data.c: Do not include count-one-bits.h, count-trailing-zeros.h.
Instead, rely on lisp.h including stdbit.h.
(Flogcount, Fbool_vector_count_population)
(Fbool_vector_count_consecutive): Use stdbit.h macros instead of
count-one-bits.h and count-trailing-zeros.h macros.
(shift_right_ull, count_one_bits_word, pre_value)
(count_trailing_zero_bits): Remove; no longer needed.
* src/lisp.h: Include stdbit.h instead of count-leading-zeros.h.
(elogb): Use stdbit.h macro instead of count-leading-zeros.h macro.
Paul Eggert [Sat, 18 May 2024 16:33:03 +0000 (09:33 -0700)]
Update from Gnulib by running admin/merge-gnulib
Stefan Kangas [Sat, 18 May 2024 17:14:21 +0000 (19:14 +0200)]
List Andrea Corallo as co-maintainer in ack.texi
* doc/emacs/ack.texi (Acknowledgments): List Andrea Corallo as
co-maintainer from 29.3 onwards.
Eshel Yaron [Sat, 27 Apr 2024 18:47:34 +0000 (20:47 +0200)]
New functions '(set-)window-cursor-type'
* src/window.h (struct window): Add 'cursor_type' slot.
(wset_cursor_type): New inline function.
* src/xdisp.c (get_window_cursor_type): Consult 'cursor_type'.
* src/window.c (make_window): Initialize 'cursor_type' to t.
(Fset_window_cursor_type, Fwindow_cursor_type): New functions.
(syms_of_window): List their symbols.
* doc/lispref/windows.texi (Window Point): Document them.
* doc/lispref/frames.texi (Cursor Parameters): Mention
new 'set-window-cursor-type'.
* etc/NEWS: Announce new functions. (Bug#70622)
Dmitry Gutov [Sat, 18 May 2024 13:30:23 +0000 (16:30 +0300)]
minibuffer-completion-help: Fix earlier mistake
* lisp/minibuffer.el (minibuffer-completion-help): Fix earlier
mistake. Instead of altering a variable whose value is
immutable (and already captured in a saved list), move the
reference to said list to a lexical binding and alter that
list's second element instead.
https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00875.html
Po Lu [Sat, 18 May 2024 12:45:35 +0000 (20:45 +0800)]
Housekeeping around androidselect.c
* java/org/gnu/emacs/EmacsClipboard.java (setClipboard)
(getClipboard):
* java/org/gnu/emacs/EmacsSdk11Clipboard.java (setClipboard)
(getClipboard):
* java/org/gnu/emacs/EmacsSdk8Clipboard.java (setClipboard)
(getClipboard): Save and return Strings rather than byte arrays.
* src/androidselect.c (android_init_emacs_clipboard)
(Fandroid_set_clipboard, Fandroid_get_clipboard): Adjust to
match.
Eli Zaretskii [Sat, 18 May 2024 11:56:54 +0000 (07:56 -0400)]
Merge from origin/emacs-29
a4828155d8f ; * doc/lispintro/emacs-lisp-intro.texi (nthcdr): Whitesp...
df1a9e42ba4 Document :box attribute caveats when used on display strings
ca17bc8dd0b Improve documentation of 'movemail'
d47aa33bcdb Replace incorrect link in Rmail chapter of Emacs manual
35138b90dd2 ; * doc/lispref/parsing.texi (Parsing Program Source): Im...
3dd09516c9a ; Improve documentation of 'set-fontset-font'
042b58b5ff4 ; * doc/emacs/search.texi (Word Search): Add index entry.
60b1768dc50 ; * src/window.c (Fwindow_scroll_bars): Doc fix.
Eli Zaretskii [Sat, 18 May 2024 11:38:29 +0000 (14:38 +0300)]
; * doc/lispintro/emacs-lisp-intro.texi (nthcdr): Whitespace (bug#71033).
Ergus [Wed, 15 May 2024 13:10:02 +0000 (15:10 +0200)]
Add support for Rust compilation messages
* etc/compilation.txt (Rust): Add Rust/cargo examples.
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Add rust/cargo error and
warning patterns. (Bug#70794)
Tony Zorman [Sun, 15 Oct 2023 14:51:00 +0000 (16:51 +0200)]
use-package: Add ':ignored-files' support to ':vc' keyword
* lisp/use-package/use-package-core.el (use-package-split-when):
New utility function to split a list whenever a specified
predicate returns t.
(use-package-vc-valid-keywords): A new defconst to gather all
allowed keywords.
(use-package-normalize--vc-arg): Properly normalize the
':ignored-files' keyword, in that the following are all valid
ways of entering files:
:ignored-files "a"
:ignored-files ("a")
:ignored-files "a" "b" "c"
:ignored-files ("a" "b" "c")
(use-package-normalize/:vc): Adjust normalization, now that we
do not necessarily receive a valid plist as an input. (Bug#66567)
* test/lisp/use-package/use-package-tests.el
(use-package-test-normalize/:vc): Add tests for ':ignored-files'
keyword.
Tony Zorman [Sun, 15 Oct 2023 14:50:00 +0000 (16:50 +0200)]
use-package: Update list of valid :vc keywords
* lisp/use-package/use-package-core.el: Add ':shell-command'
and ':make' to valid keywords. (Bug#66567)
Eli Zaretskii [Sat, 18 May 2024 09:55:34 +0000 (12:55 +0300)]
Fix printing the result by 'eval-print-last-sexp'
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp): Record the
desired output stream before evaluating the expression.
(Bug#70931)
Jared Finder [Fri, 26 Jan 2024 23:44:12 +0000 (15:44 -0800)]
Adding window-tool-bar package (bug#68765).
* lisp/window-tool-bar.el: New file.
Jared Finder [Fri, 26 Jan 2024 18:08:30 +0000 (10:08 -0800)]
Add user option to only display default tool bar
This works well with `window-tool-bar-mode', to be added in upcoming
commit. Then the default tool bar is displayed frame-wide and
mode-specific tool bars are displayed in the window that mode is
active in.
* lisp/tool-bar.el (tool-bar-always-show-default): New user option.
(tool-bar--cache-key, tool-bar-make-keymap-1): Return default tool bar
when option is set.
Jared Finder [Mon, 13 May 2024 03:35:50 +0000 (20:35 -0700)]
Inform user when tab-line-mode command makes no change
* lisp/tab-line.el (tab-line-mode): Display message when command is
run on already altered tab-line-format.
Eli Zaretskii [Sat, 18 May 2024 09:15:21 +0000 (12:15 +0300)]
Document :box attribute caveats when used on display strings
* doc/lispref/display.texi (Replacing Specs, Face Attributes):
Mention special considerations when a display string has a
':box' face attribute identical to the surrounding buffer text.
Suggested by JD Smith <jdtsmith@gmail.com>. (Bug#70637)
Joost Kremers [Tue, 7 May 2024 09:52:27 +0000 (11:52 +0200)]
Make 'vtable-insert-object' more versatile
* lisp/emacs-lisp/vtable.el (vtable-insert-object): Rename
argument AFTER-OBJECT to LOCATION; allow use of index to
refer to the insertion position; add argument BEFORE.
(Bug#70664).
* etc/NEWS:
* doc/misc/vtable.texi (Interface Functions): Document the
change.
* test/lisp/emacs-lisp/vtable-tests.el
(test-vtable-insert-object): New test.
Andrea Corallo [Sat, 18 May 2024 06:59:17 +0000 (08:59 +0200)]
* Work around GCC bug affecting Garbage Collection (bug#65727).
* src/lisp.h (flush_stack_call_func): Prevent GCC sibling call
optimization to run with an asm inline.
Eli Zaretskii [Sat, 18 May 2024 06:12:54 +0000 (09:12 +0300)]
Improve documentation of 'movemail'
* doc/emacs/rmail.texi (Movemail): Fix the name of the Mailutils
manual in the printed version. Add index entries. Move the
description of remote mailboxes to...
(Remote Mailboxes): ...here, to avoid duplication.
Jakub Ječmínek [Fri, 17 May 2024 20:07:33 +0000 (22:07 +0200)]
Replace incorrect link in Rmail chapter of Emacs manual
* doc/emacs/rmail.texi (Movemail): Fix cross-reference to a node
in the Mailutils manual. (Bug#71018)
Dmitry Gutov [Sat, 18 May 2024 00:24:56 +0000 (03:24 +0300)]
Fix project-find-regexp in remote projects
* lisp/progmodes/xref.el (xref--hits-file-prefix):
New variable. Something to prepend to each file name (bug#69233).
(xref--convert-hits): Use it to also store the "default directory"
part of the filename conditionally on whether it's remote.
(xref--collect-matches): Use the new variable here.
Dmitry Gutov [Sat, 18 May 2024 00:00:29 +0000 (03:00 +0300)]
xref--group-name-for-display: Undo most of the latest change
* lisp/progmodes/xref.el (xref--group-name-for-display):
Remove the DD-SUFFIX parameter, returning the function more like
to how it was (bug#69233).
(xref--analyze, xref--add-log-current-defun):
Revert the previous change accordingly.
* test/lisp/progmodes/xref-tests.el: Undo the last change.
Eli Zaretskii [Fri, 17 May 2024 16:03:39 +0000 (19:03 +0300)]
; * doc/lispref/parsing.texi (Parsing Program Source): Improve indexing.
Po Lu [Fri, 17 May 2024 11:21:05 +0000 (19:21 +0800)]
Port to certain Android environments with no GUI
* configure.ac (USER_FULL_NAME): Define to
android_user_full_name only when a GUI system is being built.
Otherwise, set to pw->pw_gecos or NULL consistently with the
presence of pw->pw_gecos.
* src/editfns.c (Fuser_full_name): Adjust to match. Accept NULL
values from USER_FULL_NAME.
Eli Zaretskii [Fri, 17 May 2024 07:18:35 +0000 (10:18 +0300)]
; Improve documentation of 'set-fontset-font'
* doc/lispref/display.texi (Fontsets):
* src/fontset.c (Fset_fontset_font): Doc fix (bug#70993).
Eli Zaretskii [Fri, 17 May 2024 06:43:20 +0000 (09:43 +0300)]
; Avoid compiler warning in w32term.c
* src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
Avoid GCC 14 warning about storing address of local variable.