Po Lu [Tue, 22 Feb 2022 10:47:49 +0000 (18:47 +0800)]
Merge remote-tracking branch 'origin/master'
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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)
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.
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.
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.
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.
Jim Porter [Sun, 30 Jan 2022 01:28:23 +0000 (17:28 -0800)]
; * lisp/eshell/esh-io.el (grep-null-device): Remove unused defvar.
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.
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.)
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).
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.
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).
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).
Eli Zaretskii [Mon, 21 Feb 2022 12:51:37 +0000 (14:51 +0200)]
A friendlier error message from image-mode in an empty buffer
* lisp/image-mode.el (image-mode): Handle the case where the empty
buffer doesn't visit a file (Bug#54084)
Po Lu [Mon, 21 Feb 2022 11:40:28 +0000 (19:40 +0800)]
Try to fix bug#54051
* src/xterm.c (handle_one_xevent): Don't give obviously bogus
configure events to Xt.
Po Lu [Mon, 21 Feb 2022 07:42:01 +0000 (07:42 +0000)]
Prevent Haiku display from being opened multiple times
* src/haikufns.c (Fx_open_connection): Return if display
connection already exists.
Po Lu [Mon, 21 Feb 2022 06:29:58 +0000 (14:29 +0800)]
Prevent GTK from setting unreasonable size hints with large menu bars
* src/gtkutil.c (struct _EmacsMenuBar): New struct.
(emacs_menu_bar_init):
(emacs_menu_bar_class_init):
(emacs_menu_bar_get_preferred_width):
(emacs_menu_bar_new): New functions.
(xg_update_menu_item): Use our own menu bar class on GTK 3.
* src/gtkutil.h (EmacsMenuBar): New class.
Po Lu [Mon, 21 Feb 2022 03:27:48 +0000 (03:27 +0000)]
Implement left-right separators for dialog boxes on Haiku
* src/haiku_support.cc (BAlert_set_offset_spacing): New
function.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (struct submenu_stack_cell): Remove unused
struct.
(haiku_dialog_show): Use offset spacing if a left-right boundary
was seen and make sure the user can always quit a dialog if no
enabled items exist.
Dmitry Gutov [Mon, 21 Feb 2022 02:15:39 +0000 (04:15 +0200)]
Bump xref.el version.
* lisp/progmodes/xref.el: Bump version to 1.4.0.
Dmitry Gutov [Mon, 21 Feb 2022 01:09:32 +0000 (03:09 +0200)]
Public-ize xref-show-xrefs
* lisp/progmodes/xref.el (xref-show-xrefs):
New function (wrapper for an older, private one, bug#42967).
Po Lu [Mon, 21 Feb 2022 01:40:01 +0000 (01:40 +0000)]
; * src/haikuterm.c (haiku_read_socket): Add extra keyboard modifiers.
Po Lu [Mon, 21 Feb 2022 01:33:54 +0000 (09:33 +0800)]
Respect `extra-keyboard-modifiers' when handling XI2 keyboard input
* src/xterm.c (handle_one_xevent): Add extra modifiers to
XI2 keyboard state.
Dmitry Gutov [Mon, 21 Feb 2022 00:59:50 +0000 (02:59 +0200)]
Public-ize xref-current-item
* lisp/progmodes/xref.el (xref--current-item):
Rename to 'xref-current-item' (bug#53956). Update all references.
Lars Ingebrigtsen [Sun, 20 Feb 2022 21:36:46 +0000 (22:36 +0100)]
Further fixes for eww-open-url on Tramp files
* lisp/url/url-file.el (url-file-asynch-callback): Simplify
slightly (bug#40425).
* lisp/url/url-queue.el (url-queue-start-retrieve): Allow
non-local files here, too.
Kyle Meyer [Sun, 20 Feb 2022 19:04:28 +0000 (14:04 -0500)]
Update to Org 9.5.2-17-gea6b74
Juri Linkov [Sun, 20 Feb 2022 18:56:06 +0000 (20:56 +0200)]
* lisp/mouse.el (context-menu-entry): Remove help-buffer-under-preparation.
(bug#53910)
Lars Ingebrigtsen [Sun, 20 Feb 2022 18:17:37 +0000 (19:17 +0100)]
Fix a compilation warning in cus-edit-tests.el
Stefan Monnier [Sun, 20 Feb 2022 18:16:35 +0000 (13:16 -0500)]
(loadhist_initialize): Fix regression test failure
* src/lread.c (loadhist_initialize): Adjust assertion for the nil case.
(readevalloop): Signal an error for non-string `sourcename`.
Eli Zaretskii [Sun, 20 Feb 2022 16:43:43 +0000 (18:43 +0200)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Sun, 20 Feb 2022 16:42:33 +0000 (18:42 +0200)]
; Fix compilation warnings
* src/keyboard.c (kbd_buffer_get_event):
* src/xterm.c (handle_one_xevent): Fix compiler warnings.
Lars Ingebrigtsen [Sun, 20 Feb 2022 16:42:21 +0000 (17:42 +0100)]
Adjust doc-tests-documentation/autoloaded-macro
* test/src/doc-tests.el
(doc-tests-documentation/autoloaded-macro): Adjust test -- rx is
loaded in nativecomp Emacsen when the tests are run, apparently.
Lars Ingebrigtsen [Sun, 20 Feb 2022 15:57:21 +0000 (16:57 +0100)]
Simplify Minibuffer Edit example
* doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC
and ? completion (bug#36745).
Raffael Stocker [Sun, 20 Feb 2022 15:13:46 +0000 (16:13 +0100)]
; Don't reference obsolete variables in edebug.el
* lisp/emacs-lisp/edebug.el (edebug-mode, edebug-eval-mode):
Don't reference obsolete variables in the doc strings.
(Bug#54070)
Lars Ingebrigtsen [Sun, 20 Feb 2022 15:23:01 +0000 (16:23 +0100)]
Add instructions on disabling SPC completion to Minibuffer Edit
* doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC
and ? completion (bug#36745).
Lars Ingebrigtsen [Sun, 20 Feb 2022 15:14:49 +0000 (16:14 +0100)]
Fix compilation warning introduced by previous shr.el change
* lisp/net/shr.el (url-file): Fix compilation warning.
Lars Ingebrigtsen [Sun, 20 Feb 2022 15:08:45 +0000 (16:08 +0100)]
Make eww work better on Tramp HTML
* lisp/net/eww.el (eww-open-file): Use it.
(eww-browse-url): Ditto.
* lisp/net/shr.el (shr-expand-url): Allow loading relative Tramp
files if we're reading from a file:// document.
* lisp/url/url-file.el (url-allow-non-local-files): New user option
(bug#40425).
Lars Ingebrigtsen [Sun, 20 Feb 2022 14:52:10 +0000 (15:52 +0100)]
Make `g' work in eww buffers displaying Tramp files
* lisp/net/eww.el (eww--file-buffer): Refactored out.
(eww-open-file): From here.
(eww-reload): Make reloading work in Tramp files.
Lars Ingebrigtsen [Sun, 20 Feb 2022 14:24:47 +0000 (15:24 +0100)]
Make string-pixel-width about 40% faster
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up.
Michael Albinus [Sun, 20 Feb 2022 14:24:31 +0000 (15:24 +0100)]
* doc/misc/tramp.texi (Customizing Methods): Add tramp-nspawn.
Lars Ingebrigtsen [Sun, 20 Feb 2022 13:49:41 +0000 (14:49 +0100)]
Quote files that start with - in dired
* lisp/dired-aux.el (dired-shell-stuff-it): Add ./ to file names
that start with - (bug#10458).
Michael Albinus [Sun, 20 Feb 2022 13:04:24 +0000 (14:04 +0100)]
* lisp/net/tramp.el (tramp-read-passwd): Adapt for empty user names.
Lars Ingebrigtsen [Sun, 20 Feb 2022 12:45:56 +0000 (13:45 +0100)]
Fix compilation warning in previous sendmail.el change
* lisp/mail/sendmail.el (mm-long-lines-p): Fix compilation warning.
Lars Ingebrigtsen [Sun, 20 Feb 2022 12:41:57 +0000 (13:41 +0100)]
Ensure that `mail-send' breaks too-long lines
* lisp/mail/sendmail.el (mail-send): Ensure that we fold too-long
lines when using `sendmail-user-agent' (bug#53412).
Matthias Meulien [Sun, 20 Feb 2022 12:23:03 +0000 (13:23 +0100)]
Add more bookmark types
* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-jump):
* lisp/man.el (Man-bookmark-jump): Mark the bookmark type
(bug#54030).
Po Lu [Sun, 20 Feb 2022 12:00:28 +0000 (20:00 +0800)]
Fix font panel on NS
* src/nsterm.m ([EmacsView changeFont:]): Don't use emacs_event,
instead placing events directly into the keyboard buffer.
Po Lu [Sun, 20 Feb 2022 10:42:41 +0000 (10:42 +0000)]
* src/haikumenu.c (haiku_dialog_show): Set `popup_activated_p'.
Author:
Po Lu [Sun, 20 Feb 2022 10:38:38 +0000 (10:38 +0000)]
Handle GUI input while inside popup dialog on Haiku
* src/haiku_support.cc (alert_popup_value): New variable.
(be_alert_thread_entry): New function.
(BAlert_go): Complete rewrite that allows async input to be
handled while the popup is active.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (haiku_dialog_show, haiku_popup_dialog): Stop
blocking input and pass required callbacks to `BAlert_go'.
* src/haikuterm.c (haiku_term_init): Set interrupt input mode to
t.
Po Lu [Sun, 20 Feb 2022 02:05:46 +0000 (10:05 +0800)]
Fix typo in last change
* src/xterm.c (handle_one_xevent): Use `xi_done_keysym' label
when ignoring modifier keys from XI2 input.
Po Lu [Sun, 20 Feb 2022 02:03:28 +0000 (10:03 +0800)]
Ignore modifier keys early when handling X key press events
* src/xterm.c (handle_one_xevent): Ignore modifier keys earlier
without going through the usual key lookup.
(x_delete_terminal): Free recorded modifier map.
(x_find_modifier_meanings): Record modifier map.
* src/xterm.h (struct x_display_info): New field `modmap'.
Po Lu [Sun, 20 Feb 2022 01:14:00 +0000 (09:14 +0800)]
Free XI2 devices in x_delete_display instead
* src/xterm.c (x_delete_display): Free XI2 device data here
instead, since it doesn't involve contacting the X server any
more.
(x_delete_terminal): Stop freeing XI2 device data.
Philip Kaludercic [Sat, 19 Feb 2022 21:04:44 +0000 (22:04 +0100)]
Revert "; * rcirc.el (rcirc-print): Prefer sleep-for over sit-for"
Stefan Monnier [Sat, 19 Feb 2022 19:55:39 +0000 (14:55 -0500)]
(specpdl_unrewind): Fix corner case
* src/lisp.h (enum specbind_tag): New elem SPECPDL_NOP.
* src/eval.c (specpdl_unrewind): Zap entries that can't be applied any more,
and simplify.
(default_toplevel_binding, lexbound_p, Fbacktrace__locals): Simplify.
(do_one_unbind, mark_specpdl): Handle SPECPDL_NOP.
Philip Kaludercic [Sat, 19 Feb 2022 19:29:29 +0000 (20:29 +0100)]
; * rcirc.el (rcirc-print): Prefer sleep-for over sit-for
Compare
(benchmark-run 100000 (sit-for 0))
;; => (2.
600030102 12 1.
523461324000003)
with
(benchmark-run 100000 (sleep-for 0))
;; (0.
015882939 0 0.0)
Stefan Monnier [Sat, 19 Feb 2022 19:20:02 +0000 (14:20 -0500)]
(macroexp-warn-and-return): Fix bug#53618
* lisp/emacs-lisp/macroexp.el (macroexp-warn-and-return):
Reorder arguments to preserve compatibility with that of Emacs-28.
(macroexp--unfold-lambda, macroexp--expand-all):
* lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1):
* lisp/emacs-lisp/gv.el (gv-ref):
* lisp/emacs-lisp/eieio.el (defclass):
* lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default)
(eieio-oset-default):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
* lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct):
* lisp/emacs-lisp/cl-generic.el (cl-defmethod):
* lisp/emacs-lisp/byte-run.el (defmacro, defun):
* lisp/emacs-lisp/bindat.el (bindat--type): Adjust accordingly.
Stefan Monnier [Sat, 19 Feb 2022 19:12:14 +0000 (14:12 -0500)]
(loadhist_initialize): Minor refactoring
Consolidate a bit of code.
* src/lread.c (loadhist_initialize): New function.
(Fload, readevalloop): Use it.
Stefan Monnier [Sat, 19 Feb 2022 18:45:04 +0000 (13:45 -0500)]
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix mishaps
This reverts the last change so it also applies to non-git diffs again.
Instead, we're now more careful not to mis-recognize file headers as
addition/removal lines.
In addition to that, mark the file header such that it's
re-font-locked all at once, and to still recognize it after
`diff-reverse-direction`.
Michael Albinus [Sat, 19 Feb 2022 17:38:12 +0000 (18:38 +0100)]
Adapt Tramp password prompts for sudo-like methods
* doc/misc/tramp.texi (Password handling): Explain entries for
doas, sudo and sudoedit.
* etc/NEWS (Tramp): Document changed password prompts.
* lisp/net/tramp-sh.el (tramp-methods) <sudo, doas>:
Add `tramp-password-previous-hop'.
(tramp-maybe-open-connection): Modify `previous-hop' if needed.
* lisp/net/tramp-sudoedit.el (tramp-methods) <sudoedit>:
Add `tramp-password-previous-hop'.
(tramp-sudoedit-null-hop): New defconst.
(tramp-sudoedit-send-command): Use it.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-null-hop): New defconst.
(tramp-get-remote-null-device): Use it.
Lars Ingebrigtsen [Sat, 19 Feb 2022 15:58:52 +0000 (16:58 +0100)]
Some vtable.texi copy edits
* doc/misc/vtable.texi (Making A Table): Mention the accessors.
Lars Ingebrigtsen [Sat, 19 Feb 2022 15:25:13 +0000 (16:25 +0100)]
Mention vtable accessor functions
* doc/misc/vtable.texi (Making A Table): Mention the accessors.
Lars Ingebrigtsen [Sat, 19 Feb 2022 15:13:39 +0000 (16:13 +0100)]
Improve the vtable documentation on argument types
* doc/misc/vtable.texi (Making A Table): Say what the argument
types are.
Lars Ingebrigtsen [Sat, 19 Feb 2022 13:48:39 +0000 (14:48 +0100)]
Fix a vtable example
* doc/misc/vtable.texi (Introduction): Fix example.
Eli Zaretskii [Sat, 19 Feb 2022 13:34:01 +0000 (15:34 +0200)]
Improve vtable documentation
* doc/misc/vtable.texi (top-level): Add @syncodeindex directives.
(Introduction): Fix wording and markup. Add indexing.
(Making A Table, Commands, Interface Functions): Fix typos and
markup. Add indexing.
* etc/NEWS: Improve wording of the vtable's NEWS entry.
* doc/misc/Makefile.in (INFO_COMMON): Add 'vtable'.
Lars Ingebrigtsen [Sat, 19 Feb 2022 13:21:10 +0000 (14:21 +0100)]
Add column sorting order indicators to vtable
* lisp/emacs-lisp/vtable.el (vtable--indicator): New function.
(vtable--insert-header-line): Use it to display sorting order
indicators.
Lars Ingebrigtsen [Sat, 19 Feb 2022 13:20:30 +0000 (14:20 +0100)]
Make string-pixel-width slightly speedier
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up
string-pixel-width in the zero-length string case.
Po Lu [Sat, 19 Feb 2022 12:59:12 +0000 (20:59 +0800)]
Avoid consing extra string when processing GTK native input
* src/gtkutil.c (xg_im_context_commit): Use
`decode_string_utf8' to decode input text.
* src/keyboard.c (kbd_buffer_get_event_1): If coding system is
Qt, simply return the string without decoding it.
* src/termhooks.h (enum event_kind): Document meaning of Qt as
coding system in a multibyte keystroke event's string argument.
Mauro Aranda [Sat, 19 Feb 2022 12:34:11 +0000 (13:34 +0100)]
Fix types of some align.el defcustoms
* lisp/align.el (align-region-heuristic)
(align-large-region): Both options can be nil, but the defcustom type
didn't allow nil values.
(align-rules-list-type): The "Run If" and "Valid" attributes
should be functions, but the default value was t. Change it to
#'always (bug#54048).
Mauro Aranda [Sat, 19 Feb 2022 12:33:05 +0000 (13:33 +0100)]
Fix :match function for the key widget
* lisp/wid-edit.el (key): Calling key-valid-p directly doesn't work,
because the :match function is called with the widget and the value as
arguments (bug#54049).
Po Lu [Sat, 19 Feb 2022 12:30:26 +0000 (12:30 +0000)]
Fix some more hangs when parenting child frames around on Haiku
* src/haiku_support.cc (ParentTo):
(FrameMoved): Don't sync when a recursive lock might be able to
be held.
Lars Ingebrigtsen [Sat, 19 Feb 2022 12:16:19 +0000 (13:16 +0100)]
Add a new library to format variable-pitch tables
* doc/misc/vtable.texi (Index): New manual.
* lisp/emacs-lisp/vtable.el: New library.
Po Lu [Sat, 19 Feb 2022 12:05:18 +0000 (20:05 +0800)]
Improve portability of alpha channel visual detection
* src/xfns.c (select_visual): Look for PictVisuals with an alpha
channel instead of blindly assuming that 32 bit visuals have an
alpha channel.
(Fx_show_tip): Fix crash on some displays where child is None.
* src/xterm.c (x_term_init): Initialize Xrender before
calling select_visual.
Alan Mackenzie [Sat, 19 Feb 2022 10:38:19 +0000 (10:38 +0000)]
Fix symbols with position appearing in the output of `compile-defun'
This happened with the tags of a condition-case. Also fix the detection of
circular lists while stripping the positions from symbols with position.
* lisp/emacs-lisp/byte-run.el (byte-run--circular-list-p): Remove.
(byte-run--strip-s-p-1): Write a value of t into a hash table for each cons or
vector/record encountered. (This is to prevent loops with circular
structures.) This is now done for all arguments, not just those detected as
circular lists.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar)
(byte-compile-form, byte-compile-dynamic-variable-op)
(byte-compile-constant, byte-compile-push-constant): Remove redundant calls to
`bare-symbol'.
(byte-compile-lambda): call `byte-run-strip-symbol-positions' on the arglist.
(byte-compile-out): call `byte-run-strip-symbol-positions' on the operand.
This is the main call to this function in bytecomp.el.
* src/fns.c (hashfn_eq): Strip the position from an argument which is a symbol
with position.
(hash_lookup): No longer strip a position from a symbol with position.
(sxhash_obj): Add handling for symbols with position, substituting their bare
symbols when symbols with position are enabled.
Eli Zaretskii [Sat, 19 Feb 2022 09:19:48 +0000 (11:19 +0200)]
Fix character compositions on the mode line
* src/composite.c (composition_compute_stop_pos)
(Ffind_composition_internal): When characters come from a string,
determine whether to compose them from that string's multibyteness,
not from that of the current buffer. (Bug#53729)
Po Lu [Sat, 19 Feb 2022 08:21:51 +0000 (16:21 +0800)]
Don't ignore events from XI2 slave devices anymore
All the machinery needed to keep track of events from those
devices is already in place, so that's no longer required.
* src/xterm.c (x_get_scroll_valuator_delta):
(xi_reset_scroll_valuators_for_device_id):
(handle_one_xevent): Don't ignore XI devices that are not master
pointers or keyboards.
Stefan Kangas [Sat, 19 Feb 2022 05:30:51 +0000 (06:30 +0100)]
Merge from origin/emacs-28
57c112cfe5 ; * doc/emacs/files.texi (Comparing Files): Fix a reference.
bdeac2d5af ; Fix a typo in filesets.el's doc string
Po Lu [Sat, 19 Feb 2022 05:27:03 +0000 (13:27 +0800)]
Always decode GTK input method text as utf-8-unix
* src/gtkutil.c (xg_im_context_commit): Use `utf-8-unix' as
coding system for text.
Po Lu [Sat, 19 Feb 2022 03:51:05 +0000 (11:51 +0800)]
Be less strict about which emulated motion events to ignore
* src/xterm.c (handle_one_xevent): Don't test XI2 version before
dropping PointerEmulated motion events.
Po Lu [Sat, 19 Feb 2022 02:19:29 +0000 (02:19 +0000)]
* src/haikufns.c (haiku_create_frame): Error if font wasn't found.
Po Lu [Sat, 19 Feb 2022 01:18:27 +0000 (09:18 +0800)]
Utilize new string decoding feature in GTK native input
* src/gtkutil.c (xg_im_context_commit): Don't decode strings
manually using g_utf8_to_ucs4 but pass unibyte string as the
keystroke event arg instead.
Philipp Stephani [Fri, 18 Feb 2022 17:53:49 +0000 (18:53 +0100)]
; * doc/emacs/files.texi (Comparing Files): Fix a reference.
Eric Abrahamsen [Fri, 18 Feb 2022 16:37:33 +0000 (08:37 -0800)]
Handle multiple directory separators in gnus-search results
Try to treat the file names more like file names, less like strings
to massage.
* lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Use
`expand-file-name' to collapse separators and generally canonicalize
the name. Use `file-name-split' and joining instead of regexp
munging.
Eli Zaretskii [Fri, 18 Feb 2022 13:46:57 +0000 (15:46 +0200)]
; Fix a typo in filesets.el's doc string
* lisp/filesets.el (filesets-remove-buffer, filesets-add-buffer):
Doc fixes. Reported by Иванов Дмитрий <d.ivanov@1001tur.ru>.
Po Lu [Fri, 18 Feb 2022 13:24:42 +0000 (21:24 +0800)]
Fix background stipple with `alpha_background'
* src/xterm.c (x_fill_rectangle): Fix treatment of foreground
and background colors when there is a stipple.
Po Lu [Fri, 18 Feb 2022 10:01:58 +0000 (18:01 +0800)]
Fix a crash on some versions of GTK
* src/emacsgtkfixed.c (XSetWMNormalHints): Fix potential
arithmetic fault.
Eli Zaretskii [Fri, 18 Feb 2022 08:38:52 +0000 (10:38 +0200)]
Merge from origin/emacs-28
1e4b04c Improve documentation of filling and justification commands
9fd396e * lisp/progmodes/subword.el (superword-mode): Doc fix. (Bug#...
e303cb1 Fix indexing of module functions that return complex types.
Eli Zaretskii [Fri, 18 Feb 2022 08:38:50 +0000 (10:38 +0200)]
; Merge from origin/emacs-28
The following commit was skipped:
b30ef09 Prevent crashes caused by invalid locale coding systems
Eli Zaretskii [Fri, 18 Feb 2022 08:38:47 +0000 (10:38 +0200)]
Merge from origin/emacs-28
c8442df ; Separate command and concept index in Transient manual
8aa052c ; Fix Transient manual
5b7752a Fix problem with popd for in remote shell buffers
38f6ea1 Import texi source file for transient manual
df34929 Update to Org 9.5.2-15-gc5ceb6
Eli Zaretskii [Fri, 18 Feb 2022 08:38:45 +0000 (10:38 +0200)]
; Merge from origin/emacs-28
The following commits were skipped:
fe27479 Fix 'exchange-point-and-mark' in 'transient-mark-mode'
2289a7a2 Fix "C-SPC C-SPC" after "C-x C-x"