]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years agoFix ses-tests.el
Vincent Belaïche [Wed, 6 Apr 2022 20:59:43 +0000 (22:59 +0200)]
Fix ses-tests.el

* lisp/ses.el (ses-jump-cell-name-function): Docstring typo.

* test/lisp/ses-tests.el (ses--cells, foo, bar, B2, toto): Do not
do any outer defvar, but set the defvar only under the
with-suppressed-warnings directive to silence the byte-compiler.

3 years ago* lisp/ses.el: Fix 80-column-docstring warnings
Stefan Monnier [Wed, 6 Apr 2022 18:42:33 +0000 (14:42 -0400)]
* lisp/ses.el: Fix 80-column-docstring warnings

Also remove redundant `:group` args and prefer #' to quote function names.

3 years agoGet rid of extra sync looking up window through XTranslateCoordinates
Po Lu [Wed, 6 Apr 2022 12:48:06 +0000 (20:48 +0800)]
Get rid of extra sync looking up window through XTranslateCoordinates

* src/xterm.c (x_dnd_get_wm_state_and_proto): Return proxy as
well.
(x_dnd_get_target_window): Use that proxy.

3 years agoMove some X11 drag and drop processing to Lisp
Po Lu [Wed, 6 Apr 2022 12:29:30 +0000 (20:29 +0800)]
Move some X11 drag and drop processing to Lisp

* lisp/term/x-win.el: Set unsupported drop function.
* lisp/x-dnd.el (x-dnd-handle-unsupported-drop): New function.
* src/keyboard.c (kbd_buffer_get_event): Handle
UNSUPPORTED_DROP_EVENT.
* src/termhooks.h (enum event_kind): New event
`UNSUPPORTED_DROP_EVENT'.
* src/xterm.c (x_dnd_send_unsupported_drop): Send those events
instead.
(x_dnd_do_unsupported_drop): Move actual unsupported drop
handling here.
(syms_of_xterm): New variable `x-dnd-unsupported-drop-function'.
* src/xterm.h: Update prototypes.

3 years agoFix minor-mode doc string quoting
Lars Ingebrigtsen [Wed, 6 Apr 2022 11:47:46 +0000 (13:47 +0200)]
Fix minor-mode doc string quoting

* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Fix
double quoting of things like (default-value 'electric-pair-mode)
(bug#54746).

3 years agoMake the Foot terminal an alias of xterm-256color
Davide Masserut [Wed, 6 Apr 2022 10:24:09 +0000 (12:24 +0200)]
Make the Foot terminal an alias of xterm-256color

* lisp/faces.el (term-file-aliases): Make the foot terminal an alias
of xterm-256color (bug#54739).

3 years agoMake file-name-split returns driver name as well in Windows
Kien Nguyen [Wed, 6 Apr 2022 09:58:02 +0000 (11:58 +0200)]
Make file-name-split returns driver name as well in Windows

* lisp/files.el (file-name-split): Returns driver name as well in
Windows.
* lisp/net/browse-url.el (browse-url-file-url): Don't hexify colon
character in file path for Windows (bug#54721).

3 years agoAdd .bashrc detection to sh-mode
Davide Masserut [Wed, 6 Apr 2022 09:37:38 +0000 (11:37 +0200)]
Add .bashrc detection to sh-mode

* lisp/progmodes/sh-script.el (sh-mode): Add .bashrc string-match
(bug#54727).

3 years agoUse CUA functions to scroll pages with pixel-scroll-scroll-mode
Markus Kopp [Wed, 6 Apr 2022 09:27:19 +0000 (17:27 +0800)]
Use CUA functions to scroll pages with pixel-scroll-scroll-mode

* lisp/pixel-scroll.el (pixel-scroll-interpolate-down)
(pixel-scroll-interpolate-up): Use `cua-scroll-up' and
`cua-scroll-down' to scroll if
`pixel-scroll-precision-interpolate-page' is off.  (bug#54696)

3 years agoPrevent races when trying to set Motif drag window
Po Lu [Wed, 6 Apr 2022 09:17:41 +0000 (17:17 +0800)]
Prevent races when trying to set Motif drag window

* src/xterm.c (xm_get_drag_window): Grab temp connection when
setting the drag window.

3 years agoRevert unneeded change in tramp-integration.el
Michael Albinus [Wed, 6 Apr 2022 07:51:09 +0000 (09:51 +0200)]
Revert unneeded change in tramp-integration.el

* lisp/net/tramp-integration.el:
Apply `connection-local-set-profiles' w/o retrieving old values.

3 years agoFix URL-related typos in comments and messages
Lars Ingebrigtsen [Wed, 6 Apr 2022 07:27:32 +0000 (09:27 +0200)]
Fix URL-related typos in comments and messages

* lisp/ffap.el (ffap-next): Fix typo in message.
* lisp/finder.el (finder-commentary): Fix typo in comment.

3 years agoImprove safety of haiku-drag-message
Po Lu [Wed, 6 Apr 2022 05:54:31 +0000 (05:54 +0000)]
Improve safety of haiku-drag-message

* lisp/term/haiku-win.el (haiku-drag-and-drop): Ignore
placeholder message.
* src/frame.c (delete_frame): Prevent deleting drop source frame
on Haiku.
* src/haiku_support.cc (RELEASE_NOW, CANCEL_DROP): New message
types.
(class EmacsView, MessageReceived): Handle new message types.
(be_drag_message): Drag CANCEL_DROP message on quit; also send
RELEASE_NOW to view if quitting.

* src/haikuselect.c (syms_of_haikuselect)
(haiku_unwind_drag_message): Clear new frame variable.
(Fhaiku_drag_message): Set new frame variable.
* src/haikuterm.h: Update prototypes.

3 years ago; * src/xterm.c: Improve commentary.
Po Lu [Wed, 6 Apr 2022 04:42:45 +0000 (12:42 +0800)]
; * src/xterm.c: Improve commentary.

3 years agoClean up more PGTK code
Po Lu [Wed, 6 Apr 2022 04:27:57 +0000 (12:27 +0800)]
Clean up more PGTK code

* lisp/term/pgtk-win.el (featurep):
(pgtk):
(pgtk-use-im-context):
(pgtk-handle-nxopen):
(pgtk-handle-nxopentemp):
(pgtk-ignore-1-arg):
([C-drag-n-drop]):
([M-drag-n-drop]):
([C-M-drag-n-drop]):
(pgtk-alternate-modifier):
(pgtk-right-alternate-modifier):
(pgtk-right-command-modifier):
(pgtk-right-control-modifier):
(pgtk-do-hide-emacs):
(pgtk-hide-others):
(pgtk-do-hide-others):
(pgtk-emacs-info-panel):
(pgtk-do-emacs-info-panel):
(pgtk-next-frame):
(pgtk-prev-frame):
(after-make-frame-functions):
(tool-bar-mode):
(pgtk-toggle-toolbar):
(pgtk-print-buffer):
(scalable-fonts-allowed):
(pgtk-standard-fontset-spec):
(pgtk-store-cut-buffer-internal):
(pgtk-copy-including-secondary):
(pgtk-paste-secondary):
(pgtk-suspend-error):
(window-system-initialization):
(after-init-hook): Remove code mindlessly copied from ns-win.el,
delete unused custom group, write doc strings and rename
variables duplicated from X to their names on X.  Also reformat
comments and code.
(pgtk-use-im-context-handler): New function.

* src/pgtkfns.c (syms_of_pgtkfns): Delete useless
AppleScript (!) code copied from NS.
* src/pgtkselect.c: Write FIXME about selection API usage.

* src/pgtkterm.c (get_keysym_name): Implement correctly instead
of sprintf'ing the numeric value of the keysym into a static
buffer.
(pgtk_set_window_size):
(xg_scroll_callback): Delete code that was #if 0'd out and
doesn't make sense on PGTK.
(pgtk_delete_terminal): Remove misleading comment.

3 years ago* src/emacs.c (main): Improve accuracy of daemon warning message on PGTK.
Po Lu [Wed, 6 Apr 2022 02:29:53 +0000 (10:29 +0800)]
* src/emacs.c (main): Improve accuracy of daemon warning message on PGTK.

3 years ago* src/xterm.c (x_dnd_send_unsupported_drop): Also handle TEXT target.
Po Lu [Wed, 6 Apr 2022 01:09:13 +0000 (09:09 +0800)]
* src/xterm.c (x_dnd_send_unsupported_drop): Also handle TEXT target.

3 years agoPreserve contents of PRIMARY when sending unsupported drop
Po Lu [Wed, 6 Apr 2022 00:55:30 +0000 (08:55 +0800)]
Preserve contents of PRIMARY when sending unsupported drop

* src/xterm.c (x_dnd_send_unsupported_drop): Set local value of
PRIMARY to the preexisting selection value, if any.

3 years agoPort Org encode-time usage back to Emacs 25
Paul Eggert [Wed, 6 Apr 2022 00:48:05 +0000 (17:48 -0700)]
Port Org encode-time usage back to Emacs 25

* lisp/org/ol.el (org-store-link):
* lisp/org/org-clock.el (org-clock-sum)
(org-clock-update-time-maybe):
* lisp/org/org-colview.el (org-colview-construct-allowed-dates):
* lisp/org/org-macro.el (org-macro--vc-modified-time):
* lisp/org/org-macs.el (org-2ft, org-matcher-time):
* lisp/org/org-table.el (org-table-eval-formula):
* lisp/org/org.el (org-read-date, org-display-custom-time)
(org-time-string-to-time, org-timestamp-change):
Don’t assume Emacs 27 encode-time, since standalone Org still
works with Emacs 25 and it’s easier if we minimize differences
from standalone Org.  Problem reported by Max Nikulin (Bug#54731).
This reverts much of 2021-12-16T17:40:21Z!eggert@cs.ucla.edu.

3 years ago* src/xterm.c (handle_one_xevent): Assert that hold_quit is present instead.
Po Lu [Wed, 6 Apr 2022 00:48:41 +0000 (08:48 +0800)]
* src/xterm.c (handle_one_xevent): Assert that hold_quit is present instead.

3 years agoPacify gcc -Wanalyzer-null-dereference
Paul Eggert [Wed, 6 Apr 2022 00:20:34 +0000 (17:20 -0700)]
Pacify gcc -Wanalyzer-null-dereference

* src/xterm.c (handle_one_xevent): Don’t dereference HOLD_QUIT if
it’s null.  Potential problem found with gcc 11.2.1 20220127 (Red
Hat 11.2.1-9), when configured with --enable-gcc-warnings.

3 years agoAllow completion wrapping in minibuffer completion navigation commands
Juri Linkov [Tue, 5 Apr 2022 20:08:48 +0000 (23:08 +0300)]
Allow completion wrapping in minibuffer completion navigation commands

* lisp/minibuffer.el (minibuffer-previous-completion)
(minibuffer-next-completion): Don't set completion-wrap-movement.

3 years ago* test/lisp/ses-tests.el: Require ert-x, for ert-simulate-keys.
Glenn Morris [Tue, 5 Apr 2022 19:45:59 +0000 (12:45 -0700)]
* test/lisp/ses-tests.el: Require ert-x, for ert-simulate-keys.

3 years agoNew commands for navigating completions from the minibuffer.
Juri Linkov [Tue, 5 Apr 2022 19:20:16 +0000 (22:20 +0300)]
New commands for navigating completions from the minibuffer.

* lisp/simple.el (minibuffer-local-shell-command-map):
* lisp/minibuffer.el (minibuffer-local-completion-map):
Bind "M-<up>" to minibuffer-choose-previous-completion,
"M-<down>" to minibuffer-choose-next-completion,
"M-S-<up>" to minibuffer-previous-completion,
"M-S-<down>" to minibuffer-next-completion,
"M-RET" to minibuffer-choose-completion.
(with-minibuffer-completions-window): New macro.
(minibuffer-previous-completion, minibuffer-next-completion)
(minibuffer-choose-previous-completion)
(minibuffer-choose-next-completion)
(minibuffer-choose-completion): New commands.

https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00335.html

3 years agoUse base prefix and suffix instead of completion-base-position (bug#49931)
Juri Linkov [Tue, 5 Apr 2022 18:54:11 +0000 (21:54 +0300)]
Use base prefix and suffix instead of completion-base-position (bug#49931)

* lisp/minibuffer.el (minibuffer-completion-help):
Set completion-base-affixes from base-prefix and base-suffix.
In completion-list-insert-choice-function handle
string values of start/end as prefix/suffix.

* lisp/simple.el (completion-base-affixes)
(completion-use-base-affixes): New variables.
(choose-completion): Let-bind base-affixes to completion-base-affixes.
Use base-affixes when completion-use-base-affixes is non-nil.
(completion-setup-function): Sync values of base-affixes and
completion-base-affixes.

3 years agoChoosing a completion with a prefix argument doesn't exit the minibuffer
Juri Linkov [Tue, 5 Apr 2022 18:21:42 +0000 (21:21 +0300)]
Choosing a completion with a prefix argument doesn't exit the minibuffer

* lisp/simple.el (choose-completion): New optional args NO-EXIT and NO-QUIT.
(bug#47417)

3 years ago* test/lisp/replace-tests.el: New tests for query-replace (bug#54733)
Juri Linkov [Tue, 5 Apr 2022 17:52:28 +0000 (20:52 +0300)]
* test/lisp/replace-tests.el: New tests for query-replace (bug#54733)

* test/lisp/replace-tests.el (query-replace-tests): New defconst.
(query-replace--perform-tests): New function.
(query-replace-tests, query-replace-search-function-tests): New ert-deftest.

3 years ago; * admin/notes/emba: Fix typos
Robert Pluim [Tue, 5 Apr 2022 16:12:59 +0000 (18:12 +0200)]
; * admin/notes/emba: Fix typos

3 years agoReject invalid time-string in appt-add immediately
Robert Pluim [Tue, 1 Mar 2022 14:24:08 +0000 (15:24 +0100)]
Reject invalid time-string in appt-add immediately

* lisp/calendar/appt.el (appt-add): Check the provided time-string for
validity immediately after reading it rather than after reading all
the parameters.  (Bug#54210)

3 years agoHandle remote system processes
Michael Albinus [Tue, 5 Apr 2022 15:08:03 +0000 (17:08 +0200)]
Handle remote system processes

* doc/lispref/files.texi (Magic File Names):
Add list-system-processes and process-attributes.

* doc/lispref/processes.texi (System Processes): Document changes
in list-system-processes and process-attributes.

* doc/misc/tramp.texi (Customizing Completion): Use @ftable.
(Remote processes): Document changes in list-system-processes and
process-attributes.

* etc/NEWS: Document changes in proced, list-system-processes and
process-attributes.

* lisp/proced.el (proced-show-remote-processes): New defcustom.
(proced-remote-directory): Remove.
(proced-filter-alist): Use it.
(proced-user-name): New defun.
(proced-available): Set it to t.
(proced-mode): Adapt docstring.
(proced): Adapt docstring.  Acknowledge prefix argument.
(proced-format): Change initialization of `standard-attributes'.
(proced-send-signal, proced-renice): Adapt docstring.  Remove
special handling of prefix argument.

* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'list-system-processes' and `process-attributes'.

* lisp/net/tramp-integration.el (files-x): Require `files-x'.
(tramp-bsd-process-attributes-ps-args)
(tramp-bsd-process-attributes-ps-format)
(tramp-connection-local-bsd-ps-variables)
(tramp-busybox-process-attributes-ps-args)
(tramp-busybox-process-attributes-ps-format)
(tramp-connection-local-busybox-ps-variables):
* lisp/net/tramp-adb.el (tramp-adb-connection-local-default-ps-variables):
New defconsts.  Add them to connection-local variables.

* lisp/net/tramp.el (tramp-file-name-for-operation):
Add 'list-system-processes' and `process-attributes'.
(tramp-process-attributes-ps-args)
(tramp-process-attributes-ps-format): New defconsts.
(tramp-ps-time, tramp-get-process-attributes)
(tramp-handle-list-system-processes)
(tramp-handle-process-attributes): New defuns.

* src/process.c (Flist_system_processes, Fprocess_attributes):
Support remote system processes.
(Qlist_system_processes, Qprocess_attributes): Declare symbols.

3 years agoMark some data during drag-and-drop
Po Lu [Tue, 5 Apr 2022 12:03:48 +0000 (20:03 +0800)]
Mark some data during drag-and-drop

It doesn't make sense to prevent the return frame or movement
frame from being deleted, but we should at least protect them
from garbage collection.

* src/alloc.c (garbage_collect): Call mark_xterm.
* src/xterm.c (x_dnd_begin_drag_and_drop)
(x_dnd_cleanup_drag_and_drop): Clear movement and return frames
upon DND completion.
(mark_xterm): Mark those frames.
* src/xterm.h: Update prototypes.

3 years agoFix some details in completions
Jimmy Aguilar Mena [Tue, 5 Apr 2022 11:08:36 +0000 (13:08 +0200)]
Fix some details in completions

* lisp/minibuffer.el (completion--insert-one-column) : Remove the extra
new-line at the end.
* lisp/simple.el (next-completion) : Fix behavior when
completion-wrap-movement and remove bobp and eobp. This removes the
extra tab ad the end of the list before wrapping or going to the
minibuffer and apparently also fixes bug#54374
(switch-to-completions) : Simplify condition code and remove comment not
applicable anymore.

3 years ago; * lisp/term/haiku-win.el: Fix compiler warning on X.
Po Lu [Tue, 5 Apr 2022 10:33:45 +0000 (10:33 +0000)]
; * lisp/term/haiku-win.el: Fix compiler warning on X.

3 years agoAllow dropping text to the root window
Po Lu [Tue, 5 Apr 2022 08:19:02 +0000 (16:19 +0800)]
Allow dropping text to the root window

* src/xterm.c (x_dnd_send_unsupported_drop): Allow dropping to
the root window.
(handle_one_xevent): Send unsupported drops to the last toplevel
instead of the target window.

3 years agoAdd support for dragging text onto windows that don't support any DND protocol
Po Lu [Tue, 5 Apr 2022 03:37:29 +0000 (11:37 +0800)]
Add support for dragging text onto windows that don't support any DND protocol

* src/xselect.c (x_own_selection): Export function.
(x_handle_selection_request): Handle selection requests to the
pending DND time.
(x_set_pending_dnd_time): New function.

* src/xterm.c (x_dnd_send_unsupported_drop): New function.
Implement according to the suggestions in the XDND protocol
specification.
(x_dnd_get_target_window): Return the toplevel window as well.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Send unsupported drops
and use last seen toplevel instead of target for `return_frame'.
* src/xterm.h: Update prototypes.

3 years ago* configure.ac (HAVE_GIF): Respect --with-gif on PGTK. (bug#54633)
Po Lu [Tue, 5 Apr 2022 01:07:36 +0000 (09:07 +0800)]
* configure.ac (HAVE_GIF): Respect --with-gif on PGTK.  (bug#54633)

3 years agoRespect new DND options when dragging to ourselves on Haiku
Po Lu [Tue, 5 Apr 2022 00:54:03 +0000 (00:54 +0000)]
Respect new DND options when dragging to ourselves on Haiku

* lisp/mouse.el (mouse-drag-and-drop-region): Allow dragging to
the current frame if we know `return-frame' doesn't work.
* lisp/term/haiku-win.el (haiku-dnd-drag-handler): New function.
* src/haiku_support.cc (MouseMoved): Don't send drag motion
events for the drag frame.
* src/haikuselect.c (haiku_note_drag_motion_1)
(haiku_note_drag_motion_2, haiku_note_drag_motion): New
functions.
(syms_of_haikuselect): New variable `haiku-drag-track-function'.
* src/haikuterm.c (haiku_read_socket): Note mouse motion in that
case.q
* src/haikuterm.h: Update prototypes.

3 years ago* lisp/progmodes/cc-cmds.el (indent-new-comment-line): Delete advice
Stefan Monnier [Mon, 4 Apr 2022 19:11:46 +0000 (15:11 -0400)]
* lisp/progmodes/cc-cmds.el (indent-new-comment-line): Delete advice

This piece of advice was effective only for Emacs<20.1 and old XEmacs
(at least older than Aug 2007).

3 years agoOClosure: add support for `slot-value`
Stefan Monnier [Mon, 4 Apr 2022 19:06:47 +0000 (15:06 -0400)]
OClosure: add support for `slot-value`

* lisp/emacs-lisp/oclosure.el (oclosure--slot-index)
(oclosure--slot-value, oclosure--set-slot-value): New functions.

* lisp/emacs-lisp/eieio-core.el (eieio-oset, eieio-oref):
Consolidate the type test.  Use `oclosure--(set-)slot-value`.
(eieio--validate-slot-value, eieio--validate-class-slot-value):
Don't presume `class` is an EIEIO class.
(eieio--class): Fix bogus `:type` info.
(eieio--object-class): Simplify.
(eieio--known-slot-name-p): New function.
(eieio-oref, eieio-oref-default, eieio-oset-default): Use it.

* test/lisp/emacs-lisp/oclosure-tests.el: Require `eieio`.
(oclosure-test): Make `name` field mutable.
(oclosure-test-slot-value): New test.

3 years ago; * src/alloc.c (grow_mark_stack): Remove unused variable.
Eli Zaretskii [Mon, 4 Apr 2022 18:09:43 +0000 (21:09 +0300)]
; * src/alloc.c (grow_mark_stack): Remove unused variable.

3 years agoSES with case insensitive cell names for jumping.
Vincent Belaïche [Mon, 4 Apr 2022 17:42:07 +0000 (19:42 +0200)]
SES with case insensitive cell names for jumping.

* doc/misc/ses.texi (The Basics): Document that ses-jump may be
customized.
(Customizing @acronym{SES}): Document new customisations for ses-jump.

* lisp/ses.el (ses-jump-cell-name-function)
(ses-jump-prefix-function): New defcustoms.
(ses-jump-prefix): New defun.
(ses-jump): Make ses-jump use the new defcustoms.

* test/lisp/ses-tests.el (ses-jump-B2-prefix-arg)
(ses-jump-B2-lowcase, ses-jump-B2-lowcase-keys)
(ses-jump-B2-symbol, ses-jump-B2-renamed): New tests.

3 years agoReduce GC mark-phase recursion by using explicit stack (bug#54698)
Mattias Engdegård [Sat, 2 Apr 2022 14:02:09 +0000 (16:02 +0200)]
Reduce GC mark-phase recursion by using explicit stack (bug#54698)

An explict stack of objects to be traversed for marking replaces
recursion for most common object types: conses, vectors, records, hash
tables, symbols, functions etc.  Recursion is still used for other
types but those are less common and thus not as likely to cause a
problem.

The stack grows dynamically as required which eliminates almost all C
stack overflow crashes in the GC.  There is also a nontrivial GC
performance improvement.

* src/alloc.c (GC_REMEMBER_LAST_MARKED, GC_CDR_COUNT): New.
(mark_char_table, struct mark_entry):
Remove (subsumed into process_mark_stack).
(struct mark_entry, struct mark_stack, mark_stk)
(mark_stack_empty_p, mark_stack_pop, grow_mark_stack)
(mark_stack_push_value, mark_stack_push_values)
(process_mark_stack): New.
(mark_object, mark_objects):
Just push the object(s) and let process_mark_stack do the work.

3 years agoUse correct signal oldset in posix_spawn implementation
Jürgen Hötzel [Fri, 4 Mar 2022 09:08:14 +0000 (10:08 +0100)]
Use correct signal oldset in posix_spawn implementation

posix_spawn was restoring the wrong signal set, which still had
SIGCHLD and SIGINT masked, causing problems with child processes that
spawned child processes.  (Bug#54667)

See the thread ending at
https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html
for more details.

* src/callproc.c (emacs_spawn): Pass oldset parameter.
(emacs_posix_spawn_init_attributes): Use correct oldset.
(emacs_posix_spawn_init): Remove intermediate function.

3 years agotest/lisp/edmacro-tests.el: Adjust to recent changes
Stefan Monnier [Mon, 4 Apr 2022 13:55:03 +0000 (09:55 -0400)]
test/lisp/edmacro-tests.el: Adjust to recent changes

3 years agoedmacro.el: Silence warnings due to kmacro changes
Stefan Monnier [Mon, 4 Apr 2022 13:13:10 +0000 (09:13 -0400)]
edmacro.el: Silence warnings due to kmacro changes

* lisp/edmacro.el (edit-kbd-macro): Use `kmacro-p` and kmacro accessors.
(edmacro-finish-edit): Use `kmacro-p` and the new `kmacro` constructor.

3 years agoHandle mouse movement correctly during DND from one of our own frames
Po Lu [Mon, 4 Apr 2022 12:32:46 +0000 (20:32 +0800)]
Handle mouse movement correctly during DND from one of our own frames

* lisp/dnd.el (dnd-handle-movement): Select the window specified
in posn.
* lisp/term/x-win.el (x-dnd-movement): New function.
(x-dnd-movement-function): Set it as the default.
* src/frame.c (delete_frame): Prevent deleting the drop source
frame.
* src/xterm.c (x_dnd_send_position): Set new mouse movement
flags if the target window is one of our own frames.
(x_dnd_begin_drag_and_drop): Call DND movement function whenever
appropriate.
(x_free_frame_resources): Remove useless code.
(syms_of_xterm): New defvar `x-dnd-movement-function'.
* src/xterm.h: Update prototypes.

3 years agoFix generation of extra DND events while dragging on Haiku
Po Lu [Mon, 4 Apr 2022 11:37:12 +0000 (11:37 +0000)]
Fix generation of extra DND events while dragging on Haiku

* src/haiku_support.cc (be_drag_message): Set new DND flag.
(be_drag_and_drop_in_progress): New function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Don't store DND motion
events if DND is in progress.

3 years ago* src/xterm.c: Explain meaning of drag-and-drop state variables.
Po Lu [Mon, 4 Apr 2022 11:07:01 +0000 (19:07 +0800)]
* src/xterm.c: Explain meaning of drag-and-drop state variables.

3 years agoFurther fixes for cl--generic-describe and (function ...)
Lars Ingebrigtsen [Mon, 4 Apr 2022 10:48:47 +0000 (12:48 +0200)]
Further fixes for cl--generic-describe and (function ...)

* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Fix the #'
problem for defmethods, too (bug#54628).

3 years agoInline call0..8
Mattias Engdegård [Mon, 21 Mar 2022 10:20:37 +0000 (11:20 +0100)]
Inline call0..8

Inlining these trivial functions gives a healthy speed boost to many
common functions such as `sort`, `mapcar` etc.

* src/eval.c (call0, ..., call8): Move functions...
* src/lisp.h (call0, ..., call8): ...here and declare them inline.

3 years agoSpeed up comparisons between 2 fixnums
Mattias Engdegård [Wed, 16 Mar 2022 16:01:57 +0000 (17:01 +0100)]
Speed up comparisons between 2 fixnums

Since <, <=, > and >= have their own byte-ops, the corresponding
functions are mostly used as arguments to higher-order functions.
This optimisation is particularly beneficial for sorting, where the
comparison function is time-critical.

* src/data.c (Flss, Fgtr, Fleq, Fgeq):
* src/fileio.c (Fcar_less_than_car):
Fast path for calls with 2 fixnum arguments.

3 years agoRewrite string-greaterp and string> using string-lessp
Mattias Engdegård [Wed, 16 Mar 2022 15:24:24 +0000 (16:24 +0100)]
Rewrite string-greaterp and string> using string-lessp

Since string-lessp has its own byte-op, using it is much faster than
calling string-greaterp even with the need to bind a temporary
variable.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-string-greaterp): New.
(string-greaterp, string>): Set byte-optimizer.

3 years agoFaster `string-lessp` for unibyte arguments
Mattias Engdegård [Wed, 16 Mar 2022 14:17:19 +0000 (15:17 +0100)]
Faster `string-lessp` for unibyte arguments

Since this function is commonly used as a sorting predicate
where it is time-critical, this is a useful optimisation.

* src/fns.c (Fstring_lessp): Add fast path for the common case
when both arguments are unibyte.
* test/src/fns-tests.el (fns-tests--string-lessp-cases)
(fns-tests-string-lessp): New test.

3 years agoRespect frame extents during drag and drop
Po Lu [Mon, 4 Apr 2022 05:42:36 +0000 (13:42 +0800)]
Respect frame extents during drag and drop

* xterm.c (struct x_client_list_window): New fields for frame
extents.
(x_dnd_compute_toplevels): Set window frame extents.
(x_dnd_get_target_window_1): Return None if the mouse is in a
frame extent.
(x_dnd_get_target_window): Likewise.

3 years agoDon't baselessly ignore frames after passing through the root window
Po Lu [Mon, 4 Apr 2022 05:17:18 +0000 (13:17 +0800)]
Don't baselessly ignore frames after passing through the root window

* src/xterm.c (x_dnd_begin_drag_and_drop):
(handle_one_xevent): Don't rely on target not being None to set
x_dnd_return_frame to 2.

3 years agoImprove behavior of dragging text to windows on top of frames
Po Lu [Mon, 4 Apr 2022 05:10:01 +0000 (13:10 +0800)]
Improve behavior of dragging text to windows on top of frames

* doc/lispref/frames.texi (Drag and Drop): Document new meaning
of `return-frame' in `x-begin-drag'.
* lisp/mouse.el (mouse-drag-and-drop-region): Use `now' when
calling `x-begin-drag'.
* src/xfns.c (Fx_begin_drag): Update doc string.
* src/xterm.c (x_dnd_begin_drag_and_drop): Accept return_frame
as a Lisp_Object and handle Qnow correctly.
(XTmouse_position): Ignore tooltip frames when processing
`drag-source'.
(syms_of_xterm): New defsym `now'.
* src/xterm.h: Update prototypes.

3 years agoReplace list and vector sorting with TIMSORT algorithm
Andrew G Cohen [Thu, 10 Mar 2022 01:30:00 +0000 (09:30 +0800)]
Replace list and vector sorting with TIMSORT algorithm

* src/Makefile.in (base_obj): Add sort.o.
* src/deps.mk (fns.o): Add sort.c.
* src/lisp.h: Add prototypes for inorder, tim_sort.
* src/sort.c: New file providing tim_sort.
* src/fns.c:  Remove prototypes for removed routines.
(merge_vectors, sort_vector_inplace, sort_vector_copy): Remove.
(sort_list, sort_vector): Use tim_sort.
* test/src/fns-tests.el (fns-tests-sort): New sorting unit tests.

3 years agoAdd optional GC marking function to specpdl unwind_ptr record
Mattias Engdegård [Sat, 5 Mar 2022 10:12:54 +0000 (11:12 +0100)]
Add optional GC marking function to specpdl unwind_ptr record

Add a new `record_unwind_protect_ptr_mark` function for use with C data
structures that use the specpdl for clean-up but also contain possibly
unique references to Lisp objects.

* src/eval.c (record_unwind_protect_ptr_mark): New.
(record_unwind_protect_module, set_unwind_protect_ptr):
Set the mark function to NULL.
(mark_specpdl): Call the mark function if present.
* src/lisp.h (unwind_ptr): Add a mark function pointer to the
SPECPDL_UNWIND_PTR case.

3 years ago* src/xterm.c (x_dnd_get_target_window): Look at root window proxies too.
Po Lu [Sun, 3 Apr 2022 23:25:27 +0000 (07:25 +0800)]
* src/xterm.c (x_dnd_get_target_window): Look at root window proxies too.

3 years ago* lisp/tab-bar.el (tab-bar-undo-close-tab): Update tab-bar-lines (bug#54684)
Juri Linkov [Sun, 3 Apr 2022 16:51:46 +0000 (19:51 +0300)]
* lisp/tab-bar.el (tab-bar-undo-close-tab): Update tab-bar-lines (bug#54684)

3 years ago; * lisp/emacs-lisp/cl-macs.el (cl-struct-slot-value): Fix typo.
Philipp Stephani [Sun, 3 Apr 2022 15:51:04 +0000 (17:51 +0200)]
; * lisp/emacs-lisp/cl-macs.el (cl-struct-slot-value): Fix typo.

3 years agoFix various bugs with mouse dragging on Haiku
Po Lu [Sun, 3 Apr 2022 13:35:28 +0000 (13:35 +0000)]
Fix various bugs with mouse dragging on Haiku

* src/haikuterm.c (haiku_mouse_position): Rewrite so that
different track-mouse types can be handled more consistently.

3 years agoFix handling of '\\' inside double-quotes in Eshell
Jim Porter [Sun, 27 Mar 2022 19:09:58 +0000 (12:09 -0700)]
Fix handling of '\\' inside double-quotes in Eshell

Previously, Eshell would get confused and think the following command
was unterminated due to the second double-quote looking like it was
escaped:

  echo "\\"

* lisp/eshell/esh-util.el (eshell-find-delimiter): Correct docstring
and treat '\' as an escapeable character when using backslash escapes.

* test/lisp/eshell/eshell-tests.el
(eshell-test/escape-special-quoted): Adapt test.

3 years agoEnsure re-encoding after change in gnus-inews-do-gcc
James Thomas [Sun, 3 Apr 2022 12:14:24 +0000 (14:14 +0200)]
Ensure re-encoding after change in gnus-inews-do-gcc

* lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Re-encode the message
body if it has been modified by gnus-gcc-pre-body-encode-hook
(bug#54687).

3 years agoHave global minor modes say so in the doc string
Lars Ingebrigtsen [Sun, 3 Apr 2022 12:07:55 +0000 (14:07 +0200)]
Have global minor modes say so in the doc string

* lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Allow
saying whether it's a global minor mode or not.
(easy-mmode--mode-docstring): Use it.
(define-minor-mode): Pass in the data.

3 years agoImplement `drag-source' values of `track-mouse' on PGTK.
Po Lu [Sun, 3 Apr 2022 11:33:52 +0000 (19:33 +0800)]
Implement `drag-source' values of `track-mouse' on PGTK.

* src/frame.c (Fmouse_position, mouse_position)
(Fmouse_pixel_position): Fix crashes when mouse_position_hook
stores nil.

* src/pgtkterm.c (pgtk_mouse_position): Behave appropriately.

3 years agoImplement `drag-source' values of track-mouse on NS
Po Lu [Sun, 3 Apr 2022 11:20:56 +0000 (19:20 +0800)]
Implement `drag-source' values of track-mouse on NS

* src/nsterm.m (ns_mouse_position): Don't return frame when
appropriate.

3 years agoImplement (sort of) `drag-source' on Haiku
Po Lu [Sun, 3 Apr 2022 11:08:42 +0000 (11:08 +0000)]
Implement (sort of) `drag-source' on Haiku

* src/haikuterm.c (haiku_mouse_or_wdesc_frame)
(haiku_mouse_position): Behave reasonably when track_mouse is
Qdrag_source.

3 years agoMake dragging stuff to a window above a frame work
Po Lu [Sun, 3 Apr 2022 10:59:12 +0000 (18:59 +0800)]
Make dragging stuff to a window above a frame work

* doc/lispref/frames.texi (Mouse Tracking):
* etc/NEWS: Announce new `drag-source' value of `track-mouse'.
* lisp/mouse.el (mouse-drag-and-drop-region): Use new value of
`track-mouse' during interprogram drag and drop.

* src/keyboard.c (make_lispy_position): Handle nil values of f
correctly.
* src/xdisp.c (define_frame_cursor1): Ignore if `drag-source' as
well.
(syms_of_xdisp): New defsym `drag-source'.
* src/xterm.c (XTmouse_position): Implement `drag-source'.
(mouse_or_wdesc_frame): Likewise.

3 years agoDon't touch WAYLAND_DISPLAY in browse-url
Po Lu [Sun, 3 Apr 2022 07:23:01 +0000 (15:23 +0800)]
Don't touch WAYLAND_DISPLAY in browse-url

* lisp/net/browse-url.el (browse-url): Don't touch
WAYLAND_DISPLAY.  (bug#53969)

3 years agoLook for DND proxies on the root window as well
Po Lu [Sun, 3 Apr 2022 05:32:25 +0000 (13:32 +0800)]
Look for DND proxies on the root window as well

* src/xterm.c (x_dnd_get_target_window): If nothing was found on
the COW, look at the root window.

3 years agoImplement new DND features on GNUstep
Po Lu [Sun, 3 Apr 2022 01:59:14 +0000 (09:59 +0800)]
Implement new DND features on GNUstep

* lisp/term/ns-win.el (ns-drag-n-drop): Handle special `lambda'
drag-n-drop events.
* src/nsterm.m: ([EmacsView wantsPeriodicDraggingUpdates]):
([EmacsView draggingUpdated:]): New functions.

3 years agoImplement new DND options on Haiku
Po Lu [Sun, 3 Apr 2022 01:26:32 +0000 (01:26 +0000)]
Implement new DND options on Haiku

* lisp/term/haiku-win.el (haiku-drag-and-drop): Handle special
drag and drop motion events.
* src/haiku_support.cc (MouseMoved): Set `dnd_message' flag.
* src/haiku_support.h (struct haiku_mouse_motion_event): New
member `dnd_message'.
* src/haikuterm.c (haiku_read_socket): Create special DND events
when the mouse moves with a drop message.

3 years agoAdd user options to move point and scroll window during DND
Po Lu [Sun, 3 Apr 2022 01:14:24 +0000 (09:14 +0800)]
Add user options to move point and scroll window during DND

* doc/emacs/frames.texi (Drag and Drop):
* etc/NEWS: Document new options 'dnd-scroll-margin' and
'dnd-indicate-insertion-point'.
* lisp/dnd.el (dnd-protocol-alist):
(dnd-open-remote-file-function):
(dnd-open-file-other-window): Add right group to defcustoms.
(dnd-scroll-margin, dnd-indicate-insertion-point): New user
options.
(dnd-handle-movement): New function.
* lisp/x-dnd.el (x-dnd-handle-xdnd):
(x-dnd-handle-motif): Call `dnd-handle-movement' when
appropriate.

3 years agoFix Motif drag-and-drop on servers without XI2
Po Lu [Sun, 3 Apr 2022 00:52:26 +0000 (08:52 +0800)]
Fix Motif drag-and-drop on servers without XI2

* src/xterm.c (handle_one_xevent): Pass right flags to the
receiver when handling drops for core button events.

3 years agoFix incorrect usage of XM_DRAG_SIDE_EFFECT
Po Lu [Sun, 3 Apr 2022 00:42:52 +0000 (08:42 +0800)]
Fix incorrect usage of XM_DRAG_SIDE_EFFECT

* src/xterm.c (xm_send_top_level_leave_message)
(handle_one_xevent): Pass corret alt side effects and flags to
XM_DRAG_SIDE_EFFECT.

3 years ago; Pacify obsoletion warnings in image-tests.el.
Basil L. Contovounesios [Sat, 2 Apr 2022 16:40:05 +0000 (19:40 +0300)]
; Pacify obsoletion warnings in image-tests.el.

3 years agoFix bootstrap errors after previous easy-mmode change
Lars Ingebrigtsen [Sat, 2 Apr 2022 14:53:24 +0000 (16:53 +0200)]
Fix bootstrap errors after previous easy-mmode change

* lisp/subr.el (ensure-empty-lines, string-lines): Moved from
subr-x so that they can be used in early bootstrap files.

* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring):
Don't use string-empty-p because of bootstrap issues.

3 years agoFix regression in tex alignment
Lars Ingebrigtsen [Sat, 2 Apr 2022 14:36:39 +0000 (16:36 +0200)]
Fix regression in tex alignment

* lisp/align.el (align-rules-list): Make alignment in tex mode
work better again (bug#54663).

3 years agoem-extpipe: Catch eshell-incomplete thrown while parsing
Sean Whitton [Sat, 2 Apr 2022 14:08:41 +0000 (16:08 +0200)]
em-extpipe: Catch eshell-incomplete thrown while parsing

* lisp/eshell/em-extpipe.el (em-extpipe--or-with-catch): New macro.
(eshell-parse-external-pipeline): Use new macro to treat
`eshell-incomplete' as a failure of the parse function to move us
forward (Bug#54603).  Thanks to Jim Porter <jporterbugs@gmail.com> for
the report and for help isolating the problem.

* test/lisp/eshell/eshell-tests.el
(eshell-test/lisp-command-with-quote): New test for Bug#54603, thanks
to Jim Porter <jporterbugs@gmail.com> (bug#54603).

3 years agoAdd S-SPC key sequence to bookmark-bmenu-mode-map
August Feng [Sat, 2 Apr 2022 14:01:43 +0000 (16:01 +0200)]
Add S-SPC key sequence to bookmark-bmenu-mode-map

* lisp/bookmark.el (bookmark-bmenu-mode-map): Add an S-SPC binding
for symmetry (bug#54672).

Copyright-paperwork-exempt: yes

3 years agoPut the define-minor-mode boilerplate at the end of the doc strings
Lars Ingebrigtsen [Sat, 2 Apr 2022 13:55:29 +0000 (15:55 +0200)]
Put the define-minor-mode boilerplate at the end of the doc strings

* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Put
the boilerplate at the end of the doc string.

3 years ago; Improve documentation of 'font-lock-ignore'
Eli Zaretskii [Sat, 2 Apr 2022 13:45:26 +0000 (16:45 +0300)]
; Improve documentation of 'font-lock-ignore'

* etc/NEWS:
* lisp/font-lock.el (font-lock-ignore):
* doc/lispref/modes.texi (Customizing Keywords): Clarify the
documentation of 'font-lock-ignore'.
* doc/emacs/display.texi (Font Lock): Mention 'font-lock-ignore'.

3 years agoFurther tweaks to cl--generic-describe
Lars Ingebrigtsen [Sat, 2 Apr 2022 13:19:05 +0000 (15:19 +0200)]
Further tweaks to cl--generic-describe

* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Further
tweak the look of the implementation output.

3 years ago* lisp/dired.el (dired-mouse-drag): Offer HOST_NAME as well.
Po Lu [Sat, 2 Apr 2022 12:48:09 +0000 (20:48 +0800)]
* lisp/dired.el (dired-mouse-drag): Offer HOST_NAME as well.

3 years agoFix crash when retrieving window property with invalid atom data
Po Lu [Sat, 2 Apr 2022 12:12:12 +0000 (20:12 +0800)]
Fix crash when retrieving window property with invalid atom data

This happens when dropping files from dtfile, which somehow puts
non-atom stuff in window properties of type ATOM_PAIR.

* src/xselect.c (x_atom_to_symbol): Catch errors around
XGetAtomName.

3 years agoCompute size of structs with flexible arrays correctly in Motif DND code
Po Lu [Sat, 2 Apr 2022 08:38:19 +0000 (16:38 +0800)]
Compute size of structs with flexible arrays correctly in Motif DND code

* src/xterm.c (xm_read_targets_table_rec, xm_setup_dnd_targets):
Use FLEXSIZEOF instead of sizeof on struct xm_targets_table_rec.

3 years ago; * src/sqlite.c: Fix up header comment.
Po Lu [Sat, 2 Apr 2022 08:31:06 +0000 (16:31 +0800)]
; * src/sqlite.c: Fix up header comment.

3 years agoFix error on mouse move over something not a window while dragging text
Po Lu [Sat, 2 Apr 2022 07:59:15 +0000 (15:59 +0800)]
Fix error on mouse move over something not a window while dragging text

* lisp/mouse.el (mouse-drag-and-drop-region): Handle non-window
values of `posn-window' correctly.

3 years ago; * lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): Fix type.
Po Lu [Sat, 2 Apr 2022 07:48:57 +0000 (15:48 +0800)]
; * lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): Fix type.

3 years agoAdd new option `mouse-drag-and-drop-region-scroll-margin'
Po Lu [Sat, 2 Apr 2022 07:45:00 +0000 (15:45 +0800)]
Add new option `mouse-drag-and-drop-region-scroll-margin'

* etc/NEWS: Announce new user option.
* lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): New
user option.
(mouse-drag-and-drop-region): Implement "scroll margin" like
behavior during mouse movement.

3 years agoImplement DELETE selection target for cross program drags
Po Lu [Sat, 2 Apr 2022 06:59:08 +0000 (14:59 +0800)]
Implement DELETE selection target for cross program drags

* lisp/mouse.el (mouse-drag-and-drop-region): Make sure mark
stays deactivated if a "cut" operation was performed.
* lisp/select.el (xselect-convert-to-delete): Don't clear
selection contents if it's the XdndSelection.

3 years agoWork around dynamic drag bugs in modern Motif
Po Lu [Sat, 2 Apr 2022 03:44:15 +0000 (11:44 +0800)]
Work around dynamic drag bugs in modern Motif

* src/xterm.c (xm_send_top_level_leave_message): Send a motion
event with impossible coordinates by default.
(handle_one_xevent): Slightly update drop motion message
parameters.
(syms_of_xterm): New variable `x-dnd-fix-motif-leave'.

3 years agoMake Motif drag work on window managers that don't support client lists
Po Lu [Sat, 2 Apr 2022 01:53:03 +0000 (09:53 +0800)]
Make Motif drag work on window managers that don't support client lists

* xterm.c (x_dnd_send_xm_leave_for_drop): New function.
(x_dnd_get_wm_state_and_proto): New field `motif_out'.
(x_dnd_get_target_window): Return Motif protocol style if
looking for windows via XTranslateCoordinates.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Send toplevel leave
along with drops.

3 years ago* lisp/progmodes/xref.el (xref-search-program): Fix typo.
Dmitry Gutov [Sat, 2 Apr 2022 01:34:52 +0000 (04:34 +0300)]
* lisp/progmodes/xref.el (xref-search-program): Fix typo.

3 years agoSupport ugrep in xref-search-program-alist
Manuel Uberti [Mon, 28 Mar 2022 12:26:50 +0000 (14:26 +0200)]
Support ugrep in xref-search-program-alist

* lisp/progmodes/xref.el
(xref-search-program-alist)
(xref-search-program): Add entries for ugrep (bug#54608).

3 years agokmacro: Represent it as an OClosure
Stefan Monnier [Sat, 2 Apr 2022 00:07:33 +0000 (20:07 -0400)]
kmacro: Represent it as an OClosure

Merge the old lambda+list into a single OClosure object which plays
both roles at the same time.  Take advantage of it to provide a
`cl-print-object` method so kmacro objects print nicely using the
`key-parse` syntax.
Also replace the old `kmacro-lambda-form` with a new `kmacro` constructor
which takes a `key-parse` syntax, so that the code inserted with
`insert-kbd-macro` is now more readable.

* lisp/kmacro.el (kmacro): New OClosure type.
(kmacro-ring-head): Use `kmacro` constructor.
(kmacro-push-ring): Convert `elt` from old representation if needed.
(kmacro-split-ring-element, kmacro-view-ring-2nd, kmacro-view-macro):
Adapt to new representation.
(kmacro-exec-ring-item): Turn into obsolete alias.
(kmacro-call-ring-2nd, kmacro-end-or-call-macro): Adjust accordingly.
(kmacro-start-macro): Simplify call to `kmacro-push-ring`.
(kmacro): New constructor function.  Replaces `kmacro-lambda-form`.
(kmacro-lambda-form): Use it and declare obsolete.
(kmacro-extract-lambda): Rewrite and declare obsolete.
(kmacro-p): Rewrite.
(cl-print-object): New method.
(kmacro-bind-to-key, kmacro-name-last-macro): Simplify.

* lisp/macros.el (macro--string-to-vector): New function.
(insert-kbd-macro): Use it.  Generate code using the `kmacro` constructor.

* test/lisp/kmacro-tests.el (kmacro-tests-kmacro-bind-to-single-key):
Silence warning.
(kmacro-tests-name-last-macro-bind-and-rebind): Strengthen the test a bit.
(kmacro-tests--cl-print): New test.

3 years ago; gnus/nnselect must get headers from the right group
Andrew G Cohen [Fri, 1 Apr 2022 06:10:51 +0000 (14:10 +0800)]
; gnus/nnselect must get headers from the right group

* lisp/gnus/nnselect.el (nnselect-retrieve-headers): Make sure we are
in the right group. It might have been affected by another request.

3 years ago; * etc/NEWS: Fix typos. Reported by "T.V Raman" <raman@google.com>.
Eli Zaretskii [Fri, 1 Apr 2022 19:00:04 +0000 (22:00 +0300)]
; * etc/NEWS: Fix typos.  Reported by "T.V Raman" <raman@google.com>.

3 years agoNew user option 'font-lock-ignore'
Augusto Stoffel [Tue, 8 Mar 2022 10:23:56 +0000 (11:23 +0100)]
New user option 'font-lock-ignore'

* lisp/font-lock (font-lock-ignore): New defcustom.
(font-lock-compile-keywords): Call 'font-lock--filter-keywords'.
(font-lock--match-keyword, font-lock--filter-keywords): New functions,
implement the functionality described in 'font-lock-ignore'.
* doc/lispref/modes.texi: Describe 'font-lock-ignore'.