]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoDisallow drag and drop inside a menu-entry
Po Lu [Tue, 12 Apr 2022 08:36:42 +0000 (16:36 +0800)]
Disallow drag and drop inside a menu-entry

* src/xterm.c (x_dnd_cleanup_drag_and_drop): Always free DND
targets even if waiting for finish.
(x_dnd_begin_drag_and_drop): Free targets correctly when
signalling error and prevent activating drag-and-drop inside a
menu or popup.  (It doesn't work.)

2 years agoAdapt macOS defaults in Tramp's process-attributes implementation
Michael Albinus [Tue, 12 Apr 2022 07:41:11 +0000 (09:41 +0200)]
Adapt macOS defaults in Tramp's process-attributes implementation

* doc/misc/tramp.texi (Remote processes):
Mention tramp-connection-local-darwin-ps-* constants.

* lisp/net/tramp-integration.el
(tramp-connection-local-darwin-ps-variables): Fix docstring.
(top): Simplify setting local profiles.

* test/lisp/net/tramp-tests.el (tramp-test31-list-system-processes)
(tramp-test31-process-attributes): New tests.

2 years agoprocess-attributes-ps-args / process-attributes-ps-format for Darwin
Filipp Gunbin [Tue, 12 Apr 2022 07:12:29 +0000 (09:12 +0200)]
process-attributes-ps-args / process-attributes-ps-format for Darwin

* lisp/net/tramp-integration.el
(tramp-darwin-process-attributes-ps-args)
(tramp-darwin-process-attributes-ps-format)
(tramp-connection-local-darwin-ps-variables): New defconsts.  Add
them to connection-local variables.  Preset default "ps" profile
for Darwin.

2 years agoAdd two classic Common Lisp macro-writing macros
Sean Whitton [Mon, 11 Apr 2022 16:20:35 +0000 (09:20 -0700)]
Add two classic Common Lisp macro-writing macros

* lisp/emacs-lisp/cl-macs.el (cl-with-gensyms, cl-once-only): New macros.

2 years agoFix some DISPLAY variable related bugs on PGTK
Po Lu [Tue, 12 Apr 2022 05:27:56 +0000 (13:27 +0800)]
Fix some DISPLAY variable related bugs on PGTK

* src/callproc.c (getenv_internal, make_environment_block):
Don't set DISPLAY on non-X GDK backends.  (bug#54844)

2 years ago* src/xterm.c (frame_set_mouse_pixel_position): Avoid server grab.
Po Lu [Tue, 12 Apr 2022 04:01:34 +0000 (12:01 +0800)]
* src/xterm.c (frame_set_mouse_pixel_position): Avoid server grab.

2 years agoDon't use native image APIs for some types on Haiku
Po Lu [Tue, 12 Apr 2022 02:37:39 +0000 (02:37 +0000)]
Don't use native image APIs for some types on Haiku

* src/haikuimage.c (haiku_can_use_native_image_api): Ignore
types with animations when their respective libraries are
present.

2 years agoFix last tool bar bug on Haiku as well
Po Lu [Tue, 12 Apr 2022 00:47:38 +0000 (00:47 +0000)]
Fix last tool bar bug on Haiku as well

* src/haikuterm.c (haiku_read_socket): Adapt last change to
Haiku.

2 years agoFix selecting text and releasing the mouse buttons above the toolbar
Po Lu [Tue, 12 Apr 2022 00:41:19 +0000 (08:41 +0800)]
Fix selecting text and releasing the mouse buttons above the toolbar

* src/xterm.c (handle_one_xevent): Don't send ButtonRelease
events to tool bars if there is no selected tool bar item.

2 years ago* lisp/emacs-lisp/macroexp.el (macroexp-let2*): Allow common shorthand
Stefan Monnier [Mon, 11 Apr 2022 19:10:51 +0000 (15:10 -0400)]
* lisp/emacs-lisp/macroexp.el (macroexp-let2*): Allow common shorthand

2 years agoUse preferred chars among duplicates as per UTR#25 §25.
Paul Eggert [Mon, 11 Apr 2022 17:37:59 +0000 (10:37 -0700)]
Use preferred chars among duplicates as per UTR#25 §25.

2 years ago* lisp/minibuffer.el (minibuffer-completion-auto-choose): New defcustom.
Juri Linkov [Mon, 11 Apr 2022 16:51:49 +0000 (19:51 +0300)]
* lisp/minibuffer.el (minibuffer-completion-auto-choose): New defcustom.

(minibuffer-choose-previous-completion)
(minibuffer-choose-next-completion): Remove commands.
(minibuffer-local-completion-map): Remove keybindings of
minibuffer-choose-next-completion and minibuffer-choose-previous-completion.
Use them for minibuffer-next-completion and minibuffer-previous-completion.
* lisp/simple.el (minibuffer-local-shell-command-map): Idem.

2 years agoMake normal image caching actually work when doing animated images
Lars Ingebrigtsen [Mon, 11 Apr 2022 16:50:20 +0000 (18:50 +0200)]
Make normal image caching actually work when doing animated images

* src/image.c (filter_image_spec): New function.
(uncache_image): Use it.
(lookup_image): Ditto.
(syms_of_image): Define some keywords.

2 years ago; etc/NEWS: Fix grammer.
Juri Linkov [Mon, 11 Apr 2022 16:48:13 +0000 (19:48 +0300)]
; etc/NEWS: Fix grammer.

2 years agoMake more IPV6 domains non-suspicious in textsec
Lars Ingebrigtsen [Mon, 11 Apr 2022 15:36:26 +0000 (17:36 +0200)]
Make more IPV6 domains non-suspicious in textsec

* lisp/international/textsec.el (textsec--ipvx-address-p): Make
more IPV6 domains non-suspicious.

2 years ago; * src/image.c: move #endif to correct place
Mattias Engdegård [Mon, 11 Apr 2022 15:10:21 +0000 (17:10 +0200)]
; * src/image.c: move #endif to correct place

2 years agoMake gif_load work across architectures again
Lars Ingebrigtsen [Mon, 11 Apr 2022 14:52:34 +0000 (16:52 +0200)]
Make gif_load work across architectures again

* src/image.c (gif_load): Invert the way animated pixmaps are
created: Work on the cached computed-so-far pixmap, and then copy
the entire thing to the ximg with PUT_PIXEL at the end.  This
should work across platforms, which the previous version didn't.

2 years agoRevert "; * src/image.c (gif_load): Fix compilation error on MS-Windows."
Lars Ingebrigtsen [Mon, 11 Apr 2022 14:45:14 +0000 (16:45 +0200)]
Revert "; * src/image.c (gif_load): Fix compilation error on MS-Windows."

This reverts commit a715f2fbe70bb4cbb961e82af95e2965030b4513.

This is fixed in a different way in a subsequent commit.

2 years agoRecognise hybrid IPv6/IPv4 addresses in textsec (bug#54624)
Mattias Engdegård [Mon, 11 Apr 2022 14:22:38 +0000 (16:22 +0200)]
Recognise hybrid IPv6/IPv4 addresses in textsec (bug#54624)

* lisp/international/textsec.el (textsec--ipvx-address-p):
  Recognise hybrid addresses like "::ffff:129.55.2.201".
  Combine to a single regexp and translate to rx.
  Remove some regexp ambiguity (relint complaint).
* test/lisp/international/textsec-tests.el (test-suspiction-domain):
  Add test cases.

2 years ago; * src/image.c (gif_load): Fix compilation error on MS-Windows.
Eli Zaretskii [Mon, 11 Apr 2022 14:04:31 +0000 (17:04 +0300)]
; * src/image.c (gif_load): Fix compilation error on MS-Windows.

2 years agoFix anim_cache garbage collection
Lars Ingebrigtsen [Mon, 11 Apr 2022 13:18:41 +0000 (15:18 +0200)]
Fix anim_cache garbage collection

* src/image.c (struct anim_cache): Move earlier.
(mark_image_cache): Mark the Lisp_Object in the anim cache.

2 years agoFix compilation errors when HAVE_GIF and not HAVE_WEBP
Lars Ingebrigtsen [Mon, 11 Apr 2022 12:54:31 +0000 (14:54 +0200)]
Fix compilation errors when HAVE_GIF and not HAVE_WEBP

* src/image.c: Enable the cache functions when HAVE_GIF, too

2 years agoSpeed up GIF animations
Lars Ingebrigtsen [Mon, 11 Apr 2022 12:38:27 +0000 (14:38 +0200)]
Speed up GIF animations

* src/image.c (anim_prune_animation_cache): Tweak the destructor
API.
(gif_destroy): New function.
(gif_load): Use a cache to avoid quadratic CPU usage for animated
images (bug#45224).
(webp_destroy): New function.
(webp_load): Use it.

2 years agoRefactor the webp cache code to allow usage by gif_load, too
Lars Ingebrigtsen [Mon, 11 Apr 2022 11:35:45 +0000 (13:35 +0200)]
Refactor the webp cache code to allow usage by gif_load, too

* src/image.c (struct anim_cache, anim_create_cache)
(anim_prune_animation_cache, anim_get_animation_cache): Rename
from webp_cache (etc) to prepare for usage in the gif animation
implementation, too.
(webp_load): Adjust cache usage.

2 years agoFix event source attribution for GTK input methods
Po Lu [Mon, 11 Apr 2022 11:27:07 +0000 (19:27 +0800)]
Fix event source attribution for GTK input methods

* src/gtkutil.c (xg_im_context_commit): Use pending keystroke
source if it exists.

2 years agoImprove gif_load error messages
Lars Ingebrigtsen [Mon, 11 Apr 2022 10:32:55 +0000 (12:32 +0200)]
Improve gif_load error messages

* src/image.c (gif_load): Improve error reporting (bug#54848).

2 years agoEnsure shell.el loading properly
Lars Ingebrigtsen [Mon, 11 Apr 2022 10:12:41 +0000 (12:12 +0200)]
Ensure shell.el loading properly

* lisp/shell.el (subr-x): Require for string-chop-newline
(bug#54834).

2 years agoAlways cascade from toplevel frames on Haiku
Po Lu [Mon, 11 Apr 2022 07:45:37 +0000 (07:45 +0000)]
Always cascade from toplevel frames on Haiku

* src/haikufns.c (haiku_create_frame): Cascade from toplevel
frames, since otherwise the positions are wrong anyway, and it
doesn't make sense to cascade from a frame that disappears when
it becomes deactivated.

2 years agoFix IM event source attribution on GTK
Po Lu [Mon, 11 Apr 2022 04:25:51 +0000 (12:25 +0800)]
Fix IM event source attribution on GTK

* src/xterm.c (handle_one_xevent): Set pending times on GTK as
well.
* src/gtkutil.c (xg_widget_key_press_event_cb): Respect pending
keystroke time on XI2.

2 years ago* src/xterm.c (handle_one_event): Make event attribution more accurate.
Po Lu [Mon, 11 Apr 2022 01:16:22 +0000 (09:16 +0800)]
* src/xterm.c (handle_one_event): Make event attribution more accurate.

2 years agoAdd lazy highlight when reading 'query-replace' arguments
Augusto Stoffel [Sat, 9 Apr 2022 10:47:28 +0000 (12:47 +0200)]
Add lazy highlight when reading 'query-replace' arguments

* lisp/replace.el (query-replace-read-args):  Use
'minibuffer-lazy-highlight-setup' to highlight the text to be replaced
in the original buffer (and a match count, if applicable).
(replace--region-filter): New function for code that
used to be inlined in perform-replace but is useful elsewhere.
(perform-replace): Use 'replace--region-filter'.

2 years agoRewrite the minibuffer lazy highlight feature
Augusto Stoffel [Sat, 9 Apr 2022 10:38:14 +0000 (12:38 +0200)]
Rewrite the minibuffer lazy highlight feature

The new API was discussed in bug#53126.  It's more robust and easier
to use in complex cases like that of 'query-replace'.

* etc/NEWS: Amend the feature announcement
* lisp/isearch.el (isearch-edit-string): Use new API.
(minibuffer-lazy-highlight-transform,
minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count,
minibuffer-lazy-highlight--after-change,
minibuffer-lazy-highlight--exit) Remove helper functions, which are
now kept together with the lazy highlight configuration variables
within a closure.
(minibuffer-lazy-highlight-setup): This function now takes the lazy
highlighting configuration variables as argument, and returns a
closure that is intended to run as part of the minibuffer setup.

2 years agoFix markup in Drag and Drop
Lars Ingebrigtsen [Sun, 10 Apr 2022 14:15:21 +0000 (16:15 +0200)]
Fix markup in Drag and Drop

* doc/emacs/frames.texi (Drag and Drop): Fix markup.

2 years agoFix WebP image support on MS-Windows
Eli Zaretskii [Sun, 10 Apr 2022 13:45:43 +0000 (16:45 +0300)]
Fix WebP image support on MS-Windows

* src/image.c (init_webp_functions) [WINDOWSNT]: Load Demux
functions from the WebPDemux DLL.  Load internal functions where
the public APIs are inline functions defined in the WebP headers.
(WebPAnimDecoderOptionsInit) [WINDOWSNT]: Define to call
'WebPAnimDecoderOptionsInitInternal'.
(WebPDemux): Define to call 'WebPDemuxInternal'.
(WebPAnimDecoderNew): Define to call
'WebPAnimDecoderNewInternal'.
(syms_of_image) <webpdemux>: New symbol.

* lisp/term/w32-win.el (dynamic-library-alist): Add a member for
'webpdemux'.

2 years agoFix a ja-dic compilation warning
Kévin Le Gouguec [Sun, 10 Apr 2022 12:43:02 +0000 (14:43 +0200)]
Fix a ja-dic compilation warning

* leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Increase
specpdl-size to avoid a compilation warning (bug#54816).

2 years agoCC Mode: Fix unwanted fontification of function call as function declaration
Alan Mackenzie [Sun, 10 Apr 2022 12:20:39 +0000 (12:20 +0000)]
CC Mode: Fix unwanted fontification of function call as function declaration

This happens when the enclosing function's return type is a struct, etc.  This
fixes bug #54743;

* lisp/progmodes/cc-engine.el (c-update-brace-stack): Replace "(" by ")" in a
`member' call.

2 years agoUpdate docstrings for shortdoc.el FUNC lisp form API
Kaushal Modi [Sun, 10 Apr 2022 11:52:15 +0000 (13:52 +0200)]
Update docstrings for shortdoc.el FUNC lisp form API

* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
Updated docstrings.

2 years agoAttribute filtered events to the right source device
Po Lu [Sun, 10 Apr 2022 11:33:51 +0000 (19:33 +0800)]
Attribute filtered events to the right source device

* src/xterm.c (handle_one_xevent): Attribute core events sent by
input methods like I-Bus to the extension device that caused
them to be sent.
* src/xterm.h (struct x_display_info): New fields
`pending_keystroke_time' and `pending_keystroke_source'.

2 years agoAdd support for animated webp images
Lars Ingebrigtsen [Sun, 10 Apr 2022 11:12:30 +0000 (13:12 +0200)]
Add support for animated webp images

* configure.ac (HAVE_RSVG): Also include the webpdemux library.
It was new in version 0.4.4, and we require 0.6.0, so it should be
safe.
* src/image.c: Include demux.h.
(enum webp_keyword_index, webp_format): Include :index for
animations.
(init_webp_functions): Add Windows LOAD_DLLs.
(struct webp_cache, webp_create_cache)
(webp_prune_animation_cache, webp_get_animation_cache): New
functions.
(webp_load): Support animated webp images (bug#54242).

2 years agoAllow non-interactive uses of minibuffer-next-completion
Juri Linkov [Sun, 10 Apr 2022 07:37:55 +0000 (10:37 +0300)]
Allow non-interactive uses of minibuffer-next-completion

* lisp/minibuffer.el (minibuffer-previous-completion)
(minibuffer-next-completion): Use 1 for n by default.

2 years agoAdd missing details to filter event on XI2
Po Lu [Sun, 10 Apr 2022 05:55:18 +0000 (13:55 +0800)]
Add missing details to filter event on XI2

* src/xterm.c (handle_one_xevent): Pass coordinates when
translating XI2 key events to core key events.

2 years agoUpdate XI2 device use on slave attachment and detachment
Po Lu [Sun, 10 Apr 2022 03:06:41 +0000 (11:06 +0800)]
Update XI2 device use on slave attachment and detachment

* src/xterm.c (handle_one_xevent): Update whether device is a
master device when it's detached or attached.

2 years agoTry harder to own DND selections
Po Lu [Sun, 10 Apr 2022 01:31:24 +0000 (09:31 +0800)]
Try harder to own DND selections

* src/xterm.c (x_dnd_do_unsupported_drop): Fix computation of
local value.
(x_dnd_begin_drag_and_drop): Try to own the selection if we do
have a local value.

2 years agoFix mode-line doc string
Lars Ingebrigtsen [Sun, 10 Apr 2022 01:15:03 +0000 (03:15 +0200)]
Fix mode-line doc string

* lisp/faces.el (mode-line): Fix doc string.

2 years agoses-test Prefix used symbols by ses--
Vincent Belaïche [Sat, 9 Apr 2022 22:26:33 +0000 (00:26 +0200)]
ses-test Prefix used symbols by ses--

* test/lisp/ses-tests.el: Rename cell symbols of renamed cells so
that they are in the SES namespace, as recommended by Stefan.

2 years agoFix sql-mode comment-end parsing
Lars Ingebrigtsen [Fri, 8 Apr 2022 13:45:07 +0000 (15:45 +0200)]
Fix sql-mode comment-end parsing

* lisp/progmodes/sql.el (sql-mode): Fix /* ... -*/ parsing
(bug#54769).

2 years agoAvoid sync when allowing touch events in handle_one_xevent
Po Lu [Sat, 9 Apr 2022 10:25:22 +0000 (18:25 +0800)]
Avoid sync when allowing touch events in handle_one_xevent

* src/xterm.c (handle_one_xevent): Don't catch errors around
XIAllowTouchEvents.
(x_error_handler): Ignore Device errors here instead.

2 years ago; * doc/emacs/trouble.texi (Memory Full): Minor copyedits.
Eli Zaretskii [Sat, 9 Apr 2022 09:57:08 +0000 (12:57 +0300)]
; * doc/emacs/trouble.texi (Memory Full): Minor copyedits.

2 years agoHandle hierarchy events for updating scroll valuators correctly
Po Lu [Sat, 9 Apr 2022 05:30:32 +0000 (13:30 +0800)]
Handle hierarchy events for updating scroll valuators correctly

* src/keyboard.c (gen_help_event, kbd_buffer_store_help_event):
Make sure to initialize the event buffer correctly.

* src/xterm.c (xi_populate_device_from_info): New function.
(x_init_master_valuators): Factor out most of the valuator
tracking code to that function.
(handle_one_xevent): Handle device enable and disable events in
a more detailed fashion.

2 years agoFix DND leave events not being sent to toplevel after returning frame
Po Lu [Sat, 9 Apr 2022 03:43:23 +0000 (11:43 +0800)]
Fix DND leave events not being sent to toplevel after returning frame

* src/xterm.c (x_dnd_update_state, handle_one_xevent): Make sure
to send leave events to the previous toplevel when cancelling to
return a frame.

2 years agoUse right frame when computing mouse movement device
Po Lu [Sat, 9 Apr 2022 03:37:56 +0000 (11:37 +0800)]
Use right frame when computing mouse movement device

* src/keyboard.c (kbd_buffer_get_event): Use the frame on which
the mouse actually moved to compute the last mouse device.

2 years agoMinor cleanups in X Windows drag-and-drop code
Po Lu [Sat, 9 Apr 2022 03:35:08 +0000 (11:35 +0800)]
Minor cleanups in X Windows drag-and-drop code

* src/keyboard.c (kbd_buffer_get_event): Don't dereference f if
nil when generating mouse motion event.
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave, x_dnd_send_drop, x_send_scroll_bar_event):
Use NoEventMask instead of 0.

2 years agoFix source reporting for focus in and focus out events
Po Lu [Sat, 9 Apr 2022 01:12:24 +0000 (09:12 +0800)]
Fix source reporting for focus in and focus out events

* src/xterm.c (handle_one_xevent): Report source name for
FocusIn and FocusOut events.

2 years agoClean up XI2 scroll valuator tracking code
Po Lu [Sat, 9 Apr 2022 01:02:24 +0000 (09:02 +0800)]
Clean up XI2 scroll valuator tracking code

* src/xterm.c (x_get_scroll_valuator_delta): Accept a pointer to
a device instead of the device id.
(handle_one_xevent): Pass the previously found device.

2 years ago* src/pgtkterm.c (pgtk_set_cr_source_with_color): Fix default operator.
Po Lu [Sat, 9 Apr 2022 00:48:45 +0000 (08:48 +0800)]
* src/pgtkterm.c (pgtk_set_cr_source_with_color): Fix default operator.

2 years agoFix subpixel AA with alpha-background on Cairo on X
Po Lu [Sat, 9 Apr 2022 00:41:00 +0000 (08:41 +0800)]
Fix subpixel AA with alpha-background on Cairo on X

* xterm.c (x_set_cr_source_with_gc_foreground)
(x_set_cr_source_with_gc_background): Set operator back to OVER
if alpha-background isn't to be respected.

2 years agoUpdate from Gnulib by running admin/merge-gnulib
Paul Eggert [Sat, 9 Apr 2022 00:02:21 +0000 (17:02 -0700)]
Update from Gnulib by running admin/merge-gnulib

2 years agoPacify clang -Wunused-variable
Paul Eggert [Sat, 9 Apr 2022 00:00:20 +0000 (17:00 -0700)]
Pacify clang -Wunused-variable

* src/coding.c (detect_coding_utf_8):
* src/process.c (Finternal_default_process_filter):
Remove unused local vars.

2 years agoebrowse dumping need not return int
Paul Eggert [Fri, 8 Apr 2022 23:41:26 +0000 (16:41 -0700)]
ebrowse dumping need not return int

* lib-src/ebrowse.c (dump_members, dump_tree): Return void, not
int, since callers never actually use returned value.  All uses
changed.

2 years agoFix scrollbars on macOS 10.13 and below (bug#54623)
Alan Third [Wed, 30 Mar 2022 21:40:03 +0000 (22:40 +0100)]
Fix scrollbars on macOS 10.13 and below (bug#54623)

Make any build on macOS 10.13 and below follow the same drawing path
as the GNUstep port.  macOS 10.14 and above will use EmacsLayer.

* src/nsterm.h (EmacsLayer):
* src/nsterm.m ([EmacsView makeBackingLayer]):
([EmacsView unlockFocus]):
([EmacsView windowDidChangeBackingProperties:]):
([EmacsView copyRect:to:]): Remove any code required for macOS 10.13
and below, and fix the #if's to enforce strict separation of the
drawing paths.
(ns_update_end):
(ns_unfocus): Fix #ifs so that flushWindow is called on old macOS
versions as well as GNUstep.

2 years agoFix pacifying gcc -Wanalyzer-null-dereference
Paul Eggert [Fri, 8 Apr 2022 17:18:53 +0000 (10:18 -0700)]
Fix pacifying gcc -Wanalyzer-null-dereference

* src/xterm.c (handle_one_xevent): Use eassume not eassert.
eassert (X)’s suppress_checking does not let GCC assume X.

2 years agoRename mark_stack to mark_c_stack
Mattias Engdegård [Fri, 8 Apr 2022 13:34:57 +0000 (15:34 +0200)]
Rename mark_stack to mark_c_stack

This is the function that marks the C stack.  Avoid confusion with the
new mark stack, a stack used in the GC mark phase.

* src/alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK)
(mark_stack, mark_c_stack):
* src/lisp.h:
* src/thread.c (mark_one_thread): Rename mark_stack to mark_c_stack.

2 years agoEnable warnings when building as a developer with Clang
Mattias Engdegård [Fri, 8 Apr 2022 12:57:17 +0000 (14:57 +0200)]
Enable warnings when building as a developer with Clang

The configure-script logic that automatically enables warnings when
building in a development tree didn't work for Clang because it was
identified as an old GCC version.

* configure.ac: Don't test Clang version as if it were GCC.

2 years agoImprove package.el error messages on too-old Emacsen
Lars Ingebrigtsen [Fri, 8 Apr 2022 12:46:14 +0000 (14:46 +0200)]
Improve package.el error messages on too-old Emacsen

* lisp/emacs-lisp/package.el (package-compute-transaction): Give a
better error message on too-old Emacs versions (bug#54747).

2 years agoRecommend that the user turn off memory overcommit
Po Lu [Fri, 8 Apr 2022 11:36:03 +0000 (19:36 +0800)]
Recommend that the user turn off memory overcommit

* doc/emacs/trouble.texi (Memory Full): Tell the user that Emacs
behaves best with overcommit off, and how to turn it off.

2 years ago; * src/nsterm.m: Remove stray semicolon
Mattias Engdegård [Fri, 8 Apr 2022 11:12:40 +0000 (13:12 +0200)]
; * src/nsterm.m: Remove stray semicolon

2 years agoInterpolate scrolls coming from mice by default
Po Lu [Fri, 8 Apr 2022 10:50:48 +0000 (18:50 +0800)]
Interpolate scrolls coming from mice by default

* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolate-mice): New
user option.
(pixel-scroll-precision): If the class of the last event device
is `mouse', interpolate the next scroll.

2 years agoEnsure local `default-directory' when calling `process-attributes'.
Michael Albinus [Fri, 8 Apr 2022 10:47:53 +0000 (12:47 +0200)]
Ensure local `default-directory' when calling `process-attributes'.

* lisp/server.el (server-running-p):
* lisp/subr.el (memory-limit): Ensure local `default-directory'
when calling `process-attributes'.

2 years agoFix GC marking of input events with devices
Po Lu [Fri, 8 Apr 2022 09:00:37 +0000 (17:00 +0800)]
Fix GC marking of input events with devices

* src/keyboard.c (mark_kboards):
* src/pgtkterm.c (mark_pgtkterm): Mark `device' as well.

2 years agoImplement support for reporting device names on PGTK
Po Lu [Fri, 8 Apr 2022 05:37:16 +0000 (13:37 +0800)]
Implement support for reporting device names on PGTK

* lisp/frame.el (device-class): Add new function.
* lisp/term/pgtk-win.el (pgtk-device-class): New function.
* src/pgtkterm.c (pgtk_device_added_or_removal_cb)
(pgtk_seat_added_cb, pgtk_seat_removed_cb)
(pgtk_enumerate_devices)
(pgtk_free_devices, pgtk_regenerate_devices)
(pgtk_get_device_for_event): New functions.
(mark_pgtkterm): Mark device data.
(pgtk_delete_terminal): Delete device data.
(pgtk_handle_event, key_press_event, note_mouse_movement)
(construct_mouse_click, button_event, scroll_event)
(drag_data_received): Set device correctly.
(pgtk_term_init): Initialize device data and seat tracking.
(pgtk_delete_display): Delete device data.
* src/pgtkterm.h (struct pgtk_device_t): New struct.
(struct pgtk_display_info): New field `devices'.  Delete lots of
unused macros and reformat comments.

2 years ago* lisp/term/x-win.el (x-device-class): Detect more keyboards.
Po Lu [Fri, 8 Apr 2022 04:11:24 +0000 (12:11 +0800)]
* lisp/term/x-win.el (x-device-class): Detect more keyboards.

2 years ago; * src/emacs.c (main): Reword & reflow description of PGTK problem.
Sean Whitton [Thu, 7 Apr 2022 00:45:55 +0000 (17:45 -0700)]
; * src/emacs.c (main): Reword & reflow description of PGTK problem.

2 years agoIgnore input extension errors caused by grabbing
Po Lu [Fri, 8 Apr 2022 03:22:06 +0000 (11:22 +0800)]
Ignore input extension errors caused by grabbing

* src/xterm.c (x_error_handler): Ignore GrabDevice and
UngrabDevice errors.

2 years ago* lisp/term/x-win.el (x-device-class): Detect "USB USB Keykoard"s.
Po Lu [Fri, 8 Apr 2022 03:03:27 +0000 (11:03 +0800)]
* lisp/term/x-win.el (x-device-class): Detect "USB USB Keykoard"s.

2 years agoAdd code for determining the type of an input device
Po Lu [Fri, 8 Apr 2022 01:47:25 +0000 (09:47 +0800)]
Add code for determining the type of an input device

* doc/lispref/commands.texi (Command Loop Info):
* etc/NEWS: Update documentation and announce `device-class'.

* lisp/frame.el (x-device-class):
(device-class):
* lisp/term/x-win.el (x-device-class): New functions.

2 years agoFix reporting of last-event-device for synthetic events
Po Lu [Fri, 8 Apr 2022 00:22:40 +0000 (08:22 +0800)]
Fix reporting of last-event-device for synthetic events

* src/keyboard.c (read_char): Clear `last-event-device' earlier.

2 years agoMake device reporting work for tool bar clicks
Po Lu [Fri, 8 Apr 2022 00:13:49 +0000 (08:13 +0800)]
Make device reporting work for tool bar clicks

* src/dispextern.h: Update prototyupes.
* src/xdisp.c (handle_tool_bar_click): Pass Qt to that function
instead.
(handle_tool_bar_click_with_device): New function.
* src/xterm.c (handle_one_xevent): Pass device to tool bar click
logic.

2 years ago* src/xterm.c (handle_one_xevent): Fix build warning on non-GTK builds.
Po Lu [Thu, 7 Apr 2022 23:47:10 +0000 (07:47 +0800)]
* src/xterm.c (handle_one_xevent): Fix build warning on non-GTK builds.

2 years agolisp/simple.el: Use #' in new code
Stefan Monnier [Thu, 7 Apr 2022 23:20:54 +0000 (19:20 -0400)]
lisp/simple.el: Use #' in new code

* lisp/simple.el (minibuffer-local-shell-command-map): Use #' to quote
function names.

2 years agoDisplay file mode information when diff font lock prettify enabled
Matthias Meulien [Wed, 6 Apr 2022 22:11:55 +0000 (00:11 +0200)]
Display file mode information when diff font lock prettify enabled

* lisp/vc/diff-mode.el (diff--font-lock-prettify): Make regexp capture
file mode information.

2 years agoOClosure: New function `function-documentation`
Stefan Monnier [Thu, 7 Apr 2022 19:59:09 +0000 (15:59 -0400)]
OClosure: New function `function-documentation`

As mentioned in the original OClosure commit, OClosures (ab)use the
bytecode's docstring slot to hold the OClosure's type.  This currently
prevents OClosures from having their own docstring.

Introduce a new generic function `function-documentation` to fetch the
docstring of a function, which can then be implemented in various
different ways depending on the OClosure's type.

* lisp/simple.el (function-documentation): New generic function.
(bad-package-check): Strength-reduce `eval` to `symbol-value`.
* src/doc.c (Fdocumentation): Use it.

* lisp/emacs-lisp/oclosure.el (oclosure--accessor-docstring): New function.
* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test):
Add test for accessor's docstrings.

2 years agoExpose the name of an event's input device to Lisp
Po Lu [Thu, 7 Apr 2022 13:16:11 +0000 (21:16 +0800)]
Expose the name of an event's input device to Lisp

This name can be used to identify the device for special
treatment, i.e. only interpolating scrolls coming from mice and
not touchpads inside pixel-scroll-precision-mode.

* doc/lispref/commands.texi (Command Loop Info): Document new
variable `last-event-device'.
* etc/NEWS: Announce new variable `last-event-device'.
* src/frame.h (struct frame): New field `last_mouse_device'.
* src/keyboard.c (read_char): Clear last-event-device.
(kbd_buffer_get_event): Set last-event-device to the event's
recorded device.
(init_keyboard): Clear last-event-device.
(syms_of_keyboard): New defvar `last-event-device'.
* src/termhooks.h (struct input_event): New field `device'.
(EVENT_INIT): Set it to the special value `Qt' by default.
* src/xterm.c (x_init_master_valuators): Record the device's
name.
(x_dnd_begin_drag_and_drop): Only preserve last event device if
the mouse ended up in the source frame.
(x_note_mouse_movement): New argument `source'.
(handle_one_xevent): Set input event sources whenever
appropriate.
(mark_xterm): Mark device names.

* src/xterm.h (struct xi_device_t): New field `name'.

2 years agoFix xwidget smooth scrolling when the default pointer is not a touchpad
Po Lu [Thu, 7 Apr 2022 11:43:15 +0000 (19:43 +0800)]
Fix xwidget smooth scrolling when the default pointer is not a touchpad

* xwidget.c (find_suitable_pointer): New argument
`need_smooth'.  Try to find a touchpad if that is set.
(xwidget_button_1, xwidget_button, xwidget_motion_notify)
(xwidget_scroll, xwidget_pinch, xw_notify_virtual_upwards_until)
(xw_notify_virtual_downwards_until):
(xw_maybe_synthesize_crossing):
(xwidget_motion_or_crossing, synthesize_focus_in_event): Set
parameter accordingly.

2 years agoClarify read-answer-short/use-short-answers action
Lars Ingebrigtsen [Thu, 7 Apr 2022 11:37:16 +0000 (13:37 +0200)]
Clarify read-answer-short/use-short-answers action

* lisp/emacs-lisp/map-ynp.el (read-answer-short): Clarify what
this variable affects (bug#54754).

* src/fns.c (Fyes_or_no_p): Mention `use-short-answers'.

2 years agoEncrypt some parameters in auth-source plstore backend
Andrew G Cohen [Tue, 22 Mar 2022 05:04:58 +0000 (13:04 +0800)]
Encrypt some parameters in auth-source plstore backend

The auth-source plstore backend allows a list of extra parameters but
currently stores them all unencrypted.  This allows a plist with
:unencrypted and :encrypted keys to specify which extra parameters to
encrypt in the plstore file.

* lisp/auth-source.el (auth-source-plstore-create): Allow specifying
both unencrypted and encrypted extra parameters.

2 years agoAdd a mu backend for gnus-search
Jai Flack [Thu, 7 Apr 2022 11:14:01 +0000 (13:14 +0200)]
Add a mu backend for gnus-search

* lisp/gnus-search.el (gnus-search-mu-program): New defcustom
(gnus-search-mu-switches): New defcustom
(gnus-search-mu-remove-prefix): New defcustom
(gnus-search-mu-config-directory): New defcustom
(gnus-search-mu-raw-queries-p): New defcustom
(gnus-search-mu): New subclass of gnus-search-indexed
(gnus-search-transform-expression): New method
(gnus-search-mu-handle-date): New function
(gnus-search-mu-handle-flag): New function
(gnus-search-indexed-extract): New method
(gnus-search-indexed-search-command): New method (bug#54662).

2 years ago* lisp/net/tramp-integration.el: Don't require files-x.
Michael Albinus [Thu, 7 Apr 2022 10:11:11 +0000 (12:11 +0200)]
* lisp/net/tramp-integration.el: Don't require files-x.

2 years agoFix error when calling DND movement tracking function
Po Lu [Thu, 7 Apr 2022 06:32:10 +0000 (14:32 +0800)]
Fix error when calling DND movement tracking function

* src/xterm.c (x_dnd_begin_drag_and_drop): Verify
x_dnd_movement_x and x_dnd_movement_y are wholenums before
caling posn-at-x-y.

2 years ago* src/xterm.c (xm_write_targets_table): Remove extra XGrabServer pair.
Po Lu [Thu, 7 Apr 2022 06:25:52 +0000 (14:25 +0800)]
* src/xterm.c (xm_write_targets_table): Remove extra XGrabServer pair.

2 years agoFix DND bugs on GTK
Po Lu [Thu, 7 Apr 2022 06:02:34 +0000 (14:02 +0800)]
Fix DND bugs on GTK

* src/xterm.c (handle_one_xevent): Don't let some client
messages reach the toolkit.

2 years agoRemove more code mindlessly copied from NS
Po Lu [Thu, 7 Apr 2022 03:44:59 +0000 (11:44 +0800)]
Remove more code mindlessly copied from NS

* src/pgtkfns.c (Fx_open_connection):
* src/pgtkselect.c (nxatoms_of_pgtkselect):
* src/pgtkselect.h:
* src/pgtkterm.h: Delete `nxatoms_of_pgtkselect'.

2 years ago; * etc/PROBLEMS: Explain how to get dropping text on xterm to work.
Po Lu [Thu, 7 Apr 2022 02:20:47 +0000 (10:20 +0800)]
; * etc/PROBLEMS: Explain how to get dropping text on xterm to work.

2 years agoFix sending unsupported drops when there is no target but a toplevel
Po Lu [Thu, 7 Apr 2022 02:15:12 +0000 (10:15 +0800)]
Fix sending unsupported drops when there is no target but a toplevel

* src/xterm.c (handle_one_xevent): Send unsupported drops to
last seen toplevel if no target was found.

2 years agoImprove doc of x-begin-drag
Po Lu [Thu, 7 Apr 2022 00:57:25 +0000 (08:57 +0800)]
Improve doc of x-begin-drag

* doc/lispref/frames.texi (Drag and Drop): Fix typos and clarify
meaning of XdndActionPrivate.

2 years agoReturn an appropriate action when performing unsupported drop
Po Lu [Thu, 7 Apr 2022 00:55:00 +0000 (08:55 +0800)]
Return an appropriate action when performing unsupported drop

* src/xterm.c (x_dnd_send_unsupported_drop): Set action to
XdndActionPrivate.

2 years ago* src/xselect.c (x_atom_to_symbol): Add XdndSelection.
Po Lu [Thu, 7 Apr 2022 00:37:53 +0000 (08:37 +0800)]
* src/xselect.c (x_atom_to_symbol): Add XdndSelection.

2 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.

2 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.

2 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.

2 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.