1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-05 23:21:22 -08:00
Commit graph

173671 commits

Author SHA1 Message Date
Juri Linkov
9ecd65a660 * 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).
2024-05-06 19:43:50 +03:00
Stefan Monnier
5522cc7879 (Fkey_description): Fix corner (bug#59305)
* src/keymap.c (Fkey_description): Don't mistake latin-1 chars for
ASCII-chars-with-meta.
2024-05-06 11:19:11 -04:00
Po Lu
c5b4bd69fa 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>.
2024-05-06 21:00:01 +08:00
Eli Zaretskii
e091967ce2 Revert "Disable text conversion in map-ynp"
This reverts commit f50a58123a.
Please don't make such changes without discussing them.
2024-05-06 15:02:37 +03:00
Eli Zaretskii
74ebd729c7 ; Avoid byte-compiler warning in comp.el
* lisp/emacs-lisp/comp.el (comp--symbol-func-to-fun): Move to
before its first use.
2024-05-06 13:54:19 +03:00
Po Lu
5bf4ff806b ; * java/org/gnu/emacs/EmacsTileObject.java: Fix copyright dates. 2024-05-06 17:23:57 +08:00
Po Lu
f50a58123a 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.
2024-05-06 15:59:48 +08:00
Po Lu
2f36fc1b4f 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.
2024-05-06 12:09:21 +08:00
Andrea Corallo
f920959ac9 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.
2024-05-05 23:58:31 +02:00
Andrea Corallo
77f87d4b48 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.
2024-05-05 23:58:31 +02:00
Stefan Monnier
44036b32ba 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.
2024-05-05 17:23:29 -04:00
Jim Porter
1529ad0315 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.
2024-05-05 13:21:55 -07:00
Gabriel do Nascimento Ribeiro
451863adf9 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.
2024-05-05 21:37:23 +03:00
Juri Linkov
12132ec1ef * 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).
2024-05-05 21:32:22 +03:00
Michael Albinus
6f16ef1c04 Fix lock-file format in Tramp
* lisp/net/tramp.el (tramp-lock-file-info-regexp): BOOT_TIME can
be negative.  (Bug#70415)
2024-05-05 19:54:07 +02:00
Dmitry Gutov
8d3e4e823f 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).
2024-05-05 20:19:48 +03:00
Dmitry Gutov
696b1cb8de 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).
2024-05-05 19:43:06 +03:00
Eli Zaretskii
d5b6627faa Fix lock files on some versions of Cygwin
* src/filelock.c (current_lock_owner): Support negative boot-time
on rare systems.  (Bug#70415)
2024-05-05 19:30:57 +03:00
Stefan Monnier
61ad641893 (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.
2024-05-05 10:43:37 -04:00
Mattias Engdegård
63f9f2259e ; * etc/NEWS: Move 'Miscellaneous' subtopics last. 2024-05-05 16:20:58 +02:00
Mattias Engdegård
d51de0c5d9 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.
2024-05-05 16:14:00 +02:00
Alan Mackenzie
71491fe6f4 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.
2024-05-05 11:34:14 +00:00
Eli Zaretskii
8098ad9679 ; Improve documentation of a recent change
* lisp/progmodes/project.el (project-files-relative-names):
* etc/NEWS: Improve documentation of 'project-files-relative-names'.
2024-05-05 08:20:39 +03:00
Dmitry Gutov
370b216f08 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.
2024-05-05 06:27:55 +03:00
Po Lu
e0993f5169 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.
2024-05-05 09:49:09 +08:00
Po Lu
129312aa12 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.
2024-05-05 09:38:27 +08:00
Po Lu
51791fd178 Fix inadvertent removal in EmacsWindow
* java/org/gnu/emacs/EmacsWindow.java (onKeyUp): Send KeyPress
events upon deferred KEYCODE_BACK.
2024-05-05 09:03:57 +08:00
Stefan Monnier
043bb36312 (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.
2024-05-04 17:14:46 -04:00
Andreas Schwab
672ca232db 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.
2024-05-04 21:08:43 +02:00
Stefan Monnier
ea752667cd (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.
2024-05-04 12:06:16 -04:00
Mattias Engdegård
fd859fbea2 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.
2024-05-04 14:39:24 +02:00
Eli Zaretskii
1e4cb12a81 Merge from origin/emacs-29
b392169e54 ; * doc/lispref/commands.texi (Event Mod): Add motivation...
e272fd3da9 ; Update description of 'mail-mode'
2024-05-04 08:10:54 -04:00
Eli Zaretskii
fdfadd6f46 ; Fix last change
* lisp/progmodes/python.el
(python-shell-compilation-regexp-alist): Add :version.
(Bug#70653)
2024-05-04 14:51:05 +03:00
shynur
bfb31a06ac 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.
2024-05-04 14:48:38 +03:00
Eli Zaretskii
fa0f65aa34 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)
2024-05-04 13:12:21 +03:00
Mattias Engdegård
1121f17d7c 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.
2024-05-04 10:35:24 +02:00
Po Lu
41dd78cd36 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.
2024-05-04 16:13:24 +08:00
Po Lu
ecfbd0ff99 Delete redundant backquotes in android-win.el
* lisp/term/android-win.el (android-encode-jni)
(android-decode-jni): Replace redundant backquotes with ordinary
quotes.
2024-05-04 16:13:24 +08:00
Eli Zaretskii
01b626ccbc ; * etc/NEWS: Fix last change. 2024-05-04 09:57:05 +03:00
Eli Zaretskii
c74c65f5e1 ; * etc/NEWS: Fix a recently-added entry. 2024-05-04 09:34:18 +03:00
Po Lu
139931fefb 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.
2024-05-04 11:36:09 +08:00
Po Lu
7a7dd87842 ; * src/lread.c (warn_missing_cookie): Fix typo. 2024-05-04 11:12:16 +08:00
Po Lu
a5acc89712 * src/lread.c (warn_missing_cookie): Exempt the user init file. 2024-05-04 11:11:36 +08:00
Stefan Monnier
d0e391957b * lisp/progmodes/eglot.el (eglot--track-changes-signal): More typo 2024-05-03 16:51:57 -04:00
Stefan Monnier
c9b0e2bd8e * lisp/emacs-lisp/track-changes.el (track-changes-inconsistent-state-p): Typo 2024-05-03 16:39:29 -04:00
Philip Kaludercic
3d4918c2f1 Query Eglot version via package.el
* lisp/progmodes/eglot.el (eglot--version): Remove constant.
(eglot--connect): Use 'package-get-version'.
2024-05-03 20:14:20 +02:00
Mattias Engdegård
81bad84a61 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.
2024-05-03 19:27:26 +02:00
Stefan Monnier
b6d4e81a48 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.
2024-05-03 13:23:00 -04:00
Ihor Radchenko
15c77f2fce 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.
2024-05-03 11:02:54 -04:00
Juri Linkov
4078d0fd3e * doc/lispref/keymaps.texi (Creating Keymaps): Add :repeat :hints (bug#70576). 2024-05-03 09:22:39 +03:00