1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-18 06:01:22 -08:00
Commit graph

172572 commits

Author SHA1 Message Date
Stefan Monnier
3ecc6b4f3c (find-auto-coding): Provide filename to auto-coding-functions
Allow `auto-coding-functions` to know the file name.
Motivated by the needs of Editorconfig support.

* lisp/international/mule.el (auto-coding-file-name): New var.
(find-auto-coding): Let-bind it for `auto-coding-functions`.
Document the expectation that the arg be an absolute file name.

* doc/lispref/nonascii.texi (Default Coding Systems):
Mention `auto-coding-file-name`.

* test/lisp/international/mule-util-resources/test.utf-16le: New file.
* test/lisp/international/mule-tests.el (mule-tests--dir): New var.
(mule-tests--auto-coding): New fun.
(mule-tests--auto-coding-functions): New test.
2024-06-09 00:19:03 -04:00
Noah Peart
ce5d004b5b Add typescript-ts-mode indentation for multi-assignment decls
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add indentation rules for
lexical and variable declarations with multiple assignments.
* test/lisp/progmodes/typescript-ts-mode-resources/indent.erts:
Add indent test for variable declarations (bug#68054).
2024-06-09 05:47:50 +03:00
Dmitry Gutov
a486782f5e project-list-buffers-ibuffer: Handle the FILES-ONLY argument
* lisp/progmodes/project.el (project-list-buffers-ibuffer):
Handle the FILES-ONLY argument (bug71290).
(project-list-buffers-buffer-menu): Expand docstring.
2024-06-09 05:37:42 +03:00
mikpom
c0480e2211 Support Ibuffer in project-list-buffers
* lisp/progmodes/project.el (project-buffers-viewer): New option.
(project-list-buffers): Dispatch using it.
(project-list-buffers-buffer-menu, project-list-buffers-ibuffer):
New functions (bug#71290).
2024-06-09 05:37:42 +03:00
Po Lu
f896c5e8ca ; Fix coding style of last change
* src/process.c (read_and_insert_process_output)
(read_and_dispose_of_process_output): Fix coding style.
2024-06-09 09:11:01 +08:00
Dmitry Gutov
d4bbffe83d read-process-output-max: Increase the default value
* src/process.c (read-process-output-max):
Increase the default value to 65536 (bug#66020).
2024-06-09 02:58:19 +03:00
Dmitry Gutov
8cf6e311b8 Remember the value of read_process_output_max when process is created
* src/process.h (Lisp_Process): Add field readmax.

* src/process.c (read_process_output): Use it.
(create_process): Save the value of read_process_output_max to
it when the process is created (bug#66020).  Use for pipe size.
2024-06-09 02:51:47 +03:00
Dmitry Gutov
bbc18031af Go around calling the default process filter (reducing GC churn)
Instead of allocating strings and passing them to the filter, pass
the char buffer to a C function implementing the same logic.

* src/process.c (read_process_output_before_insert)
(read_process_output_after_insert):
New functions, extracted from internal-default-process-filter.
(Finternal_default_process_filter): Use them.
(read_and_insert_process_output): New function.  Use them.
(read_process_output_fast): New variable.
(read_process_output): Use it to choose how to insert (bug#66020).

* etc/NEWS: Mention the change.
2024-06-09 02:44:19 +03:00
Dmitry Gutov
e2527dd9fd url-retrieve-synchronously: Fix timeout when connection hangs
* lisp/url/url.el (url-retrieve-synchronously):
Set url-asynchronous to t when TIMEOUT is non-nil (bug#71295).
2024-06-09 00:53:43 +03:00
Stefan Monnier
e9a0256a55 (pcase--app-subst-match): Try and fix performance regression (bug#71398)
* lisp/emacs-lisp/pcase.el (pcase--app-subst-match): Optimize matches
against (quote VAL).
* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-quote-optimization):
Add new test case.
2024-06-08 17:34:56 -04:00
Jim Porter
15f515c7a3 Improve implementations of some Eshell output filter functions
* lisp/eshell/esh-mode.el (eshell-postoutput-scroll-to-bottom): Use
'get-buffer-window-list' for simplicity.
(eshell-handle-control-codes): Use 're-search-forward'; this way is much
faster.

* test/lisp/eshell/esh-mode-tests.el: New file.
2024-06-08 12:29:29 -07:00
Jim Porter
2fac71255f Be more efficient when buffering output in Eshell
This makes the built-in 'eshell/cat' 5-10x faster on large files in my
(somewhat limited) tests.  In addition, this change periodically
redisplays when using the Eshell buffered output so that users can see
some progress.

* lisp/eshell/esh-io.el (eshell-print-queue-size, eshell-print-queue,
eshell-print-queue-count): Make obsolete in favor of...
(eshell-buffered-print-size, eshell--buffered-print-queue)
(eshell--buffered-print-current-size): ... these.
(eshell-buffered-print-redisplay-throttle): New user option.
(eshell--buffered-print-next-redisplay): New variable.
(eshell-init-print-buffer): Make obsolete.
(eshell-flush): Add new REDISPLAY-NOW argument in favor of CLEAR (which
only 'eshell-init-print-buffer' should have used).
(eshell-buffered-print): Compare queued output length to
'eshell--buffered-print-current-size'.
(eshell-with-buffered-print): New macro.

* lisp/eshell/esh-var.el (eshell/env):
* lisp/eshell/em-dirs.el (eshell/cd):
* lisp/eshell/em-hist.el (eshell/history):
* lisp/eshell/em-unix.el (eshell/cat):
* lisp/eshell/em-ls.el (eshell/ls): Use 'eshell-with-buffered-print'.
(flush-func): Remove.
(eshell-ls--insert-directory, eshell-do-ls): Remove 'flush-func'.

* test/lisp/eshell/em-unix-tests.el (em-unix-test/compile/interactive)
(em-unix-test/compile/pipeline, em-unix-test/compile/subcommand): Fix
indentation.
(em-unix-test/cat/file-output): New test.

* etc/NEWS: Announce these improvements.
2024-06-08 12:29:29 -07:00
F. Jason Park
c69c822c59 ; Improve erc-format-privmessage documentation
* etc/ERC-NEWS: Mention that `erc-format-privmessage' has been removed
from the default client's primary code path.  Revise various headlines.
* lisp/erc/erc.el: Bump Compat version to 29.1.4.5.
(erc-format-privmessage): Make appeal for users to contact the mailing
list if they need to modify speaker-message formatting.
2024-06-08 12:21:14 -07:00
F. Jason Park
f6bfa1844b Restore deferred date-stamp insertions in ERC
* lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect): Treat
`erc-stamp--deferred-date-stamp' as a permanent-local variable.
(erc-stamp--date): Document expected possible values for `fn' slot.
(erc-stamp--defer-date-insertion-on-post-modify): Use the function
`ignore' to mean a new `erc-timer-hook' member has been requested.
Use nil to mean one has already run.  Deferred date stamps are new in
ERC 5.6 and Emacs 30.
(erc-stamp--date-mode): Improve doc string.
* test/lisp/erc/erc-scenarios-stamp.el
(erc-scenarios-stamp--date-mode/reconnect): New test.
2024-06-08 12:21:14 -07:00
Eli Zaretskii
772fb960a9 Fix killing indirect buffers under auto-revert-mode
* lisp/autorevert.el (auto-revert-mode): Don't add indirect
buffers to 'auto-revert-buffer-list'.
(auto-revert-notify-rm-watch): Don't disable file notifications
when killing an indirect buffer.  (Bug#71424)
2024-06-08 20:43:55 +03:00
Eli Zaretskii
4468216f17 ; * doc/lispref/display.texi (Image Descriptors): Clarify text. 2024-06-08 16:19:54 +03:00
Eli Zaretskii
bd50c804ec Fix 'string-edit' when abort-callback is omitted
* lisp/textmodes/string-edit.el (string-edit): Set
'string-edit--abort-callback' even if ABORT-CALLBACK is nil.
(Bug#71406)
2024-06-08 16:07:24 +03:00
kobarity
c03cafba39 Fix Python mode error caused by incorrect indentation
* lisp/progmodes/python.el (python-indent--calculate-indentation):
Guard against negative indentation.  (Bug #65870)

* test/lisp/progmodes/python-tests.el
(python-indent-badly-indented-block-end): New test.
2024-06-08 15:27:47 +03:00
James Thomas
d7be9fdbc0 Check for doc-spec-function early, in interactive invocation
* lisp/info-look.el (info-lookup-interactive-arguments):
Move here.
(info-lookup): From here.  (Bug#71314)
2024-06-08 15:23:39 +03:00
Richard Sent
579aaa1ec2 Make 'clone-indirect-buffer-other-window' use other window
Previously, depending on the settings in 'display-buffer-alist',
'clone-indirect-buffer-other-window' would display the cloned
buffer in the original window, behaving identically to
'clone-indirect-buffer' with a non-nil display-flag.  This
behavior was inconsistent with other-window commands which
always used another window.
Now, 'clone-indirect-buffer-other-window' uses
'switch-to-buffer-other-window'.  This means it uses the same
logic as other-window commands like 'find-file-other-window'
and 'info-other-window'.
display-flag was kept for API stability and functional
compatibility reasons.
* lisp/simple.el: (clone-indirect-buffer-other-window): Use
switch-to-buffer-other-window.  (Bug#70819)
2024-06-08 15:15:36 +03:00
Eli Zaretskii
35e65a84eb Merge from origin/emacs-29
53e9caa23e ; * doc/emacs/help.texi (Help, Apropos): Improve text and...
00360258ca Fix treesit-parse-string crash (bug#71012)
20af58d3a1 Check for buffer liveness when accessing tree-sitter node...
2024-06-08 07:34:20 -04:00
Eli Zaretskii
53e9caa23e ; * doc/emacs/help.texi (Help, Apropos): Improve text and indexing. 2024-06-08 14:10:10 +03:00
Po Lu
ed122417b9 Improve scaling of tab bar items on high-density displays
* lisp/tab-bar.el (tab-bar-auto-width-max)
(tab-bar-auto-width-min): Accept values of a new format where
the pixel width is a list and is subject to scaling.
(tab-bar-auto-width-1): New function.
(tab-bar-auto-width): Scale pixel values from t-b-a-w-min and
t-b-a-w-max.
2024-06-08 15:18:27 +08:00
Po Lu
4fa38af7c2 Remove touchscreen pinch event generation threshold
* lisp/touch-screen.el (touch-screen-handle-aux-point-update):
Remove the said threshold.
2024-06-08 15:18:27 +08:00
Stefan Kangas
bef514de4d ; Fix typos 2024-06-07 23:51:18 +02:00
Eli Zaretskii
e99a821f97 Avoid crashes in half-baked emacsclient frames
If a client connection comes in while we handle a Lisp error,
the new frame creation could signal an error before the new
frame is ready for display.
* src/xdisp.c (redisplay_internal): Don't redisplay windows on
frames that were not completely set up.  (Bug#71224)
2024-06-07 22:30:41 +03:00
Juri Linkov
9cd182dae8 * lisp/buff-menu.el (Buffer-menu-group-sort-by): New defcustom.
(list-buffers--refresh): Use Buffer-menu-group-sort-by instead of the
hard-coded function (bug#70150).
(Buffer-menu-group-sort-alphabetically): New function as an option for
'Buffer-menu-group-sort-by'.
(list-buffers-noselect): Remove setting	outline-minor-mode-use-buttons
to 'in-margins' that it not required for this feature to work correctly.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups-sort):
Add optional argument 'level'.
2024-06-07 19:57:07 +03:00
Juri Linkov
979365eef2 Add new alist entry 'some-window' for 'display-buffer-use-some-window'
* doc/lispref/windows.texi (Buffer Display Action Functions):
Add details of using the alist entry 'some-window' in
'display-buffer-use-some-window'.
(Buffer Display Action Alists): Add 'some-window'.

* lisp/window.el (display-buffer-use-some-window):
Handle the alist entry 'some-window' (bug#70949).
Extend docstring with its description.
2024-06-07 19:45:06 +03:00
Stefan Monnier
24082fc3c3 * lisp/subr.el (with-silent-modifications): Minor simplification 2024-06-07 10:57:11 -04:00
Po Lu
6a9a5f59b9 Merge remote-tracking branch 'savannah/master' into master-android-1 2024-06-07 21:40:16 +08:00
Po Lu
f1c9a32a23 Eliminate Makefile race
* java/Makefile.in (cf-stamp): Don't separately depend on
NDK_BUILD_SHARED, as this renders make liable to descend into
cross/ndk-build twice in different processes.
(clean): Don't remove nonexistent file.
2024-06-07 21:39:01 +08:00
Eli Zaretskii
b4b4c0fec4 Unbreak the Cygw32 build
It was broken by latest changes to w32image.c.
* src/emacs.c (main): Call 'syms_of_w32image' and
'globals_of_w32image' only if native image APIs are enabled.
(Bug#71412)
2024-06-07 16:34:53 +03:00
Po Lu
43826a9109 ; * java/INSTALL (LIBRSVG): Typo. 2024-06-07 20:39:47 +08:00
Po Lu
7052654515 Document compilation of librsvg on Android
* java/INSTALL (LIBRSVG): New section.
(BUILDING WITH OLD NDK VERSIONS): Update recommended invocation
of configure in the case of a combined toolchain.
2024-06-07 20:39:46 +08:00
Arash Esbati
57c0549c4f Fix names of TeX-related major-modes
* lisp/ffap.el (ffap-alist, ffap-string-at-point-mode-alist): Add
entries for mode names introduced in AUCTeX v14.  Use
`plain-tex-mode' for built-in mode.  (bug#71376)
2024-06-07 12:00:32 +02:00
Basil L. Contovounesios
6dd3c6023e Fix tree-sitter markup in Elisp manual
* doc/lispref/parsing.texi (Retrieving Nodes, User-defined Things)
(Multiple Languages): Mark up variable names as @code, not
metasyntactic @var.
2024-06-07 11:08:31 +02:00
Basil L. Contovounesios
025c3eaf9c Fix user-error usage in sgml-mode.el
* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler):
Address recent byte-compiler format string warnings (bug#71379).
2024-06-07 10:48:03 +02:00
Juri Linkov
b18bdbb2c1 * lisp/buff-menu.el: Mark all entries in outline.
(Buffer-menu-mark, Buffer-menu-unmark, Buffer-menu-delete)
(Buffer-menu-save): Mark all entries in the outline
when `outline-minor-mode' is enabled and point is
on the outline heading line (bug#70150).
(Buffer-menu-backup-unmark): Support outline heading lines.
2024-06-07 09:45:05 +03:00
Eli Zaretskii
7d36bb0547 ; * src/dispnew.c (update_frame_line): Fix thinko (bug#71289). 2024-06-07 09:11:04 +03:00
João Távora
6906ed28f1 Eglot: better fix for bug#70724
If the project's root is or destroyed , this may happen for a
variety of reasons, including reasons affecting non-reconnection
scenarios, so better to check in eglot--connect.

An Eglot "reconnection" has always created as accurate a copy of
the previous server object as possible, down to the 'eq'ness or
the saved initargs, language ids, etc.  So re-querying for
projects is not the thing to do here.

A new different server can be created with `M-x eglot` which will
ask about shutting down the existing one.

* lisp/progmodes/eglot.el (eglot-reconnect):  Revert previous change.
(eglot--connect):  Do sanity check here
2024-06-06 17:13:57 -05:00
Dmitry Gutov
b571c6571c eglot-reconnect: Re-fetch the current project
* lisp/progmodes/eglot.el (eglot-reconnect): Retrieve the current
project just in case something changed (bug#70724).
2024-06-06 23:35:20 +03:00
Eli Zaretskii
91f51f5ac5 Prevent another abort in 'cmcheckmagic'
* src/dispnew.c (update_frame_line): Prevent rare aborts when TTY
frame is resized.  (Bug#71289)
2024-06-06 17:43:00 +03:00
Po Lu
a48f062e36 Minor enhancements to the Android build system
* build-aux/ndk-build-helper-1.mk:

* build-aux/ndk-build-helper-2.mk:

* cross/ndk-build/ndk-build-shared-library.mk:

* cross/ndk-build/ndk-build-static-library.mk:

* cross/ndk-build/ndk-resolve.mk
(NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)):
(NDK_LOCAL_SO_NAMES_$(LOCAL_MODULE)):
(NDK_LOCAL_A_NAMES_$(LOCAL_MODULE)): Reinforce tests for string
prefixes.

* m4/ndk-build.m4 (ndk_INIT): Guarantee that a module's
dependencies are recorded.

* configure.ac (XCONFIGURE): Prepare for building librsvg.
2024-06-06 20:56:33 +08:00
Kyle Meyer
c86995d07e Enable code block evaluation when generating .org manuals
* doc/misc/Makefile.in ($(1:.org=.texi)): Enable code
block evaluation in Org mode manual and other .org manuals
to produce automatically generated parts.  (Bug#71394)
When testing a scratch sync to the Emacs repo, the build
failed with

 make[3]: Leaving directory '/home/kyle/src/savannah/emacs--master/lisp'
 Evaluate this emacs-lisp code block on your system? (yes or no)
 Error: end-of-file ("Error reading from stdin")
   yes-or-no-p("Evaluate this emacs-lisp code block on your system? ")

That's expected given 715148131 (org-manual: Automatically
generate export option list, 2023-07-31) and the default
org-confirm-babel-evaluate value.
2024-06-06 15:34:58 +03:00
Eli Zaretskii
9da2faf73b ; Fix last change in sqlite.c
* etc/NEWS:
* doc/lispref/text.texi (Database):
* src/sqlite.c (Fsqlite_execute_batch): Fix last change (Bug#70145).
2024-06-06 13:06:58 +03:00
Eli Zaretskii
7ba4de0077 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2024-06-06 13:06:51 +03:00
Javier Olaechea
23ef989935 Add 'sqlite-execute-batch' command
This command is similar to 'sqlite-execute' except that it
executes multiple statements in exchange for not accepting
any arguments.  (Bug#70145)
* src/sqlite.c (Fsqlite_execute_batch): New function.

* test/src/sqlite-tests.el (sqlite-multiple-statements): Add
smoke test for 'sqlite-execute-batch'.

* etc/NEWS: Mention new command 'sqlite-execute-batch'.
* doc/lispref/text.texi (Database): Document the new command.
2024-06-06 12:51:46 +03:00
Mattias Engdegård
32bfc825a7 Format string warnings for more functions (bug#71379)
* lisp/emacs-lisp/bytecomp.el (byte-compile-format-like):
Add message-box, message-or-box, warn and user-error.
2024-06-06 10:10:16 +02:00
Eli Zaretskii
7fbafb9d95 Attempt to fix rare assertion violations in 'mark_terminals'
* src/terminal.c (delete_terminal): Block input while we modify
the frame list and 'terminal_list'.  (Bug#71289)
2024-06-06 10:47:21 +03:00
Po Lu
0467b756aa * java/AndroidManifest.xml.in: Revert portions of last change. 2024-06-06 09:16:03 +08:00