]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years agoMerge from origin/emacs-28
Stefan Kangas [Sun, 27 Feb 2022 05:31:54 +0000 (06:31 +0100)]
Merge from origin/emacs-28

a50f8dec09 Follow OpenSSH changes in Tramp
e86eae21a9 Document better how to reset attributes of faces for new f...

3 years ago* commands.texi (Misc Events): Update description of wheel events.
Po Lu [Sun, 27 Feb 2022 03:44:06 +0000 (11:44 +0800)]
* commands.texi (Misc Events): Update description of wheel events.

3 years agoAdd project-ignore-buffer-conditions
Manuel Uberti [Wed, 23 Feb 2022 08:25:32 +0000 (09:25 +0100)]
Add project-ignore-buffer-conditions

* lisp/progmodes/project.el (project-ignore-buffer-conditions):
New defcustom.
(project--read-project-buffer):
Use it (bug#54100).

3 years ago* src/xterm.c (handle_one_xevent): Fix translation of button events.
Po Lu [Sun, 27 Feb 2022 02:49:19 +0000 (10:49 +0800)]
* src/xterm.c (handle_one_xevent): Fix translation of button events.

3 years agoFix Motif menu and menu bar dismissal on XI2
Po Lu [Sun, 27 Feb 2022 02:37:17 +0000 (10:37 +0800)]
Fix Motif menu and menu bar dismissal on XI2

* src/xmenu.c (x_activate_menubar): Improve ungrabbing logic on
XI2.
(server_timestamp_predicate): New function.
(create_and_show_popup_menu): If the display supports XI2, make
sure the timestamps are correct by dispatching a PropertyNotify
event to Xt.
* src/xterm.c (handle_one_xevent): Translate XI_ButtonRelease
events into core events before dispatching them to Xt.

3 years agoIgnore irrelevant button events on Haiku scroll bars
Po Lu [Sat, 26 Feb 2022 12:25:51 +0000 (12:25 +0000)]
Ignore irrelevant button events on Haiku scroll bars

* src/haiku_support.cc (MouseDown): Ignore if there are too many
buttons pressed.

3 years agoFollow OpenSSH changes in Tramp
Michael Albinus [Sat, 26 Feb 2022 11:51:26 +0000 (12:51 +0100)]
Follow OpenSSH changes in Tramp

* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
Reimplement.  OpenSSH has changed its diagnostics messages.

3 years agoDocument better how to reset attributes of faces for new frames
Eli Zaretskii [Sat, 26 Feb 2022 07:41:05 +0000 (09:41 +0200)]
Document better how to reset attributes of faces for new frames

* doc/lispref/display.texi (Attribute Functions):
* lisp/faces.el (set-face-attribute): Explain how to reset an
attribute's value for future frames.  (Bug#54156)

3 years agoPrevent crashes on event for removed scroll bar on Haiku
Po Lu [Sat, 26 Feb 2022 07:24:12 +0000 (07:24 +0000)]
Prevent crashes on event for removed scroll bar on Haiku

* src/haiku_support.cc (class EmacsScrollBar): Remove field
`scroll_bar'.
(ValueChanged, MouseDown, MouseUp, BScrollBar_make_for_view):
Adjust for changes.

* src/haiku_support.h (struct haiku_scroll_bar_value_event)
(struct haiku_scroll_bar_drag_event)
(struct haiku_scroll_bar_part_event): New field `window'.

* src/haikuterm.c (haiku_scroll_bar_from_widget): New function.
(haiku_read_socket): Adjust for changes in scroll bar event
structures.

3 years agoFix reporting of horizontal scroll bar buttons on Haiku
Po Lu [Sat, 26 Feb 2022 07:06:55 +0000 (07:06 +0000)]
Fix reporting of horizontal scroll bar buttons on Haiku

* haikuterm.c (haiku_read_socket): Use correct values for scroll
bar buttons when the scroll bar is horizontal.

3 years agoImprove scroll bar button handling on Haiku
Po Lu [Sat, 26 Feb 2022 06:56:31 +0000 (06:56 +0000)]
Improve scroll bar button handling on Haiku

* src/haiku_io.c (haiku_len): Add `SCROLL_BAR_PART_EVENT'.
* src/haiku_support.cc (class EmacsScrollBar): New fields
`dragging' and `current_state', along with `old_value' and
`current_part'.
(EmacsScrollBar): Set horizontal flag to `horizontal_p'.
(MessageReceived): Set old_value when receiving
SCROLL_BAR_UPDATE message.
(ValueChanged): Don't allow scroll bar values to change while
dragging.
(MouseUp, MouseDown): Calculate button under mouse and act
accordingly.
* src/haiku_support.h (enum haiku_event_type): New event
`SCROLL_BAR_PART_EVENT'.
(enum haiku_scroll_bar_part): New enumerator.
(struct haiku_scroll_bar_part_event): New struct.
* src/haikuterm.c (haiku_read_socket): Handle
SCROLL_BAR_PART_EVENTs.

3 years agoMerge from origin/emacs-28
Stefan Kangas [Sat, 26 Feb 2022 05:32:26 +0000 (06:32 +0100)]
Merge from origin/emacs-28

ded89ed3fa * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): ...

3 years ago* src/xterm.c (handle_one_xevent): Set user time for xwidgets as well.
Po Lu [Sat, 26 Feb 2022 00:54:36 +0000 (08:54 +0800)]
* src/xterm.c (handle_one_xevent): Set user time for xwidgets as well.

3 years agoDrop the visited file modtime check for remote xref hits
Dmitry Gutov [Sat, 26 Feb 2022 00:18:34 +0000 (02:18 +0200)]
Drop the visited file modtime check for remote xref hits

* lisp/progmodes/xref.el (xref--hits-remote-id): New variable.
(xref--convert-hits, xref--collect-matches)
(xref--find-file-buffer): Use it (bug#54025).

3 years agoRobustify merge-gnulib a bit
Paul Eggert [Fri, 25 Feb 2022 20:26:59 +0000 (12:26 -0800)]
Robustify merge-gnulib a bit

* admin/merge-gnulib: Fail if autogen.sh fails.
Remove autom4te.cache before running gnulib-tool.

3 years agoAdd new file ietf-drums-date.el
Bob Rogers [Fri, 25 Feb 2022 12:03:20 +0000 (13:03 +0100)]
Add new file ietf-drums-date.el

* lisp/mail/ietf-drums-date.el: parse-time-string replacement which is
compatible but can be made stricter if desired.
* test/lisp/mail/ietf-drums-date-tests.el (added): Add tests for
ietf-drums-parse-date-string.
* lisp/mail/ietf-drums.el (ietf-drums-parse-date): Use
ietf-drums-parse-date-string.

3 years agoImprove treatment of dropping mouse track state on Haiku
Po Lu [Fri, 25 Feb 2022 11:36:07 +0000 (11:36 +0000)]
Improve treatment of dropping mouse track state on Haiku

* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New function.
(haiku_read_socket): Use it to find the appropriate frame when
handling motion or button events.

3 years ago* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Adapt test.
Michael Albinus [Fri, 25 Feb 2022 09:11:40 +0000 (10:11 +0100)]
* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Adapt test.

3 years agoImprove tracking of modified regions on Haiku
Po Lu [Fri, 25 Feb 2022 08:05:11 +0000 (08:05 +0000)]
Improve tracking of modified regions on Haiku

* src/haiku_support.cc (class EmacsView): New field
`invalid_region'.
(FlipBuffers): Only invalidate that region.
(SetUpDoubleBuffering): Clear that region.
(BView_draw_lock): New parameters for denoting the region
to invalidate.
(BView_invalidate_region): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_set_background_color):
* src/haikumenu.c (digest_menu_items):
* src/haikuterm.c (haiku_clip_to_string):
(haiku_flip_buffers):
(haiku_clear_frame_area):
(haiku_clear_frame):
(haiku_draw_glyph_string):
(haiku_after_update_window_line):
(haiku_draw_window_cursor):
(haiku_draw_vertical_window_border):
(haiku_draw_window_divider):
(haiku_draw_fringe_bitmap):
(haiku_scroll_run):
(haiku_read_socket):
(haiku_flash):
(haiku_clear_under_internal_border): Mark appropriate region as
invalid before buffer flip.

3 years agoFix calculation of scroll deltas when coalescing wheel events
Po Lu [Fri, 25 Feb 2022 06:20:14 +0000 (14:20 +0800)]
Fix calculation of scroll deltas when coalescing wheel events

* src/xterm.c (handle_one_xevent): Use accumulated values
instead of raw delta to determine scroll amounts.

3 years agoMake interpolated scrolling work above non-selected windows
Po Lu [Fri, 25 Feb 2022 06:15:51 +0000 (14:15 +0800)]
Make interpolated scrolling work above non-selected windows

* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
parameter `old-window'.
(pixel-scroll-precision): Pass originally selected window to the
interpolation function.

3 years agoMerge from origin/emacs-28
Stefan Kangas [Fri, 25 Feb 2022 05:30:57 +0000 (06:30 +0100)]
Merge from origin/emacs-28

5c77aed2d6 Mention flyspell-prog-mode in flyspell-mode doc string

3 years agoFix Eshell process tests to (hopefully) work on all platforms
Jim Porter [Fri, 25 Feb 2022 02:18:27 +0000 (03:18 +0100)]
Fix Eshell process tests to (hopefully) work on all platforms

* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline):
Fix test (bug#54136).

3 years agoxref--find-file-buffer: Check modified-p and modtime
Dmitry Gutov [Fri, 25 Feb 2022 01:34:59 +0000 (03:34 +0200)]
xref--find-file-buffer: Check modified-p and modtime

* lisp/progmodes/xref.el (xref--find-file-buffer):
Check whether the buffer contents match what's on disk
(bug#54025).

3 years agoSet user time when receiving any wheel events
Po Lu [Fri, 25 Feb 2022 00:40:51 +0000 (08:40 +0800)]
Set user time when receiving any wheel events

* src/xterm.c (handle_one_xevent): Set user time if the mouse
wheel moved.

3 years agoFix esh-proc-tests on MS-Windows
Eli Zaretskii [Thu, 24 Feb 2022 20:02:28 +0000 (22:02 +0200)]
Fix esh-proc-tests on MS-Windows

* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
(esh-proc-test/kill-background-process): Fix tests on MS-Windows.

3 years agoMake 't' in Buffer-menu be more defensive
Eli Zaretskii [Thu, 24 Feb 2022 19:57:34 +0000 (21:57 +0200)]
Make 't' in Buffer-menu be more defensive

* lisp/buff-menu.el (Buffer-menu-visit-tags-table): Verify that
the buffer holds a tags-table file before using it as such.
(Bug#54133)

3 years ago* admin/merge-gnulib: fix bare checkout (Bug#32452#65)
Paul Eggert [Thu, 24 Feb 2022 18:12:50 +0000 (10:12 -0800)]
* admin/merge-gnulib: fix bare checkout (Bug#32452#65)

3 years agoAmend byte-run-strip-symbol-positions so that an unexec build builds
Alan Mackenzie [Thu, 24 Feb 2022 17:30:39 +0000 (17:30 +0000)]
Amend byte-run-strip-symbol-positions so that an unexec build builds

This fixes bug #54098.

* lisp/emacs-lisp/byte-run.el (byte-run--strip-list)
(byte-run--strip-vector/record): New functions.  These alter a list or
vector/record structure only where a symbol with position gets replaced by a
bare symbol.
(byte-run-strip-symbol-positions): Reformulate to use the two new functions.
(function-put): No longer strip positions from the second and third arguments.

* lisp/emacs-lisp/bytecomp.el (byte-compile-out): Remove the senseless
"stripping" of putative symbol positions from OPERAND, which is nil or a
number.

3 years agoFix symlinks in tramp-sshfs.el (Bug#54130)
Michael Albinus [Thu, 24 Feb 2022 15:11:01 +0000 (16:11 +0100)]
Fix symlinks in tramp-sshfs.el  (Bug#54130)

* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
Add "-o transform_symlinks" to `tramp-mount-args'.
(tramp-sshfs-file-name-handler-alist):
Use `tramp-sshfs-handle-file-writable-p'.
(tramp-sshfs-handle-file-writable-p): New defun.  (Bug#54130)

* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
(tramp-test20-file-modes): Adapt tests.

3 years agoCheck if WM support for NET_WM_USER_TIME_WINDOW changed during updates
Po Lu [Thu, 24 Feb 2022 12:01:39 +0000 (20:01 +0800)]
Check if WM support for NET_WM_USER_TIME_WINDOW changed during updates

* src/xterm.c (x_display_set_last_user_time): Update the user
time window if window manager support changed.

* src/xterm.h (struct x_display_info): New field
`last_user_check_time'.

3 years ago; * etc/NEWS: Fix wording of a recently added NEWS entry.
Eli Zaretskii [Thu, 24 Feb 2022 11:07:16 +0000 (13:07 +0200)]
; * etc/NEWS: Fix wording of a recently added NEWS entry.

3 years agoDon't superfluously emit prompts when terminating processes in Eshell
Jim Porter [Thu, 24 Feb 2022 04:43:38 +0000 (20:43 -0800)]
Don't superfluously emit prompts when terminating processes in Eshell

* lisp/eshell/esh-proc.el (eshell-kill-process-function): Only reset
the prompt if PROC is writing to the terminal.
(eshell-sentinel): Only write the exit message if PROC is writing to
the terminal (bug#54136).

* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
(esh-proc-test/kill-pipeline-head)
(esh-proc-test/kill-background-process): New tests.

3 years agoMention flyspell-prog-mode in flyspell-mode doc string
Lars Ingebrigtsen [Thu, 24 Feb 2022 09:10:40 +0000 (10:10 +0100)]
Mention flyspell-prog-mode in flyspell-mode doc string

* lisp/textmodes/flyspell.el (flyspell-mode): Mention
flyspell-prog-mode (bug#54131).

3 years agoMerge from origin/emacs-28
Stefan Kangas [Thu, 24 Feb 2022 05:30:36 +0000 (06:30 +0100)]
Merge from origin/emacs-28

5942504391 Reword face-remap-add-relative manual entry

3 years agoSet border colors through the toolkit
Po Lu [Thu, 24 Feb 2022 03:58:41 +0000 (11:58 +0800)]
Set border colors through the toolkit

* src/xfns.c (x_set_border_pixel): Set colors through Xt to
avoid some problems.

3 years agoFix auto-lower when the mouse moves onto a scrollbar on Haiku
Po Lu [Thu, 24 Feb 2022 03:35:25 +0000 (03:35 +0000)]
Fix auto-lower when the mouse moves onto a scrollbar on Haiku

* src/haiku_support.cc (MouseMoved):
(BView_inside_scroll_bar): New functions.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Don't auto-lower if the
pointer left the view for a scroll bar.

3 years agoAdd support for _NET_WM_STATE_SHADED
Po Lu [Thu, 24 Feb 2022 01:38:37 +0000 (09:38 +0800)]
Add support for _NET_WM_STATE_SHADED

* doc/lispref/frames.texi (Management Parameters): Document new
frame parameter `shaded'.
* etc/NEWS: Announce new frame parameter.

* src/frame.c (frame_parms) [HAVE_X_WINDOWS]: New frame
parameter `shaded'.
(syms_of_frame): New symbol `shaded'.
* src/xfns.c (x_frame_parm_handlers): Install handler
`x_set_shaded'.
* src/xterm.c (x_set_shaded): New frame parameter handler.
(x_get_current_wm_state): New parameter `shaded'.  All callers
changed.
(x_net_wm_state):
(x_handle_net_wm_state): Handle shaded state.
(x_term_init): Intern new atom `shaded'.
* src/xterm.h: Update prototypes.

3 years agoCondition out things specific to some versions of the input extension
Po Lu [Thu, 24 Feb 2022 01:11:53 +0000 (09:11 +0800)]
Condition out things specific to some versions of the input extension

* src/xterm.c (x_free_xi_devices, x_init_master_valuators)
(handle_one_xevent): Condition out code that isn't supposed to
be run on the current input extension version.
* src/xterm.h (struct xi_scroll_valuator_t): Make conditional on
HAVE_XINPUT2_1.
(struct xi_touch_point_t): Make conditional on HAVE_XINPUT2_2.
(struct xi_device_t): Make individual fields conditional on the
appropriate client-side input extension version.

3 years agoFix the MS-DOS port
Po Lu [Thu, 24 Feb 2022 00:43:09 +0000 (08:43 +0800)]
Fix the MS-DOS port

* msdos/sedlibmk.inp:
* src/conf_post.h [MSDOS]: Update for recent gnulib.

3 years agoPacify gcc -Wanalyzer-null-dereference
Paul Eggert [Wed, 23 Feb 2022 20:30:33 +0000 (12:30 -0800)]
Pacify gcc -Wanalyzer-null-dereference

* src/xdisp.c (normal_char_ascent_descent): Pacify GCC 11.2.1
20220127 (Red Hat 11.2.1-9) x86-64 -Wanalyzer-null-dereference.

3 years agoFix auth-sources defcustom
Mauro Aranda [Wed, 23 Feb 2022 20:05:08 +0000 (21:05 +0100)]
Fix auth-sources defcustom

* lisp/auth-source.el (auth-sources): The extra attributes should be
in a plist, so inline both :host and :port.  Also, give a valid
default value for the choice (bug#54127).

3 years agoPort pre-commit hook to Git 2.35.0
Paul Eggert [Wed, 23 Feb 2022 19:29:56 +0000 (11:29 -0800)]
Port pre-commit hook to Git 2.35.0

* build-aux/git-hooks/pre-commit: Use LC_ALL=C grep -E instead of
sane_egrep (removed in Git 2.35.0).

3 years agoPort to current Gnulib some more
Paul Eggert [Wed, 23 Feb 2022 19:23:05 +0000 (11:23 -0800)]
Port to current Gnulib some more

* admin/merge-gnulib: Remove lib/stdio-read.c and lib/stdio-write.c,
as Emacs doesn’t need these new Gnulib files.

3 years agoUpdate from Gnulib by running admin/merge-gnulib
Paul Eggert [Wed, 23 Feb 2022 19:11:52 +0000 (11:11 -0800)]
Update from Gnulib by running admin/merge-gnulib

3 years agoPort to current Gnulib
Paul Eggert [Wed, 23 Feb 2022 18:52:27 +0000 (10:52 -0800)]
Port to current Gnulib

* configure.ac (AM_COND_IF): New macro, needed because Gnulib
normally assumes Automake and now uses this Automake macro.
Problem reported by Lars Ingebrigtsen (Bug#32452#47).

3 years ago* lisp/tab-bar.el: Create new unique windows with 'C-x t n' (bug#54038).
Juri Linkov [Wed, 23 Feb 2022 17:58:33 +0000 (19:58 +0200)]
* lisp/tab-bar.el: Create new unique windows with 'C-x t n' (bug#54038).

* lisp/tab-bar.el (tab-bar-new-tab-choice): Replace the value 'nil'
with explicit 'clone'.
(tab-bar-move-window-to-tab): Ignore possible side/atom window
parameters with ignore-window-parameters while deleting window.
(tab-bar-new-tab-to): When 'tab-bar-new-tab-choice' is 'clone',
create new unique windows with the same layout using window-state-get
and window-state-put.  Do the same after deleting other windows
when 'tab-bar-new-tab-choice' is 'window'.
(tab-bar-duplicate-tab): Replace the value 'nil' with 'clone' for
'tab-bar-new-tab-choice'.

3 years agoExpand commentary in xterm.c
Po Lu [Wed, 23 Feb 2022 13:51:31 +0000 (21:51 +0800)]
Expand commentary in xterm.c

* src/xterm.c: Expand commentary to include sections on optional
features and toolkit support.

3 years ago; * src/xterm.c: Minor fixes of the commentary.
Eli Zaretskii [Wed, 23 Feb 2022 13:07:59 +0000 (15:07 +0200)]
; * src/xterm.c: Minor fixes of the commentary.

3 years agoUpdate modus-themes to version 2.2.0
Protesilaos Stavrou [Wed, 23 Feb 2022 07:42:40 +0000 (09:42 +0200)]
Update modus-themes to version 2.2.0

* doc/misc/modus-themes.org (Enable and load)
(Differences between loading and enabling): Clarify wording.
(Customization Options): Update sample configuration.
(Option for completion framework aesthetics): Refactor
'modus-themes-completions' to accept an alist value instead of a
symbol.
(Override colors): Elaborate on the example.
(Toggle themes without reloading them): Document sample command that
uses 'enable-theme' instead of 'load-theme'.
(Acknowledgements): Update names of contributors to ideas.
* etc/themes/modus-themes.el (modus-themes-operandi-colors)
(modus-themes-vivendi-colors): Tweak the palette's completion-related
background colors.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected): Deprecate faces and replace
them with 'modus-themes-completion-selection'.
(modus-themes-completion-key-binding): Rename it to
'modus-themes-key-binding'.
(modus-themes-mode-line): Remove faulty default value.
(modus-themes-completions): Refactor it to accept an alist value.
(modus-themes-box-buttons): Fix typo.
(modus-themes--standard-completions, modus-themes--extra-completions)
(modus-themes--extra-completions-line): Remove outdated private
functions.
(modus-themes--completion): Add new private function.
(modus-themes-faces): Update faces.

* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump file's version.

For a detailed change log, read:
<https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>.

3 years agoIgnore 'eshell-broken-pipe' error in 'eshell-sentinel'
Jim Porter [Mon, 21 Feb 2022 20:14:34 +0000 (12:14 -0800)]
Ignore 'eshell-broken-pipe' error in 'eshell-sentinel'

This can happen if 'eshell-sentinel' tries to write output to another
process, but that process has already terminated.

* lisp/eshell/esh-proc.el (eshell-sentinel): Use 'ignore-error'
instead of 'unwind-protect'.

3 years agoReword face-remap-add-relative manual entry
Lars Ingebrigtsen [Wed, 23 Feb 2022 11:58:37 +0000 (12:58 +0100)]
Reword face-remap-add-relative manual entry

* doc/lispref/display.texi (Face Remapping): Clarify the
face-remap-add-relative (bug#54114).

3 years agoMake face-remap-set-base work with a single face again
Lars Ingebrigtsen [Wed, 23 Feb 2022 11:50:07 +0000 (12:50 +0100)]
Make face-remap-set-base work with a single face again

* lisp/face-remap.el (face-remap-set-base): Fix regression
introduced by cece37cf09de9 (bug#46973).

3 years ago* src/xterm.c (x_term_init): Catch some errors from defective X servers.
Po Lu [Wed, 23 Feb 2022 10:11:29 +0000 (18:11 +0800)]
* src/xterm.c (x_term_init): Catch some errors from defective X servers.

3 years agoImprove input extension version checks on GTK 3
Po Lu [Wed, 23 Feb 2022 07:13:23 +0000 (15:13 +0800)]
Improve input extension version checks on GTK 3

* src/xterm.c (x_term_init): If newer versions of XInput 2 don't
work, then look for an older one.

3 years agoMerge from origin/emacs-28
Stefan Kangas [Wed, 23 Feb 2022 05:36:45 +0000 (06:36 +0100)]
Merge from origin/emacs-28

3dfc8bff15 Fix indexing of module functions that return enumeration t...
86c0d9eb5f * doc/misc/transient.texi (Other Options): Fix a @ref.  (B...
3b5e29eaa3 tramp.texi texinfo 4.13 compatibility
5edb9572ec Explain "Tramp" spelling in its manual

3 years agoFix display corruption with background alpha set on unsupported display
Po Lu [Wed, 23 Feb 2022 05:13:19 +0000 (13:13 +0800)]
Fix display corruption with background alpha set on unsupported display

* src/xfns.c (x_set_alpha_background): Make opaque if display
doesn't support the required features.

3 years ago(add-hook): Fix regression
Stefan Monnier [Wed, 23 Feb 2022 03:52:40 +0000 (22:52 -0500)]
(add-hook): Fix regression

* lisp/subr.el (add-hook): When the hook has no local part yet, don't
set `local` to t, so we set the right part of the depth-sym.
(remove-hook): Don't modify the depth alist by side-effect since I'm
not completely sure it's safe.

3 years ago* src/xterm.c: Expand commentary.
Po Lu [Wed, 23 Feb 2022 03:40:11 +0000 (11:40 +0800)]
* src/xterm.c: Expand commentary.

3 years agoUnbreak project switcher when inside *xref* buffer
Dmitry Gutov [Wed, 23 Feb 2022 01:53:05 +0000 (03:53 +0200)]
Unbreak project switcher when inside *xref* buffer

* lisp/progmodes/xref.el (xref--ensure-default-directory):
New function.
(xref--show-xref-buffer, xref-show-definitions-buffer-at-bottom):
Use it (bug#53626).

3 years ago* src/xterm.c (x_term_init): Don't catch errors too many times.
Po Lu [Wed, 23 Feb 2022 00:58:06 +0000 (08:58 +0800)]
* src/xterm.c (x_term_init): Don't catch errors too many times.

3 years agoFix X errors caused by GTK using newer versions of XI2 than Emacs
Po Lu [Wed, 23 Feb 2022 00:56:06 +0000 (08:56 +0800)]
Fix X errors caused by GTK using newer versions of XI2 than Emacs

* src/xterm.c (x_term_init): Handle errors from XIQueryVersion
caused by Emacs requesting versions of XI2 older than 2.2 and
what GTK requested.

3 years agoFix indexing of module functions that return enumeration types.
Philipp Stephani [Tue, 22 Feb 2022 20:39:32 +0000 (21:39 +0100)]
Fix indexing of module functions that return enumeration types.

Return types that consist of more than one word need to be enclosed in
braces, see Info node `(texinfo) Typed Functions'.  Otherwise they are
indexed incorrectly.

* doc/lispref/internals.texi (Module Misc, Module Nonlocal): Enclose
multi-word return types in braces.

3 years agoEnable "Revert Buffer" if file has different writability
Lars Ingebrigtsen [Tue, 22 Feb 2022 14:44:14 +0000 (15:44 +0100)]
Enable "Revert Buffer" if file has different writability

* lisp/menu-bar.el (menu-bar-file-menu): Enable "Revert Buffer" if
the file has different writability than the buffer (bug#17148).

3 years ago(add-hook, remove-hook): Fix leaks (bug#48666)
Stefan Monnier [Tue, 22 Feb 2022 15:18:43 +0000 (10:18 -0500)]
(add-hook, remove-hook): Fix leaks (bug#48666)

* lisp/subr.el (add-hook, remove-hook): Rewrite the hook depth
management so we only keep the info relevant to functions present on
the hook.

3 years ago* doc/misc/transient.texi (Other Options): Fix a @ref. (Bug#54108)
Eli Zaretskii [Tue, 22 Feb 2022 14:37:22 +0000 (16:37 +0200)]
* doc/misc/transient.texi (Other Options): Fix a @ref.  (Bug#54108)

3 years ago; * doc/lispref/modes.texi (Tabulated List Mode): Fix @xref.
Eli Zaretskii [Tue, 22 Feb 2022 14:32:49 +0000 (16:32 +0200)]
; * doc/lispref/modes.texi (Tabulated List Mode): Fix @xref.

3 years agoImprove ruler-mode dragging
Andrea Rossetti [Tue, 22 Feb 2022 14:22:50 +0000 (15:22 +0100)]
Improve ruler-mode dragging

* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column)
(ruler-mode-mouse-add-tab-stop, ruler-mode-mouse-del-tab-stop):
Adjust callers.

* lisp/ruler-mode.el (ruler-mode-window-col): Fix dragging when
stepping outside the header line (bug#17788).

Copyright-paperwork-exempt: yes

3 years agotramp.texi texinfo 4.13 compatibility
Glenn Morris [Tue, 22 Feb 2022 14:08:07 +0000 (14:08 +0000)]
tramp.texi texinfo 4.13 compatibility

* doc/misc/tramp.texi (Frequently Asked Questions):
Restore compatibility with Texinfo < 5.

3 years agoMake outline-blank-line into defcustom
Jeff Norden [Tue, 22 Feb 2022 13:51:47 +0000 (14:51 +0100)]
Make outline-blank-line into defcustom

* lisp/outline.el (outline-blank-line): Make into defcustom
(bug#54095).

Copyright-paperwork-exempt: yes

3 years agoExplain "Tramp" spelling in its manual
Michael Albinus [Tue, 22 Feb 2022 13:45:59 +0000 (14:45 +0100)]
Explain "Tramp" spelling in its manual

* doc/misc/tramp.texi (Frequently Asked Questions):
Explain "Tramp" spelling.

3 years agoDon't signal an error on re-builder startup with rx syntax
Lars Ingebrigtsen [Tue, 22 Feb 2022 13:43:35 +0000 (14:43 +0100)]
Don't signal an error on re-builder startup with rx syntax

* lisp/emacs-lisp/re-builder.el (reb-initialize-buffer): Make
startup with rx syntax not signal an error (bug#54107).

3 years ago; * src/xterm.h: Fix typo in recent change.
Po Lu [Tue, 22 Feb 2022 11:17:41 +0000 (19:17 +0800)]
; * src/xterm.h: Fix typo in recent change.

3 years agoFix build on glibc <2.10
Po Lu [Tue, 22 Feb 2022 11:13:01 +0000 (19:13 +0800)]
Fix build on glibc <2.10

* src/alloc.c (Fmalloc_info): Only enable if glibc supports
malloc_info.
(syms_of_alloc): Likewise.

3 years agoMerge remote-tracking branch 'origin/master'
Po Lu [Tue, 22 Feb 2022 10:47:49 +0000 (18:47 +0800)]
Merge remote-tracking branch 'origin/master'

3 years agoFix GTK build with GLib <2.44
Po Lu [Tue, 22 Feb 2022 10:46:12 +0000 (18:46 +0800)]
Fix GTK build with GLib <2.44

* src/gtkutil.c (struct _EmacsMenuBar, EmacsMenuBar): New
structs.
(emacs_menu_bar_get_type): New function declaration.

* src/gtkutil.c: Remove declaration of EmacsMenuBar class.

3 years agoImprove XInput2 version checking
Po Lu [Tue, 22 Feb 2022 10:41:28 +0000 (18:41 +0800)]
Improve XInput2 version checking

* configure.ac: Check for various important structures from all
versions of libXi.

* src/xfns.c (setup_xi_event_mask):
* src/xwidget.c (x_draw_xwidget_glyph_string):
* src/xterm.c (x_init_master_valuators, handle_one_xevent)
(x_term_init): Replace XI version checks based on protocol
headers with new constants.

* src/xterm.h (HAVE_XINPUT2_1, HAVE_XINPUT2_2, HAVE_XINPUT2_3)
(HAVE_XINPUT2_4): New definitions.

3 years ago* test/lisp/net/tramp-tests.el (tramp--test-check-files): Adapt test.
Michael Albinus [Tue, 22 Feb 2022 07:50:17 +0000 (08:50 +0100)]
* test/lisp/net/tramp-tests.el (tramp--test-check-files): Adapt test.

3 years agoFix duplicate wheel events on XI2
Po Lu [Tue, 22 Feb 2022 06:10:29 +0000 (14:10 +0800)]
Fix duplicate wheel events on XI2

* src/xterm.c (handle_one_xevent): Don't generate wheel events
on XI_ButtonPress.

3 years agoAlways send wheel events on XI2
Po Lu [Tue, 22 Feb 2022 06:01:31 +0000 (14:01 +0800)]
Always send wheel events on XI2

* src/xterm.c (handle_one_xevent): Send emulated button events
as wheel events when handling XI2 button events.

3 years agoMerge from origin/emacs-28
Stefan Kangas [Tue, 22 Feb 2022 05:30:59 +0000 (06:30 +0100)]
Merge from origin/emacs-28

666e40a109 Fix 'display-line-numbers-mode' in hide-show buffers
68d134cf0f Don't check whether a deleted window is deletable (Bug#54028)
b38223a844 A friendlier error message from image-mode in an empty buffer
b7a651ba37 Update to Org 9.5.2-17-gea6b74
3a8c3f7abd ; Don't reference obsolete variables in edebug.el

3 years agoImprove momentum pixel scrolling on a non-selected window
Po Lu [Tue, 22 Feb 2022 03:35:27 +0000 (11:35 +0800)]
Improve momentum pixel scrolling on a non-selected window

* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): New
argument `window'.
(pixel-scroll-start-momentum): Don't select the window under
the event when calculating velocity or redisplaying.

3 years agoDon't generate multibyte keystroke events if there is no actual text
Po Lu [Tue, 22 Feb 2022 02:38:53 +0000 (10:38 +0800)]
Don't generate multibyte keystroke events if there is no actual text

* src/xterm.c (handle_one_xevent): Don't generate
MULTIBYTE_CHAR_KEYSTROKE_EVENTs if nbytes is zero.

3 years agoAdd links to the vtable manual
Lars Ingebrigtsen [Tue, 22 Feb 2022 02:32:52 +0000 (03:32 +0100)]
Add links to the vtable manual

* doc/lispref/modes.texi (Tabulated List Mode): Mention vtables.
* lisp/info-look.el (lambda): Link to vtables.

3 years agoRemove the ELPA dependencies from test/Makefile.in
Lars Ingebrigtsen [Tue, 22 Feb 2022 02:18:13 +0000 (03:18 +0100)]
Remove the ELPA dependencies from test/Makefile.in

* test/Makefile.in: Remove the ELPA dependencies, because it's
pretty confusing when trying to debug things.

* test/README (SELECTOR): Remove mention of the now-removed
GNU_ELPA_DIRECTORY variable.

* test/lisp/net/ntlm-tests.el (push): Add the ELPA dependencies
here, which keeps it contained to one test file.  This also fixes
bug#53586, since the obsoletion of `body' came from web-server.el.

3 years agoDon't pass invalid keyboard modifiers to the event loop on Haiku
Po Lu [Tue, 22 Feb 2022 01:33:56 +0000 (01:33 +0000)]
Don't pass invalid keyboard modifiers to the event loop on Haiku

* src/haikuterm.c (haiku_read_socket): Ensure validity of extra
keyboard modifiers.

3 years ago* lisp/vc/diff-mode.el (diff--font-lock-prettify): Recognize mode changes
Stefan Monnier [Mon, 21 Feb 2022 23:53:05 +0000 (18:53 -0500)]
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Recognize mode changes

3 years ago* lisp/vc/diff-mode.el (diff--font-lock-prettify): bug#54034
Stefan Monnier [Mon, 21 Feb 2022 22:22:38 +0000 (17:22 -0500)]
* lisp/vc/diff-mode.el (diff--font-lock-prettify): bug#54034

Handle Git's output when deleting and creating empty files, as well as
when the diff is not shown because the file is considered as binary.

3 years agoFix 'display-line-numbers-mode' in hide-show buffers
Eli Zaretskii [Mon, 21 Feb 2022 20:12:57 +0000 (22:12 +0200)]
Fix 'display-line-numbers-mode' in hide-show buffers

* src/xdisp.c (redisplay_internal): Disable redisplay
optimizations that consider just the current line, when
'display-line-numbers-mode' is turned on in the buffer.
(Bug#54091)

3 years agoImprove vtable :keymap handling
Lars Ingebrigtsen [Mon, 21 Feb 2022 18:19:55 +0000 (19:19 +0100)]
Improve vtable :keymap handling

* lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap):
Don't alter keymaps passed in, and respect parent keymaps.

3 years agoSend SIGPIPE to external Eshell processes if their output target closes
Jim Porter [Wed, 2 Feb 2022 03:16:00 +0000 (19:16 -0800)]
Send SIGPIPE to external Eshell processes if their output target closes

* lisp/eshell/esh-io.el (eshell-pipe-broken): New error.
(eshell-output-object-to-target): Signal 'eshell-pipe-broken' if the
target is an exited/signaled process.

* lisp/eshell/esh-proc.el (eshell-insertion-filter): Handle
'eshell-pipe-broken'.

* test/lisp/eshell/esh-proc-tests.el: New test.

3 years agoEnsure 'eshell-output-object' always returns nil for consistency
Jim Porter [Thu, 20 Jan 2022 05:57:38 +0000 (21:57 -0800)]
Ensure 'eshell-output-object' always returns nil for consistency

This prevents functions like 'eshell-print' from writing doubled
output when run in Eshell.  Previously, the result would be:

  ~ $ eshell-print hi
  hihi

* lisp/eshell/esh-io.el (eshell-output-object): Always return nil.

3 years agoImprove docstrings for 'eshell-exec-lisp' and functions that call it
Jim Porter [Fri, 14 Jan 2022 02:58:50 +0000 (18:58 -0800)]
Improve docstrings for 'eshell-exec-lisp' and functions that call it

* lisp/eshell/esh-cmd.el (eshell-exec-lisp, eshell-apply*)
(eshell-funcall*, eshell-eval*, eshell-apply, eshell-eval)
(eshell-funcall, eshell-applyn, eshell-funcalln, eshell-evaln):
Improve docstrings.

3 years ago; * lisp/eshell/esh-io.el (grep-null-device): Remove unused defvar.
Jim Porter [Sun, 30 Jan 2022 01:28:23 +0000 (17:28 -0800)]
; * lisp/eshell/esh-io.el (grep-null-device): Remove unused defvar.

3 years agoRevert "Remove PROBLEMS section on double-buffering"
Eli Zaretskii [Mon, 21 Feb 2022 17:01:14 +0000 (19:01 +0200)]
Revert "Remove PROBLEMS section on double-buffering"

This reverts commit 366b2bc757d011f96693bd219877c5aa42fa3359.

We cannot be sure this problem is no longer relevant, since
its root cause was in software we don't control, and cannot
tell whether any of the versions where that problem happened
are still out in the wild.

3 years agoClarify Special Isearch slightly
Lars Ingebrigtsen [Mon, 21 Feb 2022 16:16:44 +0000 (17:16 +0100)]
Clarify Special Isearch slightly

* doc/emacs/search.texi (Special Isearch): Clarify slightly
(bug#19924).  (All the keys in this node is about what happens
during isearch, but that information is quite a ways away at this
point, so it doesn't hurt to repeat that info.)

3 years agoRemove PROBLEMS section on double-buffering
Lars Ingebrigtsen [Mon, 21 Feb 2022 16:04:01 +0000 (17:04 +0100)]
Remove PROBLEMS section on double-buffering

* etc/PROBLEMS: Remove section on problems with double-buffering,
as apparently it's now no longer an issue (bug#30088).

3 years agoMake 'ispell-change-dictionary' completion work better
Lars Ingebrigtsen [Mon, 21 Feb 2022 16:01:13 +0000 (17:01 +0100)]
Make 'ispell-change-dictionary' completion work better

* lisp/textmodes/ispell.el (ispell--aspell-found-dictionaries):
New variable (bug#24050).
(ispell-find-aspell-dictionaries): Save the list of actually
identified dictionary.
(ispell-valid-dictionary-list): Use it to filter out non-installed
dictionaries.

3 years agoDon't check whether a deleted window is deletable (Bug#54028)
Martin Rudalics [Mon, 21 Feb 2022 15:46:23 +0000 (16:46 +0100)]
Don't check whether a deleted window is deletable (Bug#54028)

* lisp/window.el (window-state-put): Make sure window is live
before calling 'window-deletable-p' on it (Bug#54028).

3 years agoMake `next-buffer' order reflect command line file order
Lars Ingebrigtsen [Mon, 21 Feb 2022 14:42:59 +0000 (15:42 +0100)]
Make `next-buffer' order reflect command line file order

* lisp/startup.el (command-line-1): Make `next-buffer' order
reflect the command line file order (bug#21505).