summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix handling of '\\' inside double-quotes in EshellJim Porter2022-04-032-26/+29
| | | | | | | | | | | | | | 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.
* Ensure re-encoding after change in gnus-inews-do-gccJames Thomas2022-04-031-1/+2
| | | | | | * 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).
* Have global minor modes say so in the doc stringLars Ingebrigtsen2022-04-031-9/+11
| | | | | | | * 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.
* Implement `drag-source' values of `track-mouse' on PGTK.Po Lu2022-04-032-19/+39
| | | | | | | | * 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.
* Implement `drag-source' values of track-mouse on NSPo Lu2022-04-031-5/+16
| | | | | * src/nsterm.m (ns_mouse_position): Don't return frame when appropriate.
* Implement (sort of) `drag-source' on HaikuPo Lu2022-04-031-2/+8
| | | | | | * src/haikuterm.c (haiku_mouse_or_wdesc_frame) (haiku_mouse_position): Behave reasonably when track_mouse is Qdrag_source.
* Make dragging stuff to a window above a frame workPo Lu2022-04-036-35/+90
| | | | | | | | | | | | | | | * 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.
* Don't touch WAYLAND_DISPLAY in browse-urlPo Lu2022-04-031-1/+5
| | | | | * lisp/net/browse-url.el (browse-url): Don't touch WAYLAND_DISPLAY. (bug#53969)
* Look for DND proxies on the root window as wellPo Lu2022-04-031-2/+17
| | | | | * src/xterm.c (x_dnd_get_target_window): If nothing was found on the COW, look at the root window.
* Implement new DND features on GNUstepPo Lu2022-04-032-19/+53
| | | | | | | * 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.
* Implement new DND options on HaikuPo Lu2022-04-034-20/+40
| | | | | | | | | | * 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.
* Add user options to move point and scroll window during DNDPo Lu2022-04-034-8/+75
| | | | | | | | | | | | | | | * 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.
* Fix Motif drag-and-drop on servers without XI2Po Lu2022-04-031-1/+3
| | | | | * src/xterm.c (handle_one_xevent): Pass right flags to the receiver when handling drops for core button events.
* Fix incorrect usage of XM_DRAG_SIDE_EFFECTPo Lu2022-04-031-3/+6
| | | | | | * src/xterm.c (xm_send_top_level_leave_message) (handle_one_xevent): Pass corret alt side effects and flags to XM_DRAG_SIDE_EFFECT.
* ; Pacify obsoletion warnings in image-tests.el.Basil L. Contovounesios2022-04-021-3/+4
|
* Fix bootstrap errors after previous easy-mmode changeLars Ingebrigtsen2022-04-023-33/+32
| | | | | | | | * 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.
* Fix regression in tex alignmentLars Ingebrigtsen2022-04-021-3/+4
| | | | | * lisp/align.el (align-rules-list): Make alignment in tex mode work better again (bug#54663).
* em-extpipe: Catch eshell-incomplete thrown while parsingSean Whitton2022-04-022-4/+22
| | | | | | | | | | | | * 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).
* Add S-SPC key sequence to bookmark-bmenu-mode-mapAugust Feng2022-04-021-0/+1
| | | | | | | * lisp/bookmark.el (bookmark-bmenu-mode-map): Add an S-SPC binding for symmetry (bug#54672). Copyright-paperwork-exempt: yes
* Put the define-minor-mode boilerplate at the end of the doc stringsLars Ingebrigtsen2022-04-021-24/+42
| | | | | * lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Put the boilerplate at the end of the doc string.
* ; Improve documentation of 'font-lock-ignore'Eli Zaretskii2022-04-024-77/+100
| | | | | | | | * 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'.
* Further tweaks to cl--generic-describeLars Ingebrigtsen2022-04-021-1/+7
| | | | | * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Further tweak the look of the implementation output.
* * lisp/dired.el (dired-mouse-drag): Offer HOST_NAME as well.Po Lu2022-04-021-1/+1
|
* Fix crash when retrieving window property with invalid atom dataPo Lu2022-04-021-0/+2
| | | | | | | | 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.
* Compute size of structs with flexible arrays correctly in Motif DND codePo Lu2022-04-021-3/+8
| | | | | * src/xterm.c (xm_read_targets_table_rec, xm_setup_dnd_targets): Use FLEXSIZEOF instead of sizeof on struct xm_targets_table_rec.
* ; * src/sqlite.c: Fix up header comment.Po Lu2022-04-021-3/+3
|
* Fix error on mouse move over something not a window while dragging textPo Lu2022-04-021-11/+14
| | | | | * lisp/mouse.el (mouse-drag-and-drop-region): Handle non-window values of `posn-window' correctly.
* ; * lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): Fix type.Po Lu2022-04-021-1/+2
|
* Add new option `mouse-drag-and-drop-region-scroll-margin'Po Lu2022-04-022-0/+41
| | | | | | | | * 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.
* Implement DELETE selection target for cross program dragsPo Lu2022-04-022-81/+96
| | | | | | | * 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.
* Work around dynamic drag bugs in modern MotifPo Lu2022-04-021-6/+42
| | | | | | | | * 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'.
* Make Motif drag work on window managers that don't support client listsPo Lu2022-04-021-26/+134
| | | | | | | | | | * 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.
* * lisp/progmodes/xref.el (xref-search-program): Fix typo.Dmitry Gutov2022-04-021-1/+1
|
* Support ugrep in xref-search-program-alistManuel Uberti2022-04-021-1/+3
| | | | | | * lisp/progmodes/xref.el (xref-search-program-alist) (xref-search-program): Add entries for ugrep (bug#54608).
* kmacro: Represent it as an OClosureStefan Monnier2022-04-014-125/+146
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* ; gnus/nnselect must get headers from the right groupAndrew G Cohen2022-04-021-0/+1
| | | | | * lisp/gnus/nnselect.el (nnselect-retrieve-headers): Make sure we are in the right group. It might have been affected by another request.
* ; * etc/NEWS: Fix typos. Reported by "T.V Raman" <raman@google.com>.Eli Zaretskii2022-04-011-4/+4
|
* New user option 'font-lock-ignore'Augusto Stoffel2022-04-013-4/+171
| | | | | | | | * 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'.
* cl-generic: Rework obsolescence checks for defmethodStefan Monnier2022-04-012-18/+15
| | | | | | | | | * 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`.
* Better check for when clipboard or primary selection have changedIgnacio2022-04-013-32/+87
| | | | | | | | | | | | | | 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.
* OClosure: Add support for defmethod dispatchStefan Monnier2022-04-014-18/+73
| | | | | | | | | | | | | | | | | | | | * 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.
* Implement the Motif drag protocolPo Lu2022-04-011-61/+556
| | | | | | | | | | | | | | | | | | | * 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.
* Update modus-themes to their version 2.3.0Protesilaos Stavrou2022-04-014-365/+757
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* More robust checks for directory buffers in image-modeMichael Albinus2022-04-011-2/+5
| | | | | * lisp/image-mode.el (image-mode--directory-buffers): Apply more robust checks for directory buffers. (Bug#54606)
* Only read 16 bytes of motif drag receiver infoPo Lu2022-04-011-3/+3
| | | | | | * src/xterm.c (xm_drag_receiver_info): Only read 16 bytes of receiver info. (handle_one_xevent): Fix default XM drop action.
* Simplify Haiku drag-and-drop implementationPo Lu2022-04-014-5/+2
| | | | | | | | | | | * 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.
* Support Motif DND helpPo Lu2022-04-011-4/+27
| | | | | | | | * 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.
* ; * src/xterm.c: Update commentary.Po Lu2022-04-011-1/+38
|
* Make dropping files on Motif programs workPo Lu2022-04-012-5/+17
| | | | | | | | | * 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.
* Avoid extra sync if we didn't get the right wmstatePo Lu2022-04-011-17/+8
| | | | | | * src/xterm.c (x_dnd_get_wm_state_and_proto): Always set proto version. (x_dnd_get_target_window): Optimize accordingly.