emacs.git
19 months ago* lisp/tab-bar.el (tab-bar-mouse-1): Avoid infinite recursion (bug#70086).
Juri Linkov [Mon, 6 May 2024 17:10:43 +0000 (20:10 +0300)]
* lisp/tab-bar.el (tab-bar-mouse-1): Avoid infinite recursion (bug#70086).

19 months ago* lisp/emacs-lisp/warnings.el (display-warning): Add guardrails for window.
Juri Linkov [Mon, 6 May 2024 17:00:23 +0000 (20:00 +0300)]
* lisp/emacs-lisp/warnings.el (display-warning): Add guardrails for window.

Check for non-nil 'window' returned from 'display-buffer' for the case when
users decide to use 'allow-no-window' in 'display-buffer-alist' (#70795).

19 months ago* lisp/tab-bar.el (tab-bar-select-restore-windows): Use 'special-mode'.
Juri Linkov [Mon, 6 May 2024 16:48:04 +0000 (19:48 +0300)]
* lisp/tab-bar.el (tab-bar-select-restore-windows): Use 'special-mode'.

19 months ago* lisp/tab-bar.el: Support mouse clicks for multi-item 'global-mode-string'.
Juri Linkov [Mon, 6 May 2024 16:43:50 +0000 (19:43 +0300)]
* lisp/tab-bar.el: Support mouse clicks for multi-item 'global-mode-string'.

(tab-bar-format-global): Split elements of 'global-mode-string'
to separate items of the tab bar, so events for each item are
handled separately (bug#70086).

19 months ago(Fkey_description): Fix corner (bug#59305)
Stefan Monnier [Mon, 6 May 2024 15:19:11 +0000 (11:19 -0400)]
(Fkey_description): Fix corner (bug#59305)

* src/keymap.c (Fkey_description): Don't mistake latin-1 chars for
ASCII-chars-with-meta.

19 months agoExpressly disable large file APIs on Android 4.4 and earlier
Po Lu [Mon, 6 May 2024 12:55:49 +0000 (20:55 +0800)]
Expressly disable large file APIs on Android 4.4 and earlier

* configure.ac (CFLAGS): Add -D_FILE_OFFSET_BITS=32 on SDK 20
and earlier that unserviceable functions may not be selected.
Problem reported by Ruth Elburn <ruth@noreply.invalid>.

19 months agoRevert "Disable text conversion in map-ynp"
Eli Zaretskii [Mon, 6 May 2024 12:02:37 +0000 (15:02 +0300)]
Revert "Disable text conversion in map-ynp"

This reverts commit f50a58123a3d386b9bba7c4ba14df62479887bd4.
Please don't make such changes without discussing them.

19 months ago; Avoid byte-compiler warning in comp.el
Eli Zaretskii [Mon, 6 May 2024 10:54:19 +0000 (13:54 +0300)]
; Avoid byte-compiler warning in comp.el

* lisp/emacs-lisp/comp.el (comp--symbol-func-to-fun): Move to
before its first use.

19 months ago; * java/org/gnu/emacs/EmacsTileObject.java: Fix copyright dates.
Po Lu [Mon, 6 May 2024 09:23:57 +0000 (17:23 +0800)]
; * java/org/gnu/emacs/EmacsTileObject.java: Fix copyright dates.

19 months agoDisable text conversion in map-ynp
Po Lu [Mon, 6 May 2024 07:53:49 +0000 (15:53 +0800)]
Disable text conversion in map-ynp

* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Read response with
read-key, not read-char.

19 months agoOptimize stipples on Android
Po Lu [Mon, 6 May 2024 04:09:21 +0000 (12:09 +0800)]
Optimize stipples on Android

* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <tileObject>:
Change type to EmacsTileObject.
(markDirty): Create an EmacsTileObject rather than a
BitmapDrawable.

* java/org/gnu/emacs/EmacsTileObject.java: New file,
significantly leaner than BitmapDrawable.

19 months agoRemove unnecessary cons in function-type property
Andrea Corallo [Sun, 5 May 2024 21:39:01 +0000 (23:39 +0200)]
Remove unnecessary cons in function-type property

* lisp/emacs-lisp/comp-common.el (comp-function-type-spec): Remove
unnecessary car.
* lisp/emacs-lisp/comp.el (comp--intern-func-in-ctxt): Likewise.
* lisp/emacs-lisp/byte-run.el (byte-run--set-function-type): Update
lambda list.

19 months agoFix intra compilation unit function type declaration
Andrea Corallo [Sun, 5 May 2024 21:16:20 +0000 (23:16 +0200)]
Fix intra compilation unit function type declaration

* lisp/emacs-lisp/comp.el (comp-func): Add 'slot'.
(comp--intern-func-in-ctxt): Update.
(comp--get-function-cstr): Update.

19 months agoeglot.el: Require `track-changes` unconditionally
Stefan Monnier [Sun, 5 May 2024 21:23:29 +0000 (17:23 -0400)]
eglot.el: Require `track-changes` unconditionally

* lisp/emacs-lisp/track-changes.el: Bump version.

* lisp/progmodes/eglot.el: Require `track-changes` unconditionally.
(Package-Requires:): Add `track-changes`.
(eglot--track-changes-signal, eglot--signal-textDocument/didChange)
(eglot--managed-mode): Remove non-track-changes alternative code.
(eglot--before-change, eglot--after-change): Delete functions.

19 months agoFix Eshell handling of remote files like "/ssh:remote:~/file.txt"
Jim Porter [Sun, 5 May 2024 20:09:08 +0000 (13:09 -0700)]
Fix Eshell handling of remote files like "/ssh:remote:~/file.txt"

* lisp/eshell/em-glob.el (eshell-glob-convert): Use 'concat' instead of
'file-name-concat' to avoid extraneous slashes.
(eshell-extended-glob): Bail out if we didn't find a glob after all.

* test/lisp/eshell/em-glob-tests.el (tramp): Require.
(em-glob-test/convert/remote-start-directory): Use the mock remote
connection.
(em-glob-test/remote-user-directory): New test.

19 months agoFix tab-line-tabs-buffer-groups (bug#59438)
Gabriel do Nascimento Ribeiro [Sun, 5 May 2024 18:37:23 +0000 (21:37 +0300)]
Fix tab-line-tabs-buffer-groups (bug#59438)

* lisp/tab-line.el (tab-line-tabs-buffer-groups): Handle case
when variable 'tab-line-tabs-buffer-groups-sort-function' is nil.

19 months ago* lisp/tab-line.el: Use defcustom for group sort variables (bug#59438).
Juri Linkov [Sun, 5 May 2024 18:32:22 +0000 (21:32 +0300)]
* lisp/tab-line.el: Use defcustom for group sort variables (bug#59438).

(tab-line-tabs-buffer-group-sort-function)
(tab-line-tabs-buffer-groups-sort-function): Turn defvar into defcustom.
Suggested by Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>.
(tab-line-tabs-buffer-group-name): Fall back to
'tab-line-tabs-buffer-group-by-mode' when
'tab-line-tabs-buffer-group-function' is nil (its previous default value).

19 months agoFix lock-file format in Tramp
Michael Albinus [Sun, 5 May 2024 17:54:07 +0000 (19:54 +0200)]
Fix lock-file format in Tramp

* lisp/net/tramp.el (tramp-lock-file-info-regexp): BOOT_TIME can
be negative.  (Bug#70415)

19 months agoproject--vc-list-files: Use vc-git-command for better error reporting
Dmitry Gutov [Sun, 5 May 2024 17:19:48 +0000 (20:19 +0300)]
project--vc-list-files: Use vc-git-command for better error reporting

* lisp/progmodes/project.el (project--vc-list-files):
Use 'vc-git-command' for better error reporting
(https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00399.html).

19 months agoproject-find-regexp: Fix test
Dmitry Gutov [Sun, 5 May 2024 16:42:05 +0000 (19:42 +0300)]
project-find-regexp: Fix test

* test/lisp/progmodes/project-tests.el (project-find-regexp):
Add binding for project-list-file, to fix the test when running
in the terminal (reported on the mailing list).

19 months agoFix lock files on some versions of Cygwin
Eli Zaretskii [Sun, 5 May 2024 16:30:57 +0000 (19:30 +0300)]
Fix lock files on some versions of Cygwin

* src/filelock.c (current_lock_owner): Support negative boot-time
on rare systems.  (Bug#70415)

19 months ago(read-passwd-toggle-visibility): Fix some loose ends
Stefan Monnier [Sun, 5 May 2024 14:43:37 +0000 (10:43 -0400)]
(read-passwd-toggle-visibility): Fix some loose ends

* lisp/auth-source.el (read-passwd-toggle-visibility): Make sure
we operate on the minibuffer even if some other window was
selected when the little icon was pressed.  Don't hardcode the
keymap representation.  Use the `keymap` property rather than
the `local-map` property so it can't be accidentally shadowed
by something like a minor-mode map.

19 months ago; * etc/NEWS: Move 'Miscellaneous' subtopics last.
Mattias Engdegård [Sun, 5 May 2024 14:20:58 +0000 (16:20 +0200)]
; * etc/NEWS: Move 'Miscellaneous' subtopics last.

19 months agoRetract lexical cookie source load warning
Mattias Engdegård [Sat, 4 May 2024 14:18:09 +0000 (16:18 +0200)]
Retract lexical cookie source load warning

On balance it seems likely that the warning would annoy more people than
it would help, so let them deal with any actual problems when the
default is changed instead.  See discussion at:
https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00250.html

* src/lread.c (string_suffix_p, warn_missing_cookie, Fload)
(Feval_buffer):
* lisp/international/mule.el (load-with-code-conversion):
* lisp/startup.el (command-line--load-script):
* etc/NEWS:
Revert all changes, except for the generalised
`lisp_file_lexical_cookie` which may prove useful in the future.

19 months agoRun c-unmark-<>-around-region in after-change-functions always.
Alan Mackenzie [Sun, 5 May 2024 11:34:14 +0000 (11:34 +0000)]
Run c-unmark-<>-around-region in after-change-functions always.

This fixes bug#70435.

* lisp/progmodes/cc-engine.el (c-unmark-<>-around-region): Run
its contents in after-change-functions for a deletion, so that
c-new-BEG and c-new-END get set.  Add a new test (> end beg)
in a check for unterminated string handling.

19 months ago; Improve documentation of a recent change
Eli Zaretskii [Sun, 5 May 2024 05:20:39 +0000 (08:20 +0300)]
; Improve documentation of a recent change

* lisp/progmodes/project.el (project-files-relative-names):
* etc/NEWS: Improve documentation of 'project-files-relative-names'.

19 months agoNew variable 'project-files-relative-names'
Dmitry Gutov [Sun, 5 May 2024 03:27:39 +0000 (06:27 +0300)]
New variable 'project-files-relative-names'

* lisp/progmodes/project.el (project-files-relative-names):
New variable (bug#69233).
(project--files-in-directory): Honor it.
(project--vc-list-files): Here too.
(project-find-regexp): Use it to improve performance.
(project-or-external-find-regexp): Add a TODO.
(project-find-file): Use it here too.
(project--read-file-cpd-relative, project--read-file-absolute):
Try to handle file lists with absolute and relative files names.
(project-find-file-in): Set default-directory, so relative names
are interpreted correctly.

* lisp/progmodes/xref.el (xref-matches-in-files):
Consider that the first in FILES can be a relative file name.

* test/lisp/progmodes/project-tests.el (project-find-regexp):
New test.

* etc/NEWS: Mention it.

19 months agoDon't permit C-x 8 RET &c in isearch.el to contaminate search string
Po Lu [Sun, 5 May 2024 01:49:09 +0000 (09:49 +0800)]
Don't permit C-x 8 RET &c in isearch.el to contaminate search string

* lisp/isearch.el (isearch-char-by-name, isearch-emoji-by-name):
Concatenate new character to the query string saved by
with-isearch-suspended, not the current string, which might have
been modified by recursive I-search sessions within
completing-read.

19 months agoFix cursor misalignment on truncated RTL rows
Po Lu [Sun, 5 May 2024 01:38:27 +0000 (09:38 +0800)]
Fix cursor misalignment on truncated RTL rows

* src/xdisp.c (set_cursor_from_row): Begin computing the
position of the rightmost glyph from row->x, not 0.

19 months agoFix inadvertent removal in EmacsWindow
Po Lu [Sun, 5 May 2024 01:03:57 +0000 (09:03 +0800)]
Fix inadvertent removal in EmacsWindow

* java/org/gnu/emacs/EmacsWindow.java (onKeyUp): Send KeyPress
events upon deferred KEYCODE_BACK.

19 months ago(eglot--track-changes-signal): Improve last fix (bug#70541)
Stefan Monnier [Sat, 4 May 2024 21:14:46 +0000 (17:14 -0400)]
(eglot--track-changes-signal): Improve last fix (bug#70541)

* lisp/progmodes/eglot.el (eglot--add-one-shot-hook): New function.
(eglot--track-changes-signal): Use it.

19 months agotextsec: handle email address without domain part
Andreas Schwab [Fri, 28 Jul 2023 09:53:03 +0000 (11:53 +0200)]
textsec: handle email address without domain part

* lisp/international/textsec.el
(textsec-email-address-suspicious-p): Handle missing domain part.
(textsec-email-address-header-suspicious-p): Likewise.

19 months ago(ruler-mode-ruler): Minor optimization
Stefan Monnier [Sat, 4 May 2024 16:06:16 +0000 (12:06 -0400)]
(ruler-mode-ruler): Minor optimization

* lisp/ruler-mode.el (ruler-mode-ruler): Don't compute
`line-number-display-width` redundantly.  Use `add-text-properties`.
Remove redundant `local-map` property.

19 months agoAllow `letrec` binding without init expression
Mattias Engdegård [Sat, 4 May 2024 12:09:23 +0000 (14:09 +0200)]
Allow `letrec` binding without init expression

For example, (letrec (... (x) ...) ...) is now allowed.

* lisp/subr.el (letrec): Allow omitted init expression.
* test/lisp/subr-tests.el (subr--tests-letrec): Add test case.

19 months agoMerge from origin/emacs-29
Eli Zaretskii [Sat, 4 May 2024 12:10:54 +0000 (08:10 -0400)]
Merge from origin/emacs-29

b392169e541 ; * doc/lispref/commands.texi (Event Mod): Add motivation...
e272fd3da92 ; Update description of 'mail-mode'

19 months ago; Fix last change
Eli Zaretskii [Sat, 4 May 2024 11:51:05 +0000 (14:51 +0300)]
; Fix last change

* lisp/progmodes/python.el
(python-shell-compilation-regexp-alist): Add :version.
(Bug#70653)

19 months agoLocate error source of ExceptionGroup in Python shell
shynur [Fri, 3 May 2024 11:40:23 +0000 (19:40 +0800)]
Locate error source of ExceptionGroup in Python shell

The Python shell recognizes the line containing a file path and
a line number when an exception is raised up to the top-level,
in order to locate the source of error.  It's supposed to
recognize the built-in ExceptionGroup as well.  (Bug#70653)
* lisp/progmodes/python.el (python-shell-compilation-regexp-alist):
Take the single leading vertical line into account.
* etc/NEWS: Announce this change.

19 months agoFix implementation of the --terminal command-line switch
Eli Zaretskii [Sat, 4 May 2024 10:12:21 +0000 (13:12 +0300)]
Fix implementation of the --terminal command-line switch

It sounds like this has been broken ever since multi-tty was
added to Emacs.
* src/keyboard.c (dev_tty): New global variable.
* src/keyboard.h: Declare 'dev_tty'.
* src/emacs.c (main): Initialize 'dev_tty'.
* src/term.c (Fcontrolling_tty_p, Fresume_tty, init_tty):
* src/process.c (dissociate_controlling_tty):
* src/keyboard.c (handle_interrupt_signal, handle_interrupt)
(Fset_quit_char): Use 'dev_tty' instead of 'DEV_TTY'.  (Bug#70519)

19 months agoOnly issue lexical cookie warning for elisp files
Mattias Engdegård [Sat, 4 May 2024 08:08:19 +0000 (10:08 +0200)]
Only issue lexical cookie warning for elisp files

* src/lread.c (string_suffix_p): New.
(warn_missing_cookie): Suppress warning for files not ending in ".el",
except ".emacs".
* etc/NEWS: Update accordingly, and mention how the warning can be
suppressed.

19 months agoSimplify handling of command-line arguments on Android
Po Lu [Sat, 4 May 2024 08:06:00 +0000 (16:06 +0800)]
Simplify handling of command-line arguments on Android

* java/org/gnu/emacs/EmacsActivity.java
(EXTRA_STARTUP_ARGUMENTS): New constant.
(onCreate): Read a string array, not a string extra from the
intent with this key.

* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
<fileToOpen>: Delete field.
(onCreate): Provide file name as a command line argument when
starting the Emacs service.

* java/org/gnu/emacs/EmacsPreferencesActivity.java (startEmacsQ)
(startEmacsDebugInit): In like manner, replace ad-hoc
command-line argument extra with a proper array.

* java/org/gnu/emacs/EmacsService.java (EmacsService): Rename
extraStartupArgument to extraStartupArguments, and change its
type to a string array.
(onCreate): Adjust to match.

* java/org/gnu/emacs/EmacsThread.java (EmacsThread)
<extraStartupArguments>: Ditto.
<fileToOpen>: Delete field.
(run): Adjust correspondingly.

19 months agoDelete redundant backquotes in android-win.el
Po Lu [Sat, 4 May 2024 06:54:12 +0000 (14:54 +0800)]
Delete redundant backquotes in android-win.el

* lisp/term/android-win.el (android-encode-jni)
(android-decode-jni): Replace redundant backquotes with ordinary
quotes.

19 months ago; * etc/NEWS: Fix last change.
Eli Zaretskii [Sat, 4 May 2024 06:57:05 +0000 (09:57 +0300)]
; * etc/NEWS: Fix last change.

19 months ago; * etc/NEWS: Fix a recently-added entry.
Eli Zaretskii [Sat, 4 May 2024 06:34:18 +0000 (09:34 +0300)]
; * etc/NEWS: Fix a recently-added entry.

19 months agoSimplify management of Android handle IDs
Po Lu [Sat, 4 May 2024 03:36:09 +0000 (11:36 +0800)]
Simplify management of Android handle IDs

* java/org/gnu/emacs/EmacsCursor.java (EmacsCursor):

* java/org/gnu/emacs/EmacsGC.java (EmacsGC):

* java/org/gnu/emacs/EmacsHandleObject.java (EmacsHandleObject):
Remove HANDLE argument to constructor.

* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):

* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow):

* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection) <windowHandle>: Change type to long.

* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
(sendConfigureNotify, sendKeyPress, sendKeyRelease, sendFocusIn)
(sendFocusOut, sendWindowAction, sendEnterNotify)
(sendLeaveNotify, sendMotionNotify, sendButtonPress)
(sendButtonRelease, sendTouchDown, sendTouchUp, sendTouchMove)
(sendWheel, sendIconified, sendDeiconified, sendContextMenu)
(sendExpose, sendDndDrag, sendDndUri, sendDndText)
(beginBatchEdit, commitCompletion, endBatchEdit, commitText)
(deleteSurroundingText, finishComposingText, replaceText)
(getSelectedText, getTextAfterCursor, getTextBeforeCursor)
(setComposingText, setComposingRegion, setSelection)
(performEditorAction, performContextMenuAction, getExtractedText)
(requestSelectionUpdate, requestCursorUpdates, clearInputFlags)
(getSurroundingText, takeSnapshot, getSelection): Accept handles
as longs, rather than shorts.  All callers changed.

* java/org/gnu/emacs/EmacsService.java (queryTree): Return
handles as longs rather than shorts.
(viewGetSelection): Take long WINDOW, not short.

* src/android.c (struct android_emacs_handle): New structure.
(handle_class): New variable.
(android_init_emacs_service, android_init_emacs_pixmap)
(android_init_emacs_gc_class, android_init_emacs_cursor): Adjust
to match signature changes in constructors.
(android_init_emacs_handle): New function.
(initEmacs): Initialize the handle class, its fields and metods.
(sendConfigureNotify, sendKeyPress, sendKeyRelease, sendFocusIn)
(sendFocusOut, sendWindowAction, sendEnterNotify)
(sendLeaveNotify, sendMotionNotify, sendButtonPress)
(sendButtonRelease, sendTouchDown, sendTouchUp, sendTouchMove)
(sendWheel, sendIconified, sendDeiconified, sendContextMenu)
(sendExpose, sendDndDrag, sendDndUri, sendDndText): Update for
changes to handle type.
(android_alloc_id, android_resolve_handle)
(android_resolve_handle2): Remove functions; replace the second
with a macro that accepts one fewer argument.  All callers
changed.
(android_destroy_handle): Cease indexing the handle list for the
handle object.
(android_globalize_reference): New function.
(android_create_window, android_create_gc, android_create_pixmap)
(android_create_font_cursor): Call android_globalize_reference
to convert global references into handles.
(android_free_cursor, android_destroy_window): Cease verifying
the handle type.
(android_copy_area): Check destination object type rather than
handle entry.
(android_query_tree): Adjust for changes to return types.
(likely): Define __builtin_expect variant unconditionally.

* src/android.h (android_resolve_handle): New macro.

* src/androidgui.h (android_handle): Define to intptr_t.

* src/androidterm.c (deleteSurroundingText, finishComposingText)
(performEditorAction, performContextMenuAction, getExtractedText)
(getSelectedText, requestSelectionUpdate, requestCursorUpdates)
(clearInputFlags, getSurroundingText)
(android_get_surrounding_text_internal): Accept handles as
longs, not jshorts.

19 months ago; * src/lread.c (warn_missing_cookie): Fix typo.
Po Lu [Sat, 4 May 2024 03:12:16 +0000 (11:12 +0800)]
; * src/lread.c (warn_missing_cookie): Fix typo.

19 months ago* src/lread.c (warn_missing_cookie): Exempt the user init file.
Po Lu [Sat, 4 May 2024 03:11:36 +0000 (11:11 +0800)]
* src/lread.c (warn_missing_cookie): Exempt the user init file.

19 months ago* lisp/progmodes/eglot.el (eglot--track-changes-signal): More typo
Stefan Monnier [Fri, 3 May 2024 20:51:57 +0000 (16:51 -0400)]
* lisp/progmodes/eglot.el (eglot--track-changes-signal): More typo

19 months ago* lisp/emacs-lisp/track-changes.el (track-changes-inconsistent-state-p): Typo
Stefan Monnier [Fri, 3 May 2024 20:39:10 +0000 (16:39 -0400)]
* lisp/emacs-lisp/track-changes.el (track-changes-inconsistent-state-p): Typo

19 months agoQuery Eglot version via package.el
Philip Kaludercic [Thu, 7 Mar 2024 09:21:45 +0000 (10:21 +0100)]
Query Eglot version via package.el

* lisp/progmodes/eglot.el (eglot--version): Remove constant.
(eglot--connect): Use 'package-get-version'.

19 months agoWarn when loading .el files without lexical-binding declaration
Mattias Engdegård [Fri, 3 May 2024 15:58:44 +0000 (17:58 +0200)]
Warn when loading .el files without lexical-binding declaration

This corresponds to the byte-compiler warning for the same issue,
here emitted for files that aren't compiled but loaded from source.
It should make the planned change to enable lexical binding by default
in Emacs 31 go smoother.

* src/lread.c (lexical_cookie_t): New type.
(lisp_file_lexically_bound_p): Renamed to...
(lisp_file_lexical_cookie): ...this, with the return value retyped.
* src/lread.c (warn_missing_cookie): New.
(Fload): Warn when loading source file and cookie missing.
(Feval_buffer): Add LOADING arg; warn when set and cookie missing.
* lisp/international/mule.el (load-with-code-conversion):
* lisp/startup.el (command-line--load-script):
Call eval-buffer with LOADING arg set.
* etc/NEWS: Announce.

19 months agotrack-changes.el: Add a workaround for bug#70541
Stefan Monnier [Fri, 3 May 2024 17:23:00 +0000 (13:23 -0400)]
track-changes.el: Add a workaround for bug#70541

* lisp/emacs-lisp/track-changes.el (track-changes-inconsistent-state-p):
 New function.
* lisp/progmodes/eglot.el (eglot--track-changes-signal): Use it.

19 months agomhtml-mode: Use `run-mode-hook' to run `prog-mode-hook' (bug#70671)
Ihor Radchenko [Fri, 3 May 2024 07:46:22 +0000 (10:46 +0300)]
mhtml-mode: Use `run-mode-hook' to run `prog-mode-hook' (bug#70671)

* lisp/textmodes/mhtml-mode.el (mhtml-mode): When running hooks
simulating inheritance from `prog-mode', use `run-mode-hooks' that
honors `delay-mode-hooks' macro.  Note that `delay-mode-hooks' is bound
to non-nil when major mode body is evaluated, so there is no chance that
any major mode-related hooks are executed twice.

19 months ago* doc/lispref/keymaps.texi (Creating Keymaps): Add :repeat :hints (bug#70576).
Juri Linkov [Fri, 3 May 2024 06:22:39 +0000 (09:22 +0300)]
* doc/lispref/keymaps.texi (Creating Keymaps): Add :repeat :hints (bug#70576).

19 months agoFix bug#70711
Elias G. Perez [Thu, 2 May 2024 16:33:43 +0000 (10:33 -0600)]
Fix bug#70711

* lisp/progmodes/flymake.el (flymake--indicator-overlay-spec):
Check if `flymake-fringe-indicator-position' or
`flymake-margin-indicator-position' are non-nil for allow no
indicators.

19 months agoOnly run 'eshell-first-time-mode-hook' once per Emacs session
Lin Sun [Sat, 27 Apr 2024 06:55:49 +0000 (06:55 +0000)]
Only run 'eshell-first-time-mode-hook' once per Emacs session

* lisp/eshell/esh-mode.el (eshell-mode): Set 'eshell-first-time-p' to
nil (bug#70610).

19 months agoPrevent reporting of crashes when Emacs is restarted on Android
Po Lu [Fri, 3 May 2024 02:43:31 +0000 (10:43 +0800)]
Prevent reporting of crashes when Emacs is restarted on Android

* src/emacs.c (Fkill_emacs): Ignore SIGBUS and SIGSGEV
immediately before calling exit.

19 months ago; Set explicit hook depth for erc-once-with-server-event
F. Jason Park [Thu, 25 Apr 2024 12:09:50 +0000 (05:09 -0700)]
; Set explicit hook depth for erc-once-with-server-event

* lisp/erc/erc.el (erc-once-with-server-event): Set hook depth to -95.
* test/lisp/erc/erc-scenarios-base-association-nick.el: Improve
comment.
* test/lisp/erc/resources/erc-d/erc-d-tests.el
(erc-d--render-entries): Remove do-nothing assertion since its purpose
was unclear and likely dubious, as was incidentally highlighted by the
addition of a function not present on older Emacsen, which this test
still needs to run on.

19 months agoEliminate string data mutation in ruler-mode
Mattias Engdegård [Thu, 2 May 2024 19:49:40 +0000 (21:49 +0200)]
Eliminate string data mutation in ruler-mode

* lisp/ruler-mode.el (ruler-mode-ruler):
Mutate a vector instead of a string.

19 months ago* lisp/tab-bar.el: Support mouse clicks bound in keymap properties.
Juri Linkov [Thu, 2 May 2024 17:55:03 +0000 (20:55 +0300)]
* lisp/tab-bar.el: Support mouse clicks bound in keymap properties.

(tab-bar--event-to-item): Handle mouse bindings for commands
bound in keymap properties of global-mode-string (bug#70086).
(tab-bar-mouse-down-1, tab-bar-mouse-1, tab-bar-touchscreen-begin):
Add the symbol 'global' to the list of handled items.

19 months agoMake the buffer displayed by tab-bar-select-restore-windows internal
Juri Linkov [Thu, 2 May 2024 17:44:04 +0000 (20:44 +0300)]
Make the buffer displayed by tab-bar-select-restore-windows internal

* lisp/tab-bar.el (tab-bar-select-restore-windows): Make the buffer
" *Old buffer %s*" internal with the leading space in its name.

19 months ago; Fix last change
Eli Zaretskii [Thu, 2 May 2024 16:30:40 +0000 (19:30 +0300)]
; Fix last change

* etc/NEWS: Fix wording of a recently-added item.

* doc/lispref/functions.texi (Declare Form): Fix markup.

19 months agoMerge branch 'lisp-func-type-decls' into 'master'
Andrea Corallo [Thu, 2 May 2024 15:06:07 +0000 (17:06 +0200)]
Merge branch 'lisp-func-type-decls' into 'master'

19 months agoetc/NEWS (Function type declaration): Mark it +++.
Andrea Corallo [Thu, 2 May 2024 14:42:45 +0000 (16:42 +0200)]
etc/NEWS (Function type declaration): Mark it +++.

19 months ago* doc/lispref/functions.texi (Declare Form): Improve again declare type.
Andrea Corallo [Thu, 2 May 2024 14:38:14 +0000 (16:38 +0200)]
* doc/lispref/functions.texi (Declare Form): Improve again declare type.

19 months ago* doc/lispref/functions.texi (Declare Form): Better warn about UB.
Andrea Corallo [Thu, 2 May 2024 10:15:30 +0000 (12:15 +0200)]
* doc/lispref/functions.texi (Declare Form): Better warn about UB.

19 months agoAdd lexical cookie to new init files
Mattias Engdegård [Thu, 2 May 2024 11:34:22 +0000 (13:34 +0200)]
Add lexical cookie to new init files

* lisp/cus-edit.el (custom-save-all):
Add lexical cookie if the file is empty.

19 months ago; Fix last change
Eli Zaretskii [Thu, 2 May 2024 10:04:15 +0000 (13:04 +0300)]
; Fix last change

* lisp/progmodes/python.el (python-shell-send-block): Doc fix.

* test/lisp/progmodes/python-tests.el
(python-test--shell-send-block): Avoid byte-compiler warnings.
(Bug#70609)

19 months agoNew function 'python-shell-send-block' for python-mode
Lin Sun [Sat, 27 Apr 2024 06:54:27 +0000 (06:54 +0000)]
New function 'python-shell-send-block' for python-mode

* lisp/progmodes/python.el (python-shell-send-block): New
function.
* test/lisp/progmodes/python-tests.el
(python-test--shell-send-block): Test case for the new
function.
* etc/NEWS: Document 'python-shell-send-block'.
(Bug#70609)

19 months agoImprove performance of `file-truename' (bug#70036)
Ihor Radchenko [Tue, 30 Apr 2024 11:27:04 +0000 (14:27 +0300)]
Improve performance of `file-truename' (bug#70036)

* lisp/files.el (file-truename): Avoid repetitive calls to
`file-name-nondirectory'.  These calls contribute
significantly to CPU time.  See the benchmarks in
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70036#47

19 months agoAdd ExceptionGroup as a Python keyword
kobarity [Tue, 30 Apr 2024 05:10:57 +0000 (14:10 +0900)]
Add ExceptionGroup as a Python keyword

* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration)
(python--treesit-exceptions): Add ExceptionGroup.  (Bug#70653)

19 months agoFix display of stipples on NS with respect to cursor highlight
Po Lu [Thu, 2 May 2024 08:56:26 +0000 (16:56 +0800)]
Fix display of stipples on NS with respect to cursor highlight

* src/nsfont.m (nsfont_draw): Delete redundant code.

* src/nsterm.m (ns_maybe_dumpglyphs_background): Conform logic
to X version by always displaying the background if s->stipple_p
should be set.
(ns_draw_stretch_glyph_string): Set stipple background as
appropriate.
(ns_set_glyph_string_gc): New function.
(ns_draw_glyph_string): Call it, as on X.  Reported by Arash
Esbati <arash@gnu.org>.

19 months ago; * doc/lispref/commands.texi (Event Mod): Add motivation (bug#70596).
Eli Zaretskii [Thu, 2 May 2024 09:20:09 +0000 (12:20 +0300)]
; * doc/lispref/commands.texi (Event Mod): Add motivation (bug#70596).

19 months ago; Fix python test case for testing completion with ipython
Lin Sun [Thu, 25 Apr 2024 06:54:27 +0000 (06:54 +0000)]
; Fix python test case for testing completion with ipython

* test/lisp/progmodes/python-tests.el
(python-shell-completion-at-point-ipython): Fix value of
'python-test-shell-interpreter'.  (Bug#70578)

19 months agoEglot: Add 'command-modes' property to all suitable commands
Augusto Stoffel [Sun, 21 Apr 2024 09:21:58 +0000 (11:21 +0200)]
Eglot: Add 'command-modes' property to all suitable commands

Those are the commands that call 'eglot--current-server-or-lose'.
* lisp/progmodes/eglot.el (eglot--managed-mode),
(eglot-list-connections-mode): Make non-interactive.  (Bug#70554)

19 months ago* lisp/emacs-lisp/warnings.el: Fix 'warning-display-at-bottom'.
Juri Linkov [Thu, 2 May 2024 06:53:06 +0000 (09:53 +0300)]
* lisp/emacs-lisp/warnings.el: Fix 'warning-display-at-bottom'.

(display-warning): Move point to the beginning of the last line
instead of its end for 'warning-display-at-bottom' (bug#69983).

19 months ago; Improve commentary in intervals.h
Eli Zaretskii [Thu, 2 May 2024 06:50:37 +0000 (09:50 +0300)]
; Improve commentary in intervals.h

* src/intervals.h (INTERVAL_GENERALLY_WRITABLE_P)
(INTERVAL_EXPRESSLY_WRITABLE_P): Clarify commentary.

19 months agoSupport hints in the :repeat keyword of defvar-keymap for repeat-mode
Juri Linkov [Thu, 2 May 2024 06:46:48 +0000 (09:46 +0300)]
Support hints in the :repeat keyword of defvar-keymap for repeat-mode

* lisp/keymap.el (defvar-keymap): Add :hints to the :repeat keyword.
Put the property 'repeat-hint' on the command symbol.

* lisp/repeat.el (repeat-echo-message-string): Show hint strings
defined with the property 'repeat-hint' on the command symbol (bug#70576).

19 months ago* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Add 'text' (bug#67036).
Juri Linkov [Thu, 2 May 2024 06:28:53 +0000 (09:28 +0300)]
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Add 'text' (bug#67036).

Add 'text' lambda to 'treesit-thing-settings' that should fall back
to the default functions for sentence/sexp navigation.

19 months agoTighten regexp for rust-ts-mode keyword workaround
Yuan Fu [Thu, 2 May 2024 04:50:21 +0000 (21:50 -0700)]
Tighten regexp for rust-ts-mode keyword workaround

* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
Add bos and eos.

19 months agoFix fontification for else in macro body in rust-ts-mode
Yuan Fu [Thu, 2 May 2024 04:21:00 +0000 (21:21 -0700)]
Fix fontification for else in macro body in rust-ts-mode

* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
Add a rule for else in macro body.  Also added the same rule for "in"
and "move" keyword, as they seems to have the same problem.

19 months agoAdd font-locking for typed parameters in python-ts-mode (bug#70665)
Noah Peart [Tue, 30 Apr 2024 09:55:18 +0000 (02:55 -0700)]
Add font-locking for typed parameters in python-ts-mode (bug#70665)

* lisp/progmodes/python.el (python--treesit-settings): Add
tree-sitter font-locking rule for typed parameters.
* test/lisp/progmodes/python-tests.el
(python-ts-mode-types-face-1): Test for
font-lock-variable-name-face in typed parameter.

19 months agoPort visible bell to Android
Po Lu [Thu, 2 May 2024 03:31:37 +0000 (11:31 +0800)]
Port visible bell to Android

* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Ignore
GC_INVERT.

* java/org/gnu/emacs/EmacsFillRectangle.java
(EmacsFillRectangle) <invertFilter>: New variable.
(perform): If the transfer mode is invert, copy the source
to itself with invertFilter as the color filter.

* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <xorAlu, srcInAlu>:
Delete now-redundant ALUs.
(markDirty): Cease updating the paint's transfermode.

* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): Fix
typo in documentation.

* src/android.c (android_blit_xor): Delete unused function.
(android_copy_area): Remove calls to unused blit functions.

* src/androidgui.h (enum android_gc_function): Rename XOR to
INVERT.

* src/androidterm.c (android_flash): Replace with GXinvert.

19 months agoSwitch to GXinvert in XTflash
Po Lu [Thu, 2 May 2024 02:23:09 +0000 (10:23 +0800)]
Switch to GXinvert in XTflash

* src/xterm.c (XTflash): Move to inverting the regions of the
display being flashed.  Suggested by Manuel Giraud
<manuel@ledu-giraud.fr>.

19 months ago; * doc/emacs/android.texi (Android Startup): Correct wording.
Po Lu [Thu, 2 May 2024 01:54:16 +0000 (09:54 +0800)]
; * doc/emacs/android.texi (Android Startup): Correct wording.

19 months ago; Update commentary in intervals.h
Po Lu [Thu, 2 May 2024 01:51:31 +0000 (09:51 +0800)]
; Update commentary in intervals.h

* src/intervals.h (INTERVAL_GENERALLY_WRITABLE_P)
(INTERVAL_EXPRESSLY_WRITABLE_P): Mention significance of RO.

19 months ago* etc/NEWS (Function type declaration): Add entry.
Andrea Corallo [Wed, 1 May 2024 20:49:01 +0000 (22:49 +0200)]
* etc/NEWS (Function type declaration): Add entry.

19 months ago(disassemble): Fix case of `(byte-code ...)` argument
Andrea Corallo [Wed, 1 May 2024 18:14:01 +0000 (14:14 -0400)]
(disassemble): Fix case of `(byte-code ...)` argument

* lisp/emacs-lisp/disass.el (disassemble): Handle (byte-code ...) here..
(disassemble-internal): ...instead of here.
(disassemble-1): Adjust text to reflect the existence of other
compiled functions.

19 months ago* doc/lispref/functions.texi (Declare Form): Improve declare type.
Andrea Corallo [Wed, 1 May 2024 18:03:02 +0000 (20:03 +0200)]
* doc/lispref/functions.texi (Declare Form): Improve declare type.

19 months agoAdd Compat as an Eglot dependency
Philip Kaludercic [Sat, 9 Mar 2024 07:11:03 +0000 (08:11 +0100)]
Add Compat as an Eglot dependency

* lisp/progmodes/eglot.el (eglot--format-markup): Remove fboundp
check for 'text-property-search-forward'.
(eglot-alternatives): Use Compat's 'executable-find'
(eglot--executable-find): Remove function.

Additionally this should make 'package-get-version' available
for releases of Emacs previous to 27.1.  (bug#62198)

19 months agoFix minor typos in haikuterm.c
Po Lu [Wed, 1 May 2024 13:34:50 +0000 (21:34 +0800)]
Fix minor typos in haikuterm.c

* src/haikuterm.c (haiku_fill_underline)
(haiku_draw_text_decoration): Don't pass view to unused frame
parameter.

19 months agoImplement dots and dashes on Nextstep
Po Lu [Wed, 1 May 2024 14:02:15 +0000 (22:02 +0800)]
Implement dots and dashes on Nextstep

* src/Makefile.in (NON_OBJC_CFLAGS): Add -Wstrict-flex-arrays.

* src/nsterm.m (ns_draw_dash, ns_fill_underline): New functions.
(ns_draw_text_decoration): Port dash and dot display from X.

19 months ago; Silence obsoletion warning in mwheel-tests.
Basil L. Contovounesios [Wed, 1 May 2024 11:08:30 +0000 (13:08 +0200)]
; Silence obsoletion warning in mwheel-tests.

19 months ago; Update pvec_type hash for CHECK_STRUCTS
Basil L. Contovounesios [Wed, 1 May 2024 11:07:17 +0000 (13:07 +0200)]
; Update pvec_type hash for CHECK_STRUCTS

This follows commit 2fa839c1886 of 2024-04-28
"(COMPILED): Rename to CLOSURE".

19 months agoAssume match before calling help-xref-button
Basil L. Contovounesios [Tue, 30 Apr 2024 06:31:58 +0000 (08:31 +0200)]
Assume match before calling help-xref-button

help-xref-button fails if not preceded by a valid match, so a
preceding unconditional search should not be allowed to fail
silently.

* lisp/emacs-lisp/ert.el (ert-describe-test):
* lisp/help-fns.el (help-fns--compiler-macro)
(help-fns-function-description-header, describe-variable)
(help-fns--customize-variable, describe-face)
(help-fns--face-attributes, describe-keymap): Let unconditional
re-search-backward before help-xref-button fail early, as that would
indicate a logic bug, and the backtrace would more accurately point
to the actual source of the mistake.

19 months agoDisable on-screen keyboard outside fields in Custom buffers
Po Lu [Wed, 1 May 2024 07:57:29 +0000 (15:57 +0800)]
Disable on-screen keyboard outside fields in Custom buffers

* lisp/cus-edit.el (Custom-display-on-screen-keyboard-p): New
function.
(Custom-mode): Install it as the touch-screen-keyboard-function.

* lisp/touch-screen.el (touch-screen-keyboard-function): New
variable.
(touch-screen-handle-point-up): Don't special-case the splash
screen with respect to touch-screen-display-keyboard in keeping
with user feedback.

19 months ago; * src/androidselect.c (extract_fd_offsets): Fix typos.
Po Lu [Wed, 1 May 2024 04:03:26 +0000 (12:03 +0800)]
; * src/androidselect.c (extract_fd_offsets): Fix typos.

19 months agoFix compatibility issues with Android clipboards
Po Lu [Wed, 1 May 2024 03:45:53 +0000 (11:45 +0800)]
Fix compatibility issues with Android clipboards

* java/org/gnu/emacs/EmacsClipboard.java (getClipboardData):
Return an AssetFileDescriptor.

* java/org/gnu/emacs/EmacsContextMenu.java (onMenuItemClick):
Typo corrections in commentary.

* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Raise
minimum version on which to read file descriptors from
ParcelFileDescriptor objects to Honeycomb.

* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(getClipboardData): Return the asset file descriptor.

* java/org/gnu/emacs/EmacsSdk8Clipboard.java (getClipboardData):
Adjust return type to match.

* src/android.h (struct android_parcel_file_descriptor_class):
Move from androidselect.c.

* src/androidselect.c (fd_class): Export function.
(android_init_emacs_clipboard): Adjust signature of
getClipboardData.
(android_init_asset_file_descriptor, close_asset_fd)
(extract_fd_offsets): New functions.
(Fandroid_get_clipboard_data): Extract file descriptor and
offset from the AssetFileDescriptor here, rather than in
getClipboardData.
(init_androidselect): Call android_init_asset_file_descriptor.

* src/androidvfs.c (android_init_fd_class): Export and enable
calling this function more than once.

19 months ago; Fix widget button press cancellation
Po Lu [Wed, 1 May 2024 00:56:23 +0000 (08:56 +0800)]
; Fix widget button press cancellation

* lisp/wid-edit.el (widget-button--check-and-call-button): Throw
nil if a mouse-button-derived press is canceled.  Reported by
David Ponce <da_vid@orange.fr>.

19 months agoFix first appearance records for some misdated functions
Mattias Engdegård [Tue, 30 Apr 2024 16:01:52 +0000 (18:01 +0200)]
Fix first appearance records for some misdated functions

* etc/NEWS.unknown: Add approximate version records for
defsubst, mark, nreverse, let*, rassq, >=,
transpose-sexps, buffer-modified-p, current-column, downcase,
previous-line, catch, throw, and count-lines,
which all were given much more recent introduction versions
by describe-function.

19 months ago* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Simplify.
Mattias Engdegård [Tue, 30 Apr 2024 13:20:34 +0000 (15:20 +0200)]
* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Simplify.