]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 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.

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

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

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

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

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

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

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

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

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

2 years agocl-generic: Rework obsolescence checks for defmethod
Stefan Monnier [Fri, 1 Apr 2022 14:02:32 +0000 (10:02 -0400)]
cl-generic: Rework obsolescence checks for defmethod

* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Silence obsolescence
warnings in the included methods.
(cl-defmethod): Reuse standard obsolescence checks.

* lisp/emacs-lisp/seq.el (seq-contains): Remove redundant
`with-suppressed-warnings`.

2 years agoBetter check for when clipboard or primary selection have changed
Ignacio [Sun, 13 Mar 2022 20:05:18 +0000 (21:05 +0100)]
Better check for when clipboard or primary selection have changed

Previously it was done by just comparing new and old selection
text, now we use also selection timestamps for systems that
support it (only enabled in X for now).  (bug#53894)

* lisp/select.el: (gui--last-selection-timestamp-clipboard)
(gui--last-selection-timestamp-primary): New variables.

(gui--set-last-clipboard-selection)
(gui--set-last-primary-selection)
(gui--clipboard-selection-unchanged-p)
(gui--primary-selection-unchanged-p): New functions.

2 years agoOClosure: Add support for defmethod dispatch
Stefan Monnier [Fri, 1 Apr 2022 12:54:55 +0000 (08:54 -0400)]
OClosure: Add support for defmethod dispatch

* lisp/emacs-lisp/oclosure.el (oclosure--class): Add slot `allparents`.
(oclosure--class-make): Add corresponding arg `allparents`.
(oclosure, oclosure--build-class): Pass the new arg to the constructor.
(oclosure--define): Make the predicate function understand subtyping.

* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Move from
`cl-generic.el`.

* lisp/emacs-lisp/cl-generic.el (cl--generic-class-parents): Move to
`cl-preloaded.el` and rename to `cl--class-allparents`.
Adjust all callers.
(cl--generic-oclosure-tag, cl-generic--oclosure-specializers): New functions.
(cl-generic-generalizers) <oclosure-struct>: New generalizer.

* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen):
New generic function.
(oclosure-test): Add test for dispatch on oclosure types.

2 years agoImplement the Motif drag protocol
Po Lu [Fri, 1 Apr 2022 11:57:42 +0000 (19:57 +0800)]
Implement the Motif drag protocol

* src/xterm.c (struct x_client_list_window): New field
`xm_protocol_style'.
(xm_top_level_enter_message, xm_drag_motion_message)
(xm_top_level_leave_message): New structures.
(xm_setup_drag_info, xm_send_top_level_enter_message)
(xm_send_drag_motion_message, xm_send_top_level_leave_message):
New functions.
(x_dnd_compute_toplevels): Compute `xm_protocol_style'.
(x_dnd_get_target_window_1, x_dnd_get_target_window): New
parameter `motif_out'.  Place the xm protocol style in it if
necessary.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Handle Motif drag
protocol messages.
(x_free_frame_resources): Cancel Motif drag protocol operations
correctly.

2 years agoUpdate modus-themes to their version 2.3.0
Protesilaos Stavrou [Fri, 1 Apr 2022 09:51:14 +0000 (12:51 +0300)]
Update modus-themes to their version 2.3.0

* doc/misc/modus-themes.org (Enable and load): Clarify wording.
(Sample configuration with and without use-package): Improve sample
code on how to set up the themes.
(Customization Options): Update sample configuration.
(Option for box buttons, Option for mode line presentation)
(Option for completion framework aesthetics)
(Option for Org agenda constructs)
(Option for the headings' overall style): Document how to optionally
pass number values as a cons cell.
(Option for mouseover effects): Document new boolean user option.
(More accurate colors in terminal emulators): Write about the color
range in terminal emulators and provide sample palette for XTerm.
(Override colors): Use American English.
(Near-monochrome syntax highlighting): Provide sample code on how to
achieve a monochrome style.
(Full support for packages or face groups)
(Indirectly covered packages): Update lists of supported packages.
(Note on display-fill-column-indicator-mode): Reword node.
(Note on prism.el): Use American English.
(Note on SHR colors): Clarify statement.
(Note on the Notmuch logo): Remark that the Notmuch logo can be
disabled.
(Port the Modus themes to other platforms?): Use American English.
(Sources of the themes): Fix capitalization of proper nouns.
(Acknowledgements): Update list of contributors to the project.

* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Ensure that the theme is reified
as expected both at compiletime and runtime.

* etc/themes/modus-themes.el (require): Require 'cl-lib' and 'subr-x'
at compiletime.
(seq): Require the 'seq' library.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected): Use correct symbol for
deprecated faces.
(modus-themes-slanted-constructs): Provide it as an alias of
'modus-themes-italic-constructs'.
(modus-themes-variable-pitch-headings): Remove obsolete user option.
(modus-themes-no-mixed-fonts): Remove obsolete user option alias.
(modus-themes-intense-mouseovers): Add new user option.
(modus-themes--headings-choice): Accept value as a cons cell.
(modus-themes-headings, modus-themes-org-agenda): Update user option
to accept number value as a cons cell.
(modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2)
(modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-title)
(modus-themes-scale-small): Remove obsolete user options.
(modus-themes-mode-line): Update user option to accept number values
as cons cells.
(modus-themes-mode-line-padding): Remove obsolete user option.
(modus-themes-completions): Add support for the 'text-also' property
and update it accordingly.
(modus-themes-success-deuteranopia): Remove obsolete user option.
(modus-themes-box-buttons): Update user option to accept number values
as cons cells.
(modus-themes--warn, modus-themes--list-or-warn)
(modus-themes--alist-or-seq): Add functions to check for correct value
in some user options.
(modus-themes--current-theme): Return the first Modus theme from
'current-enable-themes' (bug#54598).
(modus-themes--lang-check, modus-themes--prompt, modus-themes--paren)
(modus-themes--syntax-foreground, modus-themes--syntax-extra)
(modus-themes--syntax-string, modus-themes--syntax-comment)
(modus-themes--heading, modus-themes--agenda-structure)
(modus-themes--agenda-date, modus-themes--mode-line-attrs)
(modus-themes--completion, modus-themes--link, modus-themes--link-color)
(modus-themes--region, modus-themes--hl-line, modus-themes--button):
Make private functions check for the desired value.  Refine them where
necessary.
(modus-themes-faces, modus-themes-custom-variables): Update supported
faces and relevant variables.

2 years agoMore robust checks for directory buffers in image-mode
Michael Albinus [Fri, 1 Apr 2022 07:01:35 +0000 (09:01 +0200)]
More robust checks for directory buffers in image-mode

* lisp/image-mode.el (image-mode--directory-buffers): Apply more
robust checks for directory buffers.  (Bug#54606)

2 years agoOnly read 16 bytes of motif drag receiver info
Po Lu [Fri, 1 Apr 2022 06:13:44 +0000 (14:13 +0800)]
Only read 16 bytes of motif drag receiver info

* src/xterm.c (xm_drag_receiver_info): Only read 16 bytes of
receiver info.
(handle_one_xevent): Fix default XM drop action.

2 years agoSimplify Haiku drag-and-drop implementation
Po Lu [Fri, 1 Apr 2022 03:59:38 +0000 (03:59 +0000)]
Simplify Haiku drag-and-drop implementation

* lisp/term/haiku-win.el (x-begin-drag): Bind `mouse-highlight'
to nil.

* src/haikuselect.c (haiku_unwind_drag_message)
(Fhaiku_drag_message):
* src/haikuterm.h (HAVE_CHAR_CACHE_MAX):
* src/xdisp.c (note_mouse_highlight): Delete
`haiku_dnd_in_progress' variable.

2 years agoSupport Motif DND help
Po Lu [Fri, 1 Apr 2022 03:50:14 +0000 (11:50 +0800)]
Support Motif DND help

* src/xterm.c (x_dnd_xm_use_help): New state variable.
(x_dnd_begin_drag_and_drop): Clear new variable.
(handle_one_xevent): Set new variable if we get a key press
event F1 during the drag-and-drop session, and use help action
when dropping onto a Motif program if it is set.

2 years ago; * src/xterm.c: Update commentary.
Po Lu [Fri, 1 Apr 2022 02:29:00 +0000 (10:29 +0800)]
; * src/xterm.c: Update commentary.

2 years agoMake dropping files on Motif programs work
Po Lu [Fri, 1 Apr 2022 01:50:58 +0000 (09:50 +0800)]
Make dropping files on Motif programs work

* lisp/dired.el (dired-mouse-drag): Announce "FILE" and
"FILE_NAME" as targets as well.
* lisp/select.el (xselect-convert-to-filename): Handle
XdndSelection specially.
(xselect-convert-to-xm-file): New function.
(selection-converter-alist): Add new converters.

2 years agoAvoid extra sync if we didn't get the right wmstate
Po Lu [Fri, 1 Apr 2022 00:47:45 +0000 (08:47 +0800)]
Avoid extra sync if we didn't get the right wmstate

* src/xterm.c (x_dnd_get_wm_state_and_proto): Always set proto
version.
(x_dnd_get_target_window): Optimize accordingly.

2 years agoFix a build warning on the non-XI2 build
Po Lu [Fri, 1 Apr 2022 00:39:40 +0000 (08:39 +0800)]
Fix a build warning on the non-XI2 build

* src/xterm.c (xm_read_drop_start_reply): Take a const XEvent as
msg.

2 years agoFix a bug in configure.ac that failed the --without-x build
Eli Zaretskii [Thu, 31 Mar 2022 16:15:45 +0000 (19:15 +0300)]
Fix a bug in configure.ac that failed the --without-x build

* configure.ac (USE_TOOLKIT_SCROLL_BARS): Fix test for unsupported
scroll-bars configuration.  (Bug#54629)

2 years agoFix Motif DND on window managers that don't support client lists
Po Lu [Thu, 31 Mar 2022 13:53:04 +0000 (21:53 +0800)]
Fix Motif DND on window managers that don't support client lists

* src/xterm.c (x_dnd_compute_toplevels): Fix usage of
`x_uncatch_errors_after_check'.
(x_dnd_get_wm_state_and_proto): New function.
(x_dnd_get_target_window): Also return first toplevel window
found.

2 years agoImplement missing parts of the Motif drag and drop protocol
Po Lu [Thu, 31 Mar 2022 13:28:09 +0000 (21:28 +0800)]
Implement missing parts of the Motif drag and drop protocol

* src/xterm.c (xm_drop_start_reply): New structure.
(xm_get_drag_window): Don't grab the server since this leads to
weird freezes when creating the drag window.
(xm_read_drop_start_reply): New function.
(x_dnd_begin_drag_and_drop): Set Motif finish flag to 0.
(handle_one_xevent): When starting a motif drop, set the finish
flag to 1.  When the receiver replies to our drop message, set
the finish flag to 2 if the drop was accepted, and only clear
the waiting for finish flag when a selection request for
XmTRANSFER_SUCCESS or XmTRANSFER_FAILURE arrives.
(x_term_init): New atoms.
* src/xterm.h (struct x_display_info): New atoms.

2 years agoTweak how functions are formatted in Implementation in *Help*
Lars Ingebrigtsen [Thu, 31 Mar 2022 11:36:40 +0000 (13:36 +0200)]
Tweak how functions are formatted in Implementation in *Help*

* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Include
the function name in the implementations (bug#54628).  This
clarifies what we're talking about here, and avoids getting
(function ...) translated into #'...

2 years agoMinor fixes to treatment of `allow_current_frame'
Po Lu [Thu, 31 Mar 2022 10:52:01 +0000 (18:52 +0800)]
Minor fixes to treatment of `allow_current_frame'

* src/xterm.c (x_dnd_send_drop): Don't send special event for
wrong frame.
(x_dnd_send_drop): Fix condition for returning
XdndActionPrivate.

2 years ago; * src/xterm.c (handle_one_xevent): Respect current window in Motif DND.
Po Lu [Thu, 31 Mar 2022 09:30:13 +0000 (17:30 +0800)]
; * src/xterm.c (handle_one_xevent): Respect current window in Motif DND.

2 years agoImplement Motif drop protocol
Po Lu [Thu, 31 Mar 2022 09:21:37 +0000 (17:21 +0800)]
Implement Motif drop protocol

This is the second most widely implemented drag-and-drop
protocol on X Windows, but seems to have some unsolvable
problems (i.e. stuff will keep accumulating in the drag window
as long the target lists keep changing.)  The implementation is
not yet complete and doesn't work with some programs.

* lisp/select.el (xselect-convert-xm-special): New functions.
(selection-converter-alist): Add new converters.
* lisp/x-dnd.el (x-dnd-handle-motif): Ignore messages sent by
the receiver.
* src/xterm.c (xm_targets_table_byte_order): New enum;
(SWAPCARD32, SWAPCARD16): New macros.
(xm_targets_table_rec, xm_drop_start_message)
(xm_drag_initiator_info, xm_drag_receiver_info): New structures.
(XM_DRAG_SIDE_EFFECT, xm_read_targets_table_header)
(xm_read_targets_table_rec, xm_find_targets_table_idx)
(x_atoms_compare, xm_write_targets_table)
(xm_write_drag_initiator_info, xm_get_drag_window)
(xm_setup_dnd_targets, xm_send_drop_message)
(xm_read_drag_receiver_info): New functions.
(x_dnd_compute_toplevels): Correctly free some temp data.
(x_dnd_get_window_proxy, x_dnd_get_window_proto)
(x_set_frame_alpha): Likewise.
(handle_one_xevent): If the window has no XDND proto but has
motif drag receiver data, send a motif drop protocol request.
(x_term_init): New atoms for Motif DND support.
* src/xterm.h (struct x_display_info): Add new atoms.

2 years agocl-generic: Use OClosures for `cl--generic-isnot-nnm-p`
Stefan Monnier [Wed, 30 Mar 2022 17:54:56 +0000 (13:54 -0400)]
cl-generic: Use OClosures for `cl--generic-isnot-nnm-p`

Rewrite the handling of `cl-no-next-method` to get rid of the hideous
hack used in `cl--generic-isnot-nnm-p` and also to try and move
some of the cost to the construction of the effective method rather
than its invocation.  This speeds up method calls measurably when
there's a `cl-call-next-method` in the body.

* lisp/loadup.el ("emacs-lisp/oclosure"): Load.

* lisp/emacs-lisp/oclosure.el (oclosure-define): Remove workaround now
that we're preloaded.

* lisp/emacs-lisp/cl-generic.el (cl--generic-method): Rename `uses-cnm`
to `call-con` to reflect it's not a boolean any more.
(cl-defmethod): Adjust to the new name and new values.
(cl-generic-define-method): Adjust to the new name.
(cl--generic-lambda): Use the new `curried` calling convention.
(cl--generic-no-next-method-function): Delete function.
(cl--generic-nnm): New type.
(cl-generic-call-method): Rewrite to support the various
calling conventions.
(cl--generic-nnm-sample, cl--generic-cnm-sample): Delete consts.
(cl--generic-isnot-nnm-p): Rewrite using `oclosure-type`.
(cl--generic-method-info): Add support for new calling convention.

2 years agoEIEIO tests: Fix failure when `eieio-core.el` is interpreted
Stefan Monnier [Wed, 30 Mar 2022 17:49:31 +0000 (13:49 -0400)]
EIEIO tests: Fix failure when `eieio-core.el` is interpreted

* lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value)
(eieio--slot-name-index): Use the `cl--class` accessor functions.

2 years ago* src/pdumper.c (dump_get_max_page_size): Rename from 'dump_get_page_size'.
Andrea Corallo [Wed, 30 Mar 2022 15:13:27 +0000 (17:13 +0200)]
* src/pdumper.c (dump_get_max_page_size): Rename from 'dump_get_page_size'.

2 years ago* src/pdumper.c: Remove getpagesize.h dependecy.
Andrea Corallo [Wed, 30 Mar 2022 15:12:43 +0000 (17:12 +0200)]
* src/pdumper.c: Remove getpagesize.h dependecy.

2 years agoExtend signal-process and proced.el
Michael Albinus [Wed, 30 Mar 2022 11:16:54 +0000 (13:16 +0200)]
Extend signal-process and proced.el

* doc/lispref/processes.texi (Signals to Processes):
Document changes in signal-process.

* etc/NEWS: Mention changes in proced.el and signal-process.

* lisp/proced.el (proced-signal-function): Declare it obsolete.
(proced-remote-directory): New user option.
(proced-mode): Adapt docstring.
(proced-send-signal, proced-renice): Handle interactive prefix argument.

* lisp/net/tramp.el (tramp-signal-process): New defun.  Add it to
`signal-process-functions'.

* src/process.c (Finternal_default_signal_process): New defun,
providing the hitherto existing implementation of Fsignal_process.
(Fsignal_process): Loop through Vsignal_process_functions.
(Vsignal_process_functions): New defvar.
(Qinternal_default_signal_process, Qsignal_process_functions):
Declare symbols.
(Sinternal_default_signal_process): Declare subroutine.

* test/lisp/net/tramp-tests.el (tramp-test31-signal-process): New test.

2 years ago; Extend Tramp FAQ
Michael Albinus [Wed, 30 Mar 2022 09:16:57 +0000 (11:16 +0200)]
; Extend Tramp FAQ

* doc/misc/tramp.texi (Frequently Asked Questions): Explain Tramp
temporary file identification.

2 years agoRemove local copies of remote files created for drag-and-drop
Po Lu [Wed, 30 Mar 2022 08:36:10 +0000 (16:36 +0800)]
Remove local copies of remote files created for drag-and-drop

* lisp/dired.el (dired-mouse-drag): Remove last dragged remote
file and save a record of any local copy created.
(dired-remove-last-dragged-local-file): New function.

2 years agoIgnore mouse movement correctly on Haiku during drag and drop
Po Lu [Wed, 30 Mar 2022 08:24:45 +0000 (08:24 +0000)]
Ignore mouse movement correctly on Haiku during drag and drop

* src/haikuselect.c (haiku_unwind_drag_message): New function.
(Fhaiku_drag_message): Set `haiku_dnd_in_progress' to false.
* src/haikuterm.c (haiku_read_socket): Fix overriding of
need_flush when reading events from multiple frames.
* src/haikuterm.h (haiku_dnd_in_progress): New variable.
* src/xdisp.c (note_mouse_highlight): Ignore if said variable is
true.

2 years agoPrevent signals when dragging nonexistent files on Haiku
Po Lu [Wed, 30 Mar 2022 08:13:35 +0000 (08:13 +0000)]
Prevent signals when dragging nonexistent files on Haiku

* lisp/term/haiku-win.el (x-begin-drag): Bind
`haiku-signal-invalid-refs' to nil.
* src/haiku_support.cc (MouseMoved): Send motion events while
dragging as well.
* src/haikuselect.c (haiku_lisp_to_message): Respect new
variable.
(syms_of_haikuselect): New variable `haiku-signal-invalid-refs'.

2 years ago; * lisp/dired.el (dired-mouse-drag): Create local copy if file is remote.
Po Lu [Wed, 30 Mar 2022 06:20:13 +0000 (14:20 +0800)]
; * lisp/dired.el (dired-mouse-drag): Create local copy if file is remote.

2 years agoDisallow building with non-toolkit scroll bars on non-X systems
Po Lu [Wed, 30 Mar 2022 03:25:50 +0000 (11:25 +0800)]
Disallow building with non-toolkit scroll bars on non-X systems

* configure.ac: Prevent building without toolkit scroll bars on
non-X systems, where they're not implemented.  (bug#54629)

2 years agoAvoid calling XGetAtomName in a loop when fetching monitor attributes
Po Lu [Wed, 30 Mar 2022 01:17:58 +0000 (09:17 +0800)]
Avoid calling XGetAtomName in a loop when fetching monitor attributes

* src/xfns.c (x_get_monitor_attributes_xrandr): Avoid syncing on
each monitor when waiting for XGetAtomName when built with XCB.

2 years agoAdd some optimizations to ShapeNotify handling
Po Lu [Wed, 30 Mar 2022 00:57:23 +0000 (08:57 +0800)]
Add some optimizations to ShapeNotify handling

* src/xterm.c (handle_one_xevent): Do bounding rect
optimizations on ShapeNotify events as well.

2 years agoHandle process property `remote-command' in Tramp
Michael Albinus [Tue, 29 Mar 2022 17:36:28 +0000 (19:36 +0200)]
Handle process property `remote-command' in Tramp

* doc/misc/tramp.texi (Remote processes): New subsection "Process
properties of asynchronous remote processes".

* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-smb.el (tramp-smb-handle-start-file-process):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process)
Set `remote-command' process property.
(tramp-scp-direct-remote-copying): Rename connection property.

* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
(tramp-test30-make-process, tramp-test31-interrupt-process)
(tramp--test-async-shell-command): Check process property
`remote-command'.

2 years agoipv6 addresses aren't suspicious
Lars Ingebrigtsen [Tue, 29 Mar 2022 15:12:01 +0000 (17:12 +0200)]
ipv6 addresses aren't suspicious

* lisp/international/textsec.el (textsec--ipvx-address-p): New
function.
(textsec-domain-suspicious-p): Use it to say that ipv6 addresses
aren't suspicious (bug#54624).

2 years agoDon't use 'eshell-convert' when all we want is a number
Jim Porter [Sat, 26 Mar 2022 22:12:48 +0000 (15:12 -0700)]
Don't use 'eshell-convert' when all we want is a number

* lisp/eshell/em-hist.el (eshell/history): Use 'string-to-number'
instead of 'eshell-convert'.

* lisp/eshell/em-basic.el (eshell/umask): Simplify implementation and
be more careful about parsing numeric umasks to set.

2 years agoAdd tests for Eshell's umask command
Jim Porter [Sat, 26 Mar 2022 22:09:51 +0000 (15:09 -0700)]
Add tests for Eshell's umask command

'em-basic-test/umask-set' fails when passing an actual number to the
command, but this is fixed in the subsequent commit.

test/lisp/eshell/em-basic-tests.el: New file.

2 years agoFix eww bookmark writing
Thomas Fitzsimmons [Tue, 29 Mar 2022 12:34:38 +0000 (14:34 +0200)]
Fix eww bookmark writing

* lisp/net/eww.el (eww-write-bookmarks): Ensure that the complete
bookmarks are written (bug#54612).

2 years agoRewrite desktop workarea computation to avoid too many calls to XSync
Po Lu [Tue, 29 Mar 2022 10:31:24 +0000 (18:31 +0800)]
Rewrite desktop workarea computation to avoid too many calls to XSync

* src/xfns.c (x_get_net_workarea): Rewrite using XCB without
using long_offset and long_length, since the data transfer is
usually negligible compared to the roundtrip delay.

2 years agoFix typo in ERC DCC code in verbose mode
Mattias EngdegÄrd [Tue, 29 Mar 2022 09:14:11 +0000 (11:14 +0200)]
Fix typo in ERC DCC code in verbose mode

* lisp/erc/erc-dcc.el (erc-dcc-send-block): Typo causing incorrect
message when `erc-dcc-verbose` is set.

2 years ago* lisp/emacs-lisp/oclosure.el (oclosure--define): Autoload
Stefan Monnier [Tue, 29 Mar 2022 07:23:38 +0000 (03:23 -0400)]
* lisp/emacs-lisp/oclosure.el (oclosure--define): Autoload

2 years agoSpecially decode more selection types on Haiku
Po Lu [Tue, 29 Mar 2022 06:35:09 +0000 (06:35 +0000)]
Specially decode more selection types on Haiku

* src/haiku_select.cc (be_get_point_data, be_add_point_data):
New functions.
* src/haikuselect.c (haiku_message_to_lisp, lisp_to_type_code)
(haiku_lisp_to_message): Accept new types `size_t', `ssize_t'
and `point'.
(Fhaiku_drag_message): Update doc string.
(syms_of_haikuselect): New defsyms.
* src/haikuselect.h: Update prototypes.

2 years agoTemporarily fix the oclosure bootstrap
Po Lu [Tue, 29 Mar 2022 05:58:40 +0000 (13:58 +0800)]
Temporarily fix the oclosure bootstrap

* lisp/emacs-lisp/oclosure.el (oclosure-define): Load oclosure
from source if `oclosure--define' is not defined during byte
compilation.

2 years agoDon't loop through useless region when searching for DND toplevel
Po Lu [Tue, 29 Mar 2022 01:08:22 +0000 (09:08 +0800)]
Don't loop through useless region when searching for DND toplevel

* src/xterm.c (x_dnd_compute_toplevels): Optimize for the
bounding rect being the window dimensions.

2 years agoAdd search function to search within filenames in Dired and WDired (bug#14013)
Juri Linkov [Mon, 28 Mar 2022 18:00:32 +0000 (21:00 +0300)]
Add search function to search within filenames in Dired and WDired (bug#14013)

* lisp/dired-aux.el (dired-isearch-filenames-mode): Use
dired-isearch-search-filenames on isearch-search-fun-function
instead of dired-isearch-filter-filenames on isearch-filter-predicate.
(dired-isearch-filter-filenames): Remove function.
(dired-isearch-search-filenames): Add function.

* lisp/isearch.el (isearch-message-prefix): Add isearch-search-fun-function
to the list of supported advice-functions along with isearch-filter-predicate.

* lisp/replace.el (replace-search): Add comment.

* lisp/wdired.el (wdired-search-replace-filenames): New defcustom.
(wdired-isearch-filter-read-only): Remove function.
(wdired-change-to-wdired-mode, wdired-change-to-dired-mode):
Add and remove dired-isearch-search-filenames on isearch-search-fun-function
instead of wdired-isearch-filter-read-only on isearch-filter-predicate.
Also set/unset replace-search-function and replace-re-search-function.
Remove and restore isearch-mode-hook with dired-isearch-filenames-setup.
The problem is that dired-isearch-filenames-setup adds
dired-isearch-filenames-end to isearch-mode-end-hook that removes
dired-isearch-search-filenames added to isearch-search-fun-function
in wdired-change-to-wdired-mode.  Then replace-highlight can't use
dired-isearch-search-filenames.

2 years agoAdd OClosures, a cross between functions and structs
Stefan Monnier [Mon, 28 Mar 2022 14:53:14 +0000 (10:53 -0400)]
Add OClosures, a cross between functions and structs

We here just add the new type.  It is not fully self-contained.
It requires cooperation from `cconv.el` on the one hand, and it
hijacks the docstring info to hold the type of OClosure objects.
This does imply that OClosures can't have docstrings, tho this
limitation will be lifted in subsequent patches.

* lisp/emacs-lisp/oclosure.el: New file.
* test/lisp/emacs-lisp/oclosure-tests.el: New file.
* doc/lispref/functions.texi (OClosures): New section.

* src/eval.c (Ffunction): Accept symbols instead of strings for docstrings.
* src/doc.c (store_function_docstring): Avoid overwriting an OClosure type.
* lisp/emacs-lisp/cconv.el (cconv--convert-function): Tweak ordering of
captured variables.
(cconv-convert): Add case for `oclosure--fix-type`.

2 years agoFix doc of `gui-get-selection' as to what is really valid as `data'
Po Lu [Mon, 28 Mar 2022 12:34:03 +0000 (20:34 +0800)]
Fix doc of `gui-get-selection' as to what is really valid as `data'

* doc/lispref/frames.texi (Window System Selections):
* lisp/select.el (gui-set-selection): Don't say `data' can be a
cons or list of two integers, since that's not supported.

2 years agoMinor fixes to Haiku selection support
Po Lu [Mon, 28 Mar 2022 12:28:53 +0000 (12:28 +0000)]
Minor fixes to Haiku selection support

* lisp/term/haiku-win.el (haiku-selection-bounds): New function.
(haiku-dnd-convert-string, haiku-select-encode-xstring)
(haiku-select-encode-utf-8-string): Handle position pairs
correctly.
(gui-backend-set-selection): Adjust for new airity.
* src/haikuselect.c (Fhaiku_selection_put): Fix arity.

2 years agoImprove portability of XCB configure checks
Po Lu [Mon, 28 Mar 2022 10:41:12 +0000 (18:41 +0800)]
Improve portability of XCB configure checks

* configure.ac: Look for xcb_aux_sync in -lxcb-aux if it's not
in -lxcb-util.

2 years agoDo not register Tramp file name handlers twice
Michael Albinus [Mon, 28 Mar 2022 10:02:23 +0000 (12:02 +0200)]
Do not register Tramp file name handlers twice

* lisp/net/tramp.el (tramp-register-autoload-file-name-handlers):
* lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler):
Check, whether the real file name handler is already registered.

2 years agoAvoid extra sync when fetching DND proxy window
Po Lu [Mon, 28 Mar 2022 05:52:17 +0000 (13:52 +0800)]
Avoid extra sync when fetching DND proxy window

* src/xterm.c (x_dnd_get_proxy_proto): New function.
(x_dnd_get_target_window): Use it on XCB to determine window
proxy and proto for toplevel window.

2 years agoClean up some uses of XInternAtom
Po Lu [Mon, 28 Mar 2022 00:59:50 +0000 (08:59 +0800)]
Clean up some uses of XInternAtom

* src/xfns.c (x_set_undecorated, x_set_no_focus_on_map, x_window)
(set_machine_and_pid_properties): Move calls to XInternAtom for
static string to use previously interned atoms.
(Fx_change_window_property): Use XCB if available to avoid extra
call to XSync.
* src/xterm.c (x_term_init):
* src/xterm.h (struct x_display_info): New atoms _MOTIF_WM_HINTS
and _NET_WM_PID.

2 years ago; * src/xterm.c (x_dnd_compute_toplevels): Use right enum on XCB.
Po Lu [Mon, 28 Mar 2022 00:39:37 +0000 (08:39 +0800)]
; * src/xterm.c (x_dnd_compute_toplevels): Use right enum on XCB.

2 years agoStore latin-1 content into the Haiku clipboard as well
Po Lu [Sun, 27 Mar 2022 13:36:45 +0000 (13:36 +0000)]
Store latin-1 content into the Haiku clipboard as well

* lisp/term/haiku-win.el (haiku-normal-selection-encoders): New
variable.
(haiku-select-encode-utf-8-string, haiku-select-encode-xstring):
New functions.
(gui-backend-set-selection): Use new selection encoder functions
instead of hard-coding UTF-8.
(haiku-dnd-handle-drag-n-drop-event): Rename to
`haiku-drag-and-drop'.

* src/haiku_select.cc (be_lock_clipboard_message): Accept new
argument `clear'.
(be_unlock_clipboard): Accept new argument `discard'.

* src/haikuselect.c (Fhaiku_selection_data): Change calls to
`be_lock_clipboard_message' and `be_unlock_clipboard'.
(haiku_unwind_clipboard_lock): New function.
(Fhaiku_selection_put): Accept new meaning of `name' which means
to set the selection message.

* src/haikuselect.h: Update prototypes.

2 years agoClean up PGTK cursor blanking code
Po Lu [Sun, 27 Mar 2022 11:53:49 +0000 (19:53 +0800)]
Clean up PGTK cursor blanking code

* src/pgtkterm.c (XTframe_rehighlight): Rename to
`pgtk_frame_rehighlight_hook'.  All callers changed.
(x_toggle_visible_pointer): Rename to
`pgtk_toggle_visible_pointer'.  All callers changed.
(x_setup_pointer_blanking, XTtoggle_invisible_pointer): Delete
functions.
(pgtk_create_terminal): Use new names for various hooks.
(pgtk_term_init): Set up blank cursor directly.

* src/pgtkterm.h (struct pgtk_display_info): Remove
`toggle_visible_pointer'.

2 years agoDon't wait for XdndFinished messages if the target did not send status
Po Lu [Sun, 27 Mar 2022 07:51:41 +0000 (15:51 +0800)]
Don't wait for XdndFinished messages if the target did not send status

* src/xterm.c (x_dnd_send_leave): Return if we should wait for a
XdndFinished message.
(handle_one_xevent): Use that value for
`x_dnd_waiting_for_finish'.

2 years agoAlways run 'isearch-lazy-count-update-hook' with point at match
Augusto Stoffel [Fri, 25 Mar 2022 07:46:57 +0000 (08:46 +0100)]
Always run 'isearch-lazy-count-update-hook' with point at match

* lisp/isearch.el (isearch-lazy-highlight-buffer-update):  Run
'isearch-lazy-count-update-hook' outside of save-excursion, so point
is at the current match.

2 years agoFix processing of DND grab on non-XI2 builds
Po Lu [Sun, 27 Mar 2022 05:01:18 +0000 (13:01 +0800)]
Fix processing of DND grab on non-XI2 builds

* src/xterm.c (handle_one_xevent): Process DND grab flag
correctly.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Sun, 27 Mar 2022 04:30:16 +0000 (06:30 +0200)]
Merge from origin/emacs-28

1bef52ce73 * doc/emacs/anti.texi (Antinews): Unannounce removal of Mo...

2 years agoFix no-toolkit build
Po Lu [Sun, 27 Mar 2022 01:48:37 +0000 (09:48 +0800)]
Fix no-toolkit build

* src/xterm.c (x_top_window_to_frame): Declare correctly on
no-toolkit builds.

2 years agoAvoid excessive synchronization when handling ShapeNotify events
Po Lu [Sun, 27 Mar 2022 00:53:12 +0000 (08:53 +0800)]
Avoid excessive synchronization when handling ShapeNotify events

* src/xterm.c (handle_one_xevent): Use XCB to handle ShapeNotify
events when we want both the bounding and input rects.

2 years ago; * src/haikuimage.c (syms_of_haikuimage): Remove duplicate DEFSYM.
Po Lu [Sun, 27 Mar 2022 00:34:25 +0000 (00:34 +0000)]
; * src/haikuimage.c (syms_of_haikuimage): Remove duplicate DEFSYM.

2 years agoFix reader infinite recursion for circular mixed-type values
Mattias EngdegÄrd [Sat, 26 Mar 2022 15:44:18 +0000 (16:44 +0100)]
Fix reader infinite recursion for circular mixed-type values

Make sure that the value added to the `read_objects_completed` set is
the one we actually return; previously this wasn't the case for conses
because of an optimisation (bug#54501).

Also add a check for vacuous self-references such as #1=#1# instead of
returning a nonsense value from thin air.

* src/lread.c (read1): Treat numbered conses correctly as described
above.  Detect vacuous self-references.
* test/src/lread-tests.el (lread-test-read-and-print)
(lread-test-circle-cases, lread-circle): Add tests.

2 years ago; * src/image.c (syms_of_image): Fix whitespace.
Eli Zaretskii [Sat, 26 Mar 2022 12:29:11 +0000 (15:29 +0300)]
; * src/image.c (syms_of_image): Fix whitespace.

2 years agoEnable the native display of BMP images on Haiku
Po Lu [Sat, 26 Mar 2022 12:16:46 +0000 (12:16 +0000)]
Enable the native display of BMP images on Haiku

* src/image.c (syms_of_image): Also register `bmp' image type on
Haiku when native image APIs are enabled.

2 years agoFix crash when timer signals or throws inside a popup menu on Haiku
Po Lu [Sat, 26 Mar 2022 12:01:58 +0000 (12:01 +0000)]
Fix crash when timer signals or throws inside a popup menu on Haiku

* src/haikumenu.c (haiku_process_pending_signals_for_menu_1)
(haiku_process_pending_signals_for_menu_2): New functions.
(haiku_process_pending_signals_for_menu): Catch non local exits
around `timer_check'.

2 years ago; * src/xterm.c (x_dnd_compute_toplevels): Fix cookie leak if rc is 0.
Po Lu [Sat, 26 Mar 2022 11:38:30 +0000 (19:38 +0800)]
; * src/xterm.c (x_dnd_compute_toplevels): Fix cookie leak if rc is 0.

2 years agoFix processing of emacs:window_id inside DND messages if it already exists
Po Lu [Sat, 26 Mar 2022 10:13:47 +0000 (10:13 +0000)]
Fix processing of emacs:window_id inside DND messages if it already exists

* src/haiku_support.cc (MessageReceived): Use DropPoint instead
of getting it manually.
(be_drag_message): Replace window_id if it already exists.

2 years ago; Improve readablity in grep.el
Michael Albinus [Sat, 26 Mar 2022 09:40:16 +0000 (10:40 +0100)]
; Improve readablity in grep.el

* lisp/progmodes/grep.el (grep-compute-defaults): Set a more
readable value for `grep-quoting-style'.

2 years agoDon't let Tramp block dired (Bug#54542)
Michael Albinus [Sat, 26 Mar 2022 09:39:39 +0000 (10:39 +0100)]
Don't let Tramp block dired  (Bug#54542)

* lisp/dired.el (dired-find-buffer-nocreate): Avoid avoid hangs in
remote buffers with a blocked connection.  (Bug#54542)

* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
Extend suppression rules.

2 years agoMinor fixes to last change
Po Lu [Sat, 26 Mar 2022 09:12:34 +0000 (17:12 +0800)]
Minor fixes to last change

* src/Makefile.in: Add XSHAPE_LIBS and XSHAPE_CFLAGS.
(LIBES, EMACS_CFLAGS): Likewise.

* src/xterm.c (x_dnd_compute_toplevels): Fix build without
HAVE_XCB_SHAPE.

2 years agoAlso fetch shapes via XCB for drag and drop
Po Lu [Sat, 26 Mar 2022 09:10:42 +0000 (17:10 +0800)]
Also fetch shapes via XCB for drag and drop

* configure.ac: Also look for xcb-shape.
* src/xterm.c (HAVE_XCB_SHAPE_INPUT_RECTS): New define.
(x_dnd_compute_toplevels): Use XCB for input shapes if possible.

2 years agoUse native image APIs on MS-Windows by default
Eli Zaretskii [Sat, 26 Mar 2022 08:52:41 +0000 (11:52 +0300)]
Use native image APIs on MS-Windows by default

* src/w32term.c (syms_of_w32term) <w32-use-native-image-API>: Now
t by default on W2K and later systems, but only on WINDOWSNT
builds.

* etc/NEWS: Announce the change.

2 years agoSupport display of BMP images on MS-Windows
Eli Zaretskii [Sat, 26 Mar 2022 08:31:46 +0000 (11:31 +0300)]
Support display of BMP images on MS-Windows

* src/w32image.c (w32_can_use_native_image_api): Support BMP
images.
* src/image.c (syms_of_image) <Qbmp>: New symbol.
[HAVE_NTGUI]: Add 'bmp' to list of supported image types.

* doc/lispref/display.texi (Image Formats): Document built-in
support for BMP images.

* etc/NEWS: Announce the change.

2 years agoImprove 'desktop--emacs-pid-running-p'
Eli Zaretskii [Sat, 26 Mar 2022 07:28:52 +0000 (10:28 +0300)]
Improve 'desktop--emacs-pid-running-p'

* lisp/desktop.el (desktop--emacs-pid-running-p): Avoid false
negatives on MS-Windows and with some symlinks to Emacs
executables.  (Bug#1474)

2 years ago* doc/emacs/anti.texi (Antinews): Unannounce removal of Motif.
Po Lu [Sat, 26 Mar 2022 06:46:00 +0000 (14:46 +0800)]
* doc/emacs/anti.texi (Antinews): Unannounce removal of Motif.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Sat, 26 Mar 2022 05:30:21 +0000 (06:30 +0100)]
Merge from origin/emacs-28

4ec9f9edd1 Fix eshell-explicit-command-char doc string typo

2 years agoFix crash when windows are destroyed by faulty clients
Po Lu [Sat, 26 Mar 2022 04:20:23 +0000 (12:20 +0800)]
Fix crash when windows are destroyed by faulty clients

* src/xterm.c (x_dnd_compute_toplevels): Make sure
property_reply is non-NULL before testing its format and length.

2 years agoAvoid excessive synchronization when initiating drag-and-drop
Po Lu [Sat, 26 Mar 2022 04:14:52 +0000 (12:14 +0800)]
Avoid excessive synchronization when initiating drag-and-drop

* src/xterm.c (x_dnd_compute_toplevels): Use XCB to get WM
state, attributes, geometry and to translate coordinates.  This
avoids 4 calls to XSync.

2 years agoFix compiler warning in x-dnd.el
Po Lu [Sat, 26 Mar 2022 02:17:12 +0000 (10:17 +0800)]
Fix compiler warning in x-dnd.el

* lisp/x-dnd.el (x-dnd-xdnd-to-action): Move declaration
earlier.

2 years agoAvoid ClientMessage overhead when dragging stuff to other frames
Po Lu [Sat, 26 Mar 2022 02:15:53 +0000 (10:15 +0800)]
Avoid ClientMessage overhead when dragging stuff to other frames

* lisp/dired.el (dired-mouse-drag): Handle correctly dragging
from dired buffers in nonselected windows.
* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Understand new
client message type.
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave): Ignore if window is the top window of a
frame.
(x_dnd_send_drop): Send special DND event in that case.

2 years agoFix minor issues with dired-mouse-drag-files
Po Lu [Sat, 26 Mar 2022 00:45:08 +0000 (08:45 +0800)]
Fix minor issues with dired-mouse-drag-files

* lisp/dired.el (dired-mouse-drag-files): Update doc string and
add setter.
(dired-insert-set-properties): Don't insert misleading tooltip
if feature is not available.

2 years ago; * lisp/gnus/nnselect.el (nnselect-get-artlist): Fix last change.
Andrew G Cohen [Fri, 25 Mar 2022 22:58:23 +0000 (06:58 +0800)]
; * lisp/gnus/nnselect.el (nnselect-get-artlist): Fix last change.

2 years ago; Restore regexp-quote for gnus subject match
Andrew G Cohen [Fri, 25 Mar 2022 08:06:34 +0000 (16:06 +0800)]
; Restore regexp-quote for gnus subject match

* lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread): Restore
regexp-quote that was inadvertently dropped in commit 2021-12-21 "Fix
gnus subject matching when subject is empty".

2 years agoFix eshell-explicit-command-char doc string typo
Lars Ingebrigtsen [Fri, 25 Mar 2022 18:01:51 +0000 (19:01 +0100)]
Fix eshell-explicit-command-char doc string typo

* lisp/eshell/esh-ext.el (eshell-explicit-command-char): Fix typo
in doc string (bug#54567).

2 years agoFix (bounds-of-thing-at-point 'number)
Lars Ingebrigtsen [Fri, 25 Mar 2022 16:32:40 +0000 (17:32 +0100)]
Fix (bounds-of-thing-at-point 'number)

* lisp/thingatpt.el (number): Make (bounds-of-thing-at-point
'number) work (bug#54555).

2 years agoFix reporting of read error line/columns in the init file
Lars Ingebrigtsen [Fri, 25 Mar 2022 16:20:35 +0000 (17:20 +0100)]
Fix reporting of read error line/columns in the init file

* src/lread.c (invalid_syntax_lisp): The comments here said that
we were supposed to be called with point in the readcharfun
buffer.  This was not the case (at least) when reading the Emacs
init file, so the reported line/column was always wrong (1 and 0,
respectively) (bug#54550).

2 years agoImprove pp-last-sexp ergonomics
Lars Ingebrigtsen [Fri, 25 Mar 2022 15:44:01 +0000 (16:44 +0100)]
Improve pp-last-sexp ergonomics

* lisp/emacs-lisp/pp.el (pp-last-sexp): Ignore ,@?
before a sexp, because eval-ing that will always lead to an error
(bug#54537).

2 years agoImplement new drag and drop parameter on Haiku
Po Lu [Fri, 25 Mar 2022 13:41:30 +0000 (13:41 +0000)]
Implement new drag and drop parameter on Haiku

* lisp/term/haiku-win.el (x-begin-drag): Implement
`allow-current-frame'.
* src/haiku_support.cc (be_drag_message): New argument
`allow_same_view'.
* src/haiku_support.h: Update prototypes.
* src/haikuselect.c (Fhaiku_drag_message): New parameter
`allow-same-frame'.

2 years agoAllow dragging files from dired to windows on the same frame
Po Lu [Fri, 25 Mar 2022 13:24:03 +0000 (21:24 +0800)]
Allow dragging files from dired to windows on the same frame

* doc/lispref/frames.texi (Drag and Drop): Document new
parameter to `x-begin-drag'.
* lisp/dired.el (dired-mouse-drag): Utilize new parameter.
* lisp/term/haiku-win.el (x-begin-drag): Add new parameter.
* src/xfns.c (Fx_begin_drag): New parameter
`allow-current-frame'.  Fix typo and update doc string.
* src/xterm.c (x_dnd_get_window_proto): Respect
`x_dnd_allow_current_frame'.
(x_dnd_begin_drag_and_drop): New parameter
`allow_current_frame'.
* src/xterm.h: Update prototypes.