Commit graph

153961 commits

Author SHA1 Message Date
Andrea Corallo
dfaf8bec4e * `batch-byte+native-compile' produce .eln younger than .elc (bug#52912)
* lisp/emacs-lisp/comp.el (batch-native-compile): Add return
value.
(batch-byte+native-compile): Touch the produced .eln after the
corresponding .elc is produced.
2022-01-25 17:47:34 +01:00
Andrea Corallo
72a4cdaadc * lisp/emacs-lisp/comp.el (batch-byte+native-compile): Fix unwind form 2022-01-25 17:47:34 +01:00
Stefan Monnier
e8c66036d1 * src/lisp.h (lisp_h_EQ, lisp_h_NILP): Fix length and indent 2022-01-25 10:03:01 -05:00
Mattias Engdegård
697723b63d Faster concat, append, vconcat, copy-sequence, etc
Split the C auxiliary function `concat` into separate functions for
string and list/vector as target types, respectively.  This makes them
simpler and faster.

Implement `Fcopy_sequence` more efficiently for strings, lists and
vectors instead of using `concat`.

The result is a significant performance increase for the Lisp
built-ins concat, append, vconcat, copy-sequence and anything using
them such as mapconcat, copy-alist and propertize.

* src/fns.c (concat2, concat3, Fconcat): Use concat_strings.
(Fappend, Fvconcat): Adapt to changed signature of concat.
(Fcopy_sequence): Faster implementation for lists, strings, and vectors.
(concat_strings): New.
(concat): Strip code for string target, simplify, optimise.
(Fcopy_alist): Use Fcopy_sequence.
2022-01-25 15:51:25 +01:00
Lars Ingebrigtsen
f16039b161 Don't mutate literals in tabulated-list-widen-current-column
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-widen-current-column): Avoid mutating constants
(bug#53501).
2022-01-25 14:21:22 +01:00
Lars Ingebrigtsen
c40398e008 Fix widening some columns in tabulated-list-widen-current-column
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-widen-current-column): Don't bug out on list-based
columns (bug#53498).
2022-01-25 13:58:30 +01:00
Jim Porter
44ffd6a825 Treat "-" as a positional arg in 'eshell-eval-using-options'
* lisp/eshell/esh-opt.el (eshell--process-args): Treat "-" as a
positional arg.

* lisp/eshell/em-tramp.el (eshell/su): Simplify checking for "-".

* test/lisp/eshell/esh-opt-tests.el
(esh-opt-test/eval-using-options-stdin): New test.
2022-01-25 13:28:48 +01:00
Jim Porter
dea24a0f7d Don't manipulate args in-place for 'eshell-eval-using-options'
This is necessary for preserve the original arguments to forward on to
:external commands.  Previously, when :preserve-args was also set, the
original argument list could be altered, changing the meaning of the
command.

* lisp/eshell/esh-opt.el (eshell-eval-using-options): Copy MACRO-ARGS
when :preserve-args is set, and pass the original value to
'eshell--do-opts'.
(eshell--do-opts): Use the original arguments when calling an external
command.

* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo): Don't copy the
original arguments, since 'eshell-eval-using-options' does this for
us.

* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test):
Split this test into...
(esh-opt-test/process-args)
(esh-opt-test/process-args-parse-leading-options-only)
(esh-opt-test/process-args-external): ... these.
(test-eshell-eval-using-options): Split this test into...
(esh-opt-test/eval-using-options-short)
(esh-opt-test/eval-using-options-long)
(esh-opt-test/eval-using-options-constant)
(esh-opt-test/eval-using-options-user-specified)
(esh-opt-test/eval-using-options-short-single-token)
(esh-opt-test/eval-using-options-terminate-options)
(esh-opt-test/eval-using-options-parse-leading-options-only)
(esh-opt-test/eval-using-options-unrecognized): ... these.
(esh-opt-test/eval-using-options-external): New test.

* test/lisp/eshell/em-tramp-tests.el: New tests.
2022-01-25 13:28:45 +01:00
Lars Ingebrigtsen
115f3f5934 Improve the term-clear-full-screen-programs doc string
* lisp/term.el (term-clear-full-screen-programs): Improve the doc
string.
2022-01-25 12:51:30 +01:00
Po Lu
4d342f36a6 Improve reliability of menu bar updates on Haiku
* src/haiku_support.cc (class EmacsWindow): New fields
`menu_update_cv', `menu_update_mutex' and `menu_updated_p'.
(~EmacsWindow): Destroy cv and mutex.
(MenusBeginning): Release lock and wait for condition to be
become true.
(EmacsWindow_signal_menu_update_complete): New function.
* src/haiku_support.h (struct haiku_menu_bar_state_event): New
field `no_lock'.
* src/haikumenu.c (Fhaiku_menu_bar_open): Always update menu
bar.
* src/haikuterm.c (haiku_read_socket): Always update menu bar
and signal the window thread after update completion.
2022-01-25 11:19:20 +00:00
Po Lu
03c9257b11 * src/haiku_support.cc (Highlight): Send events if !highlight_p. 2022-01-25 10:18:35 +00:00
Po Lu
0a70f748e7 Don't send menu help events on Haiku if the pointer isn't in the menu
* src/haiku_support.cc (Highlight): Only send help events
if the mouse cursor is actually in the menu.
2022-01-25 10:02:16 +00:00
Po Lu
b373c8ad71 Fix tool bar size reporting on GTK when the display is scaled
* src/gtkutil.c (xg_update_tool_bar_sizes): Multiply sizes to
turn them into device pixels.
2022-01-25 14:43:12 +08:00
Stefan Kangas
ff63787ea1 Merge from origin/emacs-28
c34d06e3d7 * configure.ac (LIBSECCOMP): Bump minimum version for facc...
335a5a9e0f Make the `f' command work in image-mode again
2022-01-25 06:31:03 +01:00
Po Lu
ec403abc60 Improve portability of X11 IM code
* configure.ac: Test for XICCallback.callback if X11R6 or later.
* src/xfns.c (Xxic_preedit_start_callback): Use XICCallback if
present.
2022-01-25 11:49:39 +08:00
Stefan Monnier
96929e5d01 Remove some dubious uses of interactive-form
* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): `commandp` and
`interactive-form` are for function values, not for source code.
* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag):
Prefer `commandp` over `interactive-form`.
2022-01-24 21:31:53 -05:00
Po Lu
ea953db0a0 Fix invalid picture after toggling the tool bar or menu bar on GTK
* src/xterm.c (x_drop_xrender_surfaces): New function.
(handle_one_xevent): Call x_drop_xrender_surfaces instead of
just font_drop_xrender_surfaces.
2022-01-25 10:15:16 +08:00
Po Lu
eb4edfa0c8 Fix GTK native input on scaled displays
* src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle
before giving it to GTK.
2022-01-25 08:22:30 +08:00
Sean Whitton
667e212048 Add Eshell syntax to more easily bypass Eshell's own pipelining
* etc/NEWS:
* doc/misc/eshell.texi (Input/Output): Document the new syntax.
* lisp/eshell/em-extpipe.el: New module (Bug#46351).
* test/lisp/eshell/em-extpipe-tests.el: New tests.
* lisp/eshell/esh-module.el (eshell-modules-list): Add `eshell-extpipe'.
2022-01-24 21:46:31 +01:00
Sean Whitton
42aef82a2b Rework eshell-match-result for testing asynchronous commands
When using eshell-match-result via eshell-command-result-p to examine
the output of asynchronous Eshell commands, a newly emitted prompt is
included in the text against which the regexp is matched.  This makes
it awkward to match against the whole output; for example, to check
whether it is empty.  Rework the function to exclude the prompt.

* test/lisp/eshell/eshell-tests-helpers.el (eshell-match-result):
Exclude any newly emitted prompt from the text against which the
regexp is matched.  Additionally, the function no longer moves point.
* test/lisp/eshell/eshell-tests.el (eshell-test/flush-output): Update
and simplify test given how eshell-match-result no longer moves point.
2022-01-24 21:45:00 +01:00
Sean Whitton
1693423fd7 Move Eshell test helpers to their own file
* test/lisp/eshell/eshell-tests.el:
* test/lisp/eshell/eshell-tests-helpers.el: Move helpers to own file.
2022-01-24 21:44:57 +01:00
Lars Ingebrigtsen
422b0f2a50 Make hi-lock-face-defaults into a defcustom
* lisp/hi-lock.el (hi-lock-face-defaults): Make into defcustom.
2022-01-24 20:18:22 +01:00
Juri Linkov
7f7b418ae6 * lisp/hi-lock.el (hi-lock-use-overlays): New variable.
(hi-lock-set-pattern): Use it.  Set overlay priority to 1.
(bug#53155)
2022-01-24 21:15:37 +02:00
Lars Ingebrigtsen
ee08481712 Add NEWS entry for term-clear-full-screen-programs 2022-01-24 20:02:33 +01:00
Miha Rihtaršič
81886aeaff Implement alternative sub-buffer support in term.el
* etc/e/eterm-color.ti: Added termcaps for entering and leaving an
alternative sub-buffer.
* lisp/term.el (term-reset-size): Resize correctly in an alternative
sub-buffer is in use.
(term-clear-full-screen-programs): New user option.
(term-handle-ansi-escape):
(term-termcap-format): Handle termcaps for entering and leaving an
alternative sub-buffer.
(term-switch-to-alternate-sub-buffer): New (used to be commented out)
function to enter or leave an alternative sub-buffer.
bug#53485
2022-01-24 20:02:33 +01:00
Juri Linkov
b93902e22b * lisp/info.el (Info-link-keymap): Fix repetitive clicks on the header line.
Rebind [header-line mouse-1] from mouse-select-window to
Info-mouse-follow-link.  It selects the window anyway,
but also allows repetitively clicking on the Next button
on the Info header line (bug#53170).
2022-01-24 20:54:54 +02:00
Lars Ingebrigtsen
ee87c2f8ca Don't list the default hi-lock faces twice in the future history
* lisp/hi-lock.el (hi-lock-read-face-name): Don't include faces
twice in the defaults (bug#19877).
2022-01-24 19:52:02 +01:00
Lars Ingebrigtsen
8f16b1aef1 Fix gnus-article-truncate-lines doc string
* lisp/gnus/gnus-art.el (gnus-article-truncate-lines): Fix doc
string.
2022-01-24 19:52:02 +01:00
Juri Linkov
28a0d0037c * etc/NEWS: Mention 'replace-regexp-function' (bug#52558). 2022-01-24 20:45:53 +02:00
Juri Linkov
2166b1e65e * lisp/faces.el (read-face-name): Support a list of defaults for M-n.
When MULTIPLE is nil and the arg DEFAULT is a list, keep its elements
in the "future history" of the minibuffer retrieved by `M-n M-n ...'.
(bug#53255)
2022-01-24 20:28:10 +02:00
Glenn Morris
fbf4757784 * lisp/minibuffer.el (completions-sort): Fix type.
Flagged by test-custom-opts.
2022-01-24 10:16:36 -08:00
Lars Ingebrigtsen
701ec0bda2 Don't output spurious prefixes in read-char-exclusive
* src/keyboard.c (read_char): Don't touch the echo area if
Vecho_keystrokes is nil.
* src/lread.c (read_filtered_event): Bind echo_keystrokes to nil
to avoid outputting prefixes we're not going to act on anyway
(bug#19718).
2022-01-24 18:19:38 +01:00
Lars Ingebrigtsen
7e653ee73f Allow sorting in electric-buffer-list with `S'
* lisp/ebuff-menu.el (electric-buffer-menu-mode-map): Add the `S'
sorting command here, too (bug#20178).
2022-01-24 18:19:38 +01:00
Amin Bandali
f4bfe7834a
ERC: Add new comaintainer, F. Jason Park
* lisp/erc/erc*.el: Add J.P. as my comaintainer to headers.
2022-01-24 10:59:05 -05:00
Lars Ingebrigtsen
5909b27144 Fix \href{a_b} in tex-mode
* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): Fontify
href parameters like constants so that _ aren't fontified like
subscripts.
2022-01-24 15:19:38 +01:00
Lars Ingebrigtsen
8c37b9042e Revert "Fix tex-mode handling of _ chars in href{} commands"
This reverts commit 487a0be7f7.

This will be fixed a different way.
2022-01-24 15:15:59 +01:00
Lars Ingebrigtsen
79d9f3982f Add derived-mode test for bug#24176 2022-01-24 15:10:18 +01:00
Lars Ingebrigtsen
ffb0e8c4ef Make anonymous functions work in auto-mode-alist
* lisp/files.el (set-auto-mode--apply-alist): Don't infloop on
anonymous functions in auto-mode-alist (bug#20709).
2022-01-24 15:06:39 +01:00
Mattias Engdegård
067e84116d ; * src/bytecode.c (exec_byte_code): Silence GCC warning 2022-01-24 15:03:20 +01:00
Lars Ingebrigtsen
edeb220d31 Don't loop so much in gud-query-cmdline on remote systems
* lisp/progmodes/gud.el (gud-query-cmdline): Avoid looping over
large numbers of files on remote systems (bug#21528).
2022-01-24 14:57:17 +01:00
Protesilaos Stavrou
a46421446f Make Completions sorting a user option
* etc/NEWS: Document the new user option.
* lisp/minibuffer.el (completions-sort): Add new user option.
(minibuffer-completion-help): Implement it for the Completions
buffer.  (Bug#53362)
2022-01-24 15:36:11 +02:00
Lars Ingebrigtsen
ead9547903 Allow jumping to ert failure definitions
* lisp/emacs-lisp/ert.el (ert-test):
(ert-deftest):  Store the file name.
(ert-test-location): New function.
(ert-run-tests-batch): Use it.

* lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp): New
variable.
(find-function-regexp-alist): Add ert-deftest (bug#22471).

Based on code by Phillip Lord <phillip.lord@russet.org.uk>.
2022-01-24 14:01:06 +01:00
Yuuki Harano
d0b9e269ee * configure.ac: Remove forgotten GLIB_GSETTINGS call 2022-01-24 21:26:17 +09:00
Lars Ingebrigtsen
933ed56e55 Add NEWS item for `I' command 2022-01-24 13:02:00 +01:00
Lars Ingebrigtsen
031c2e4679 Add a *Help* command that'll take you to the lispref manual
* doc/emacs/help.texi (Help Mode): Document it.
* lisp/help-mode.el (help-mode-map): Add an `I' keystroke.
(help-goto-lispref-info): New command.

* lisp/info-look.el (:mode): Add an entry for the lispref manual.
2022-01-24 12:59:55 +01:00
Lars Ingebrigtsen
487a0be7f7 Fix tex-mode handling of _ chars in href{} commands
* lisp/textmodes/tex-mode.el (tex--current-command): New function
(bug#23102).
(tex-font-lock-suscript): Don't subscript _ chars in href.
2022-01-24 12:39:02 +01:00
Lars Ingebrigtsen
77b72f77b3 Make `font-lock-add-keywords' work in derived modes
* lisp/font-lock.el (font-lock-set-defaults): Make
`font-lock-add-keywords' work in derived modes (bug#24176).
2022-01-24 11:56:35 +01:00
Po Lu
806a121007 Remove redundant declarations from keyboard.h that are now in lisp.h
* src/keyboard.h (process_pending_signals)
(pending_signals): Remove declarations.
2022-01-24 18:49:54 +08:00
Mattias Engdegård
a8b713d83a Inline maybe_quit
Since `maybe_quit` is called on many critical paths, inline a slightly
cheaper condition (that ignores Vinhibit_quit).

* src/eval.c (maybe_quit): Rename to `probably_quit`.
* src/lisp.h (maybe_quit): New simplified inline function.
2022-01-24 11:41:47 +01:00
Mattias Engdegård
b7902a9b48 Bump specpdl inline, move reallocation out of line
The common case is just to increment `specpdl_ptr`; do that in-line,
but move the uncommon reallocation to a separate subroutine.

* src/eval.c (grow_specpdl): Now inline, most code moved...
(grow_specpdl_allocation): ...here.
2022-01-24 11:41:47 +01:00