]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoxref-find-references-and-replace: New command
Dmitry Gutov [Fri, 14 Jan 2022 02:38:39 +0000 (04:38 +0200)]
xref-find-references-and-replace: New command

* lisp/progmodes/xref.el (xref-find-references-and-replace):
New command.

2 years agoSteamline xref-query-replace-in-results
Dmitry Gutov [Fri, 14 Jan 2022 02:30:16 +0000 (04:30 +0200)]
Steamline xref-query-replace-in-results

* lisp/progmodes/xref.el (xref-query-replace-in-results):
Steamline the most common scenario
(https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00864.html).

2 years agoFix out of bounds bitmap access on Haiku
Po Lu [Fri, 14 Jan 2022 01:24:34 +0000 (01:24 +0000)]
Fix out of bounds bitmap access on Haiku

* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix
out of bounds access to bitmap data.

2 years agoRefresh keyboard mapping upon receiving new XKB map
Po Lu [Fri, 14 Jan 2022 00:52:53 +0000 (08:52 +0800)]
Refresh keyboard mapping upon receiving new XKB map

* src/xterm.c (handle_one_xevent): Call
XkbRefreshKeyboardMapping where required.

2 years agoPrefer defvar-keymap to easy-mmode-defmap
Stefan Kangas [Thu, 13 Jan 2022 22:16:16 +0000 (23:16 +0100)]
Prefer defvar-keymap to easy-mmode-defmap

* lisp/progmodes/gud.el (gud-minibuffer-local-map):
* lisp/vc/pcvs-info.el (cvs-status-map): Use defvar-keymap.

* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Document as
deprecated.

2 years ago; tweak doc
Sam Steingold [Thu, 13 Jan 2022 17:13:30 +0000 (12:13 -0500)]
; tweak doc

2 years agoImprove documentation of 'isearch-emoji-by-name'
Eli Zaretskii [Thu, 13 Jan 2022 14:40:28 +0000 (16:40 +0200)]
Improve documentation of 'isearch-emoji-by-name'

* lisp/isearch.el (isearch-menu-bar-map, isearch-emoji-by-name):
Fix wording of documentation.

* etc/NEWS: Fix wording of the 'isearch-emoji-by-name' entry.

* doc/emacs/search.texi (Special Isearch): Fix wording of the
documentation of 'isearch-emoji-by-name'; move it out of the
enumeration that deals with non-ASCII characters in general.

2 years agoFix frame-undeletion menu items
Eli Zaretskii [Thu, 13 Jan 2022 14:18:50 +0000 (16:18 +0200)]
Fix frame-undeletion menu items

* lisp/menu-bar.el (menu-bar-file-menu): Fix wording of the new
menu items and their help-echo.  Don't show "Undelete Frame"
in the menu unless there is a frame to undelete.

2 years agoAvoid scrolling display when point moves into invisible text
Eli Zaretskii [Thu, 13 Jan 2022 13:40:30 +0000 (15:40 +0200)]
Avoid scrolling display when point moves into invisible text

* src/xdisp.c (try_cursor_movement): Handle point moving into
invisible text.  (Bug#53215)

2 years ago* doc/lispref/functions.texi (Defining Functions): Fix thinko.
Michael Albinus [Thu, 13 Jan 2022 13:09:44 +0000 (14:09 +0100)]
* doc/lispref/functions.texi (Defining Functions): Fix thinko.

2 years agoImprove preserving X coordinate during scroll commands
Eli Zaretskii [Thu, 13 Jan 2022 12:21:10 +0000 (14:21 +0200)]
Improve preserving X coordinate during scroll commands

* src/window.c (window_scroll_pixel_based): Don't unnecessarily
move the iterator.  (Bug#53220)

2 years ago* lisp/jsonrpc.el (Version): Bump to 1.0.15.
Stefan Kangas [Thu, 13 Jan 2022 12:00:25 +0000 (13:00 +0100)]
* lisp/jsonrpc.el (Version): Bump to 1.0.15.

2 years agoFix passive input focus when the pointer moves over inferiors
Po Lu [Thu, 13 Jan 2022 11:42:14 +0000 (19:42 +0800)]
Fix passive input focus when the pointer moves over inferiors

* src/xterm.c (handle_one_xevent): Don't detect focus on entry
and exit events if we're not on the top window.

2 years ago; * test/lisp/progmodes/flymake-tests.el: remove duplicate function
Mattias Engdegård [Thu, 13 Jan 2022 10:27:21 +0000 (11:27 +0100)]
; * test/lisp/progmodes/flymake-tests.el: remove duplicate function

2 years agospelling-tests.el: actually create a temp directory
Robert Pluim [Thu, 13 Jan 2022 09:33:13 +0000 (10:33 +0100)]
spelling-tests.el: actually create a temp directory

This test was creating a file, but actually needs a directory, and
fails otherwise.

* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling):
Pass the :directory arg to ert-with-temp-file so we actually
create a directory.

2 years agoFilter key release events through GTK when using native input
Po Lu [Thu, 13 Jan 2022 09:56:55 +0000 (17:56 +0800)]
Filter key release events through GTK when using native input

* src/gtkutil.c (xg_filter_key): Set correct event type for key
release events.
* src/xterm.c (x_filter_event): Also filter release events.

2 years agoMake ert explainers work on function aliases
Lars Ingebrigtsen [Thu, 13 Jan 2022 08:48:15 +0000 (09:48 +0100)]
Make ert explainers work on function aliases

* lisp/emacs-lisp/ert.el: New function.
(ert--expand-should-1): Use it (bug#53178).

2 years agoAvoid infloops in help-fns--analyze-function with aliases
Lars Ingebrigtsen [Thu, 13 Jan 2022 08:42:36 +0000 (09:42 +0100)]
Avoid infloops in help-fns--analyze-function with aliases

* lisp/help-fns.el (help-fns--analyze-function): Use
function-alias-p to avoid infloops.

2 years agoAdd new function function-alias-p
Lars Ingebrigtsen [Thu, 13 Jan 2022 08:38:47 +0000 (09:38 +0100)]
Add new function function-alias-p

* doc/lispref/functions.texi (Defining Functions): Document it.
* lisp/subr.el (function-alias-p): New function (bug#53178).

2 years agoUndelete deleted frames.
Gregory Heytings [Thu, 13 Jan 2022 08:31:43 +0000 (10:31 +0200)]
Undelete deleted frames.

* lisp/frame.el (undelete-frame): New command.
(undelete-frame--handle-delete-frame): New auxiliary function.
(undelete-frame--deleted-frames): New auxiliary variables.
(undelete-frame-mode): New minor mode.
(ctl-x-5-map): Bind the new command.

* etc/NEWS: Document the new command and minor mode.

* src/frame.c (Fdelete_frame): Update docstring, and mention the
minor mode.

* lisp/menu-bar.el (menu-bar-file-menu): Add an entry for the
new command.

* doc/emacs/frames.tex (Frame Commands): Document the new command
and minor mode.

See bug#51883.

2 years agoFix GTK native input methods randomly freezing input
Po Lu [Thu, 13 Jan 2022 02:10:41 +0000 (10:10 +0800)]
Fix GTK native input methods randomly freezing input

* src/gtkutil.c (xg_widget_key_press_event_cb): Exercise the X11
connection causing pselect to return immediately from input.
(bug#53160)

2 years agoBlock input when drawing fringe bitmaps on Haiku
Po Lu [Thu, 13 Jan 2022 01:59:23 +0000 (01:59 +0000)]
Block input when drawing fringe bitmaps on Haiku

* src/haikuterm.c (haiku_draw_fringe_bitmap): Block input.

2 years agoUse XI2 focus events on X toolkit builds
Po Lu [Thu, 13 Jan 2022 01:32:14 +0000 (09:32 +0800)]
Use XI2 focus events on X toolkit builds

* src/xfns.c (setup_xi_event_mask): Set focus masks on both the
shell window and the frame window.
* src/xterm.c (x_detect_focus_change): Enable XI2 focus code on
Xt.

2 years ago* lisp/jsonrpc.el (jsonrpc--debug): Use apply on format args list.
Stefan Kangas [Thu, 13 Jan 2022 00:01:48 +0000 (01:01 +0100)]
* lisp/jsonrpc.el (jsonrpc--debug): Use apply on format args list.

2 years agoRework setting/unsetting of gnus-registry-enabled
Eric Abrahamsen [Wed, 12 Jan 2022 22:58:46 +0000 (14:58 -0800)]
Rework setting/unsetting of gnus-registry-enabled

The basic idea is, we're moving the setting/unsetting of
`gnus-registry-enabled' so that it is a more reliable indicator of
whether the registry is actually available or not.

* lisp/gnus/gnus-registry.el (gnus-registry-load): Move the setting of
`gnus-registry-enabled' here, after we're sure the registry actually
has been loaded.
(gnus-registry-initialize): Move it out of here. All this function
does is conditionally call `gnus-registry-load'.
(gnus-registry-register-message-ids): Only check
`gnus-registry-enabled', since we'd more confident about this
now. Sort checks in order of increasing complexity.
(gnus-registry-clear): Unset `gnus-registry-enabled'.
(gnus-registry-install-hooks): This function should only install
hooks, not set variables.
(gnus-registry-unload-hook): Change the unload hook to call
`gnus-registry-clear', as that will do all the necessary
work (including calling `gnus-registry-unload-hook')

2 years agoMerge remote-tracking branch 'origin/emacs-28' into trunk
Stefan Monnier [Wed, 12 Jan 2022 20:57:29 +0000 (15:57 -0500)]
Merge remote-tracking branch 'origin/emacs-28' into trunk

2 years agoRevert "Fix closure-conversion of shadowed captured lambda-lifted vars"
Mattias Engdegård [Wed, 12 Jan 2022 18:47:39 +0000 (19:47 +0100)]
Revert "Fix closure-conversion of shadowed captured lambda-lifted vars"

This reverts commit 3ec8c8b3ae2359ceb8135b672e86526969c16b7e.

It was committed to a stable branch without prior discussion;
see bug#53071.

2 years ago* lisp/subr.el (remove-hook): Use set-variable-value-history for value history
Juri Linkov [Wed, 12 Jan 2022 19:08:16 +0000 (21:08 +0200)]
* lisp/subr.el (remove-hook): Use set-variable-value-history for value history

2 years ago* doc/lispref/windows.texi (Textual Scrolling): Remove obsolete text.
Juri Linkov [Wed, 12 Jan 2022 18:59:21 +0000 (20:59 +0200)]
* doc/lispref/windows.texi (Textual Scrolling): Remove obsolete text.

Remove text about scrolling the minibuffer from the buffer,
obsolete since Emacs 27 (bug#51210).

2 years ago* lisp/files.el (lock-file-name-transforms): Doc tweaks.
Glenn Morris [Wed, 12 Jan 2022 18:36:05 +0000 (10:36 -0800)]
* lisp/files.el (lock-file-name-transforms): Doc tweaks.

2 years ago; Fix typo loose/lose
Glenn Morris [Wed, 12 Jan 2022 18:23:31 +0000 (10:23 -0800)]
; Fix typo loose/lose

2 years ago* lisp/leim/quail/emoji.el: New file (bug#52605).
Juri Linkov [Wed, 12 Jan 2022 17:47:32 +0000 (19:47 +0200)]
* lisp/leim/quail/emoji.el: New file (bug#52605).

2 years agoAdd isearch-emoji-by-name
Daniel Martín [Wed, 12 Jan 2022 17:43:15 +0000 (19:43 +0200)]
Add isearch-emoji-by-name

* lisp/isearch.el (isearch-emoji-by-name): Add a new command to insert
Emoji characters into incremental search strings. (Bug#52605)
(isearch-mode-map): Bind it to 'C-x 8 e RET'.
(isearch-menu-bar-map): Add it to the menu bar.
* doc/emacs/search.texi (Special Isearch): Update the documentation to
mention the new command.
* etc/NEWS: And advertise it.

2 years agoPrefer unexport in Makefiles
Glenn Morris [Wed, 12 Jan 2022 17:37:39 +0000 (09:37 -0800)]
Prefer unexport in Makefiles

* admin/grammars/Makefile.in, leim/Makefile.in:
* lisp/Makefile.in, test/Makefile.in:
Use unexport for EMACSLOADPATH.

2 years agoAvoid user environment interfering with bootstrap
Glenn Morris [Wed, 12 Jan 2022 17:35:43 +0000 (09:35 -0800)]
Avoid user environment interfering with bootstrap

* Makefile.in, admin/unidata/Makefile.in:
* doc/misc/Makefile.in, lib-src/Makefile.in:
Don't export user environment variables that can affect running
emacs.  (Bug#53038)

2 years agoFix closure-conversion of shadowed captured lambda-lifted vars
Mattias Engdegård [Mon, 22 Nov 2021 15:56:38 +0000 (16:56 +0100)]
Fix closure-conversion of shadowed captured lambda-lifted vars

Lambda-lifted variables (ones passed explicitly to lambda-lifted
functions) that are also captured in an outer closure and shadowed
were renamed incorrectly (bug#51982).

Reported by Paul Pogonyshev.

* lisp/emacs-lisp/cconv.el (cconv--lifted-arg): New.
(cconv-convert): Provide correct definiens for the closed-over
variable.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
* test/lisp/emacs-lisp/cconv-tests.el (cconv-tests--intern-all)
(cconv-closure-convert-remap-var): Add tests.

(cherry picked from commit 45252ad8f932c98a373ef0ab7f3363a3e27ccbe4)

2 years agoFollow POSIX/GNU argument conventions for 'eshell-eval-using-options'
Jim Porter [Tue, 4 Jan 2022 20:58:38 +0000 (12:58 -0800)]
Follow POSIX/GNU argument conventions for 'eshell-eval-using-options'

* lisp/eshell/esh-opt.el (eshell--split-switch): New function.
(eshell-set-option): Allow setting a supplied value instead of always
consuming from 'eshell--args'.
(eshell--process-option): Support consuming option values specified as
a single token.
(eshell--process-args): For short options, pass full switch token to
'eshell--process-option'.

* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test): Fix
test.
(test-eshell-eval-using-options): Add tests for various types of
options.

* doc/misc/eshell.texi (Defining new built-in commands): New
subsection, describe how to use 'eshell-eval-using-options'.

* etc/NEWS: Announce the change.

2 years agoAvoid assertion violations with variable-weight fonts
Eli Zaretskii [Wed, 12 Jan 2022 14:52:14 +0000 (16:52 +0200)]
Avoid assertion violations with variable-weight fonts

* src/font.c (font_score, font_delete_unmatched): Don't assume
weight, slant, and width properties of the font must be fixnums:
some variable-weight fonts violate that assumption.  Reported
by Sean Whitton <spwhitton@spwhitton.name>.  This is for builds
with Fontconfig < v2.11.91, for which the fix in
'ftfont_pattern_entity' cannot work.  (Bug#52888)

2 years agoSkip virtual FcPattern entries for variable weight fonts
Sean Whitton [Wed, 5 Jan 2022 02:07:29 +0000 (19:07 -0700)]
Skip virtual FcPattern entries for variable weight fonts

* src/ftfont.c (ftfont_list): Pass FC_VARIABLE to FcObjectSetBuild.
* src/ftfont.c (ftfont_pattern_entity): Skip meta/virtual FcPattern
entries for variable weight fonts (Bug#52888).

2 years ago; * doc/lispref/modes.texi (Auto Major Mode): Clarification. (Bug#53199)
Eli Zaretskii [Wed, 12 Jan 2022 12:36:56 +0000 (14:36 +0200)]
; * doc/lispref/modes.texi (Auto Major Mode): Clarification.  (Bug#53199)

2 years agoUse correct coordinates when translating XI2 crossing events
Po Lu [Wed, 12 Jan 2022 12:13:28 +0000 (20:13 +0800)]
Use correct coordinates when translating XI2 crossing events

* src/xwidget.c (xwidget_motion_or_crossing): Use displaced
position instead of event position.

2 years agoIgnore scroll lock key on Haiku
Po Lu [Wed, 12 Jan 2022 11:09:38 +0000 (11:09 +0000)]
Ignore scroll lock key on Haiku

* src/haiku_support.cc (keysym_from_raw_char): Return special
value for keys that shouldn't be sent to Emacs.
(DispatchMessage): Respect said value.

2 years agoFix test lisp/cedet/semantic/bovine/gcc-tests on macOS (Bug#52431)
Philipp Stephani [Tue, 28 Dec 2021 20:05:23 +0000 (21:05 +0100)]
Fix test lisp/cedet/semantic/bovine/gcc-tests on macOS (Bug#52431)

* test/lisp/cedet/semantic/bovine/gcc-tests.el
(semantic-gcc-test-output-parser-this-machine): Also detect Apple
clang on macOS Monterey.

(cherry picked from commit 6e52becfbe2a33c025b8c4838b3c8f06ba5a6fb8)

2 years agoDon't fail flymake-tests if `gcc` actually is Clang
Mattias Engdegård [Sun, 2 Jan 2022 12:00:13 +0000 (13:00 +0100)]
Don't fail flymake-tests if `gcc` actually is Clang

* test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang)
(different-diagnostic-types, included-c-header-files): Skip tests that
depend on the `gcc` command really being GCC and not Clang.

(cherry picked from commit b2167d98432a78442522b7564e22f47d75a98b6f)

2 years agoTranslate more keys on Haiku
Po Lu [Wed, 12 Jan 2022 07:20:29 +0000 (07:20 +0000)]
Translate more keys on Haiku

* src/haiku_support.cc (keysym_from_raw_char): Translate print,
scroll lock, and pause/break.

2 years agoDon't do Gnus article emphasis in text/html parts
Lars Ingebrigtsen [Wed, 12 Jan 2022 05:28:19 +0000 (06:28 +0100)]
Don't do Gnus article emphasis in text/html parts

* lisp/gnus/gnus-art.el (gnus-treat-emphasize): Don't do emphasis
in text/html parts, because this leads to mis-filled text
(especially with *...* that's boldified, which typically becomes
much wider).

2 years agoFix arity error when trying to add a file to an automake project
Po Lu [Wed, 12 Jan 2022 03:25:15 +0000 (11:25 +0800)]
Fix arity error when trying to add a file to an automake project

* lisp/cedet/ede/project-am.el (project-add-file): Add ignored
_FILE parameter like the other `project-add-file' methods.

2 years agoFix display of text decorations in the mode line
Po Lu [Wed, 12 Jan 2022 03:09:52 +0000 (11:09 +0800)]
Fix display of text decorations in the mode line

This is considered a temporary fix until the cause of
fringe-overwriting underlines is established.

* src/xterm.c (x_draw_glyph_string): Don't constrain decorations
if the row is a tab or modeline.

2 years agoAvoid unnecessary lookup of min and max keycodes when XKB is present
Po Lu [Wed, 12 Jan 2022 02:24:01 +0000 (10:24 +0800)]
Avoid unnecessary lookup of min and max keycodes when XKB is present

* src/xterm.c (x_emacs_to_x_modifiers): Avoid calling
XDisplayKeycodes when that information is available in the xkb
desc and is not needed anyway.

2 years agoIgnore resetting devices upon some events we don't have to handle
Po Lu [Wed, 12 Jan 2022 01:28:48 +0000 (09:28 +0800)]
Ignore resetting devices upon some events we don't have to handle

* src/xterm.c (handle_one_xevent): Ignore SlaveSwitch
DeviceChanged events.

2 years agoRemove the filename argument from the command line after an ELC+ELN build
Alan Mackenzie [Tue, 11 Jan 2022 18:29:07 +0000 (18:29 +0000)]
Remove the filename argument from the command line after an ELC+ELN build

This fixes bug #53164.  Without this fix, bootstrap-emacs loads the source
file uselessly into a buffer after completing the compilation.

2 years ago* lisp/window.el (display-comint-buffer-action): Move to the end of file.
Juri Linkov [Tue, 11 Jan 2022 18:04:30 +0000 (20:04 +0200)]
* lisp/window.el (display-comint-buffer-action): Move to the end of file.

Move closer to pop-to-buffer-same-window after its default value
display-buffer--same-window-action is defined.

2 years ago* lisp/vc/vc.el (vc-shrink-buffer-window): New function (bug#51062).
Juri Linkov [Tue, 11 Jan 2022 17:34:54 +0000 (19:34 +0200)]
* lisp/vc/vc.el (vc-shrink-buffer-window): New function (bug#51062).

(vc-diff-finish-functions): New variable.
(vc-diff-finish): Use it.
(vc-log-finish-functions): New variable.
(vc-log-internal-common): Use it.

2 years ago* src/window.c (other-window-scroll-default): New variable (bug#51210).
Juri Linkov [Tue, 11 Jan 2022 17:28:52 +0000 (19:28 +0200)]
* src/window.c (other-window-scroll-default): New variable (bug#51210).

(Fother_window_for_scrolling): Use it.

2 years agoMore fixes for display-comint-buffer-action
Juri Linkov [Tue, 11 Jan 2022 17:19:37 +0000 (19:19 +0200)]
More fixes for display-comint-buffer-action

* lisp/window.el (display-comint-buffer-action):
Use display-buffer--same-window-action as the default value.

* lisp/progmodes/sh-script.el (sh-show-shell):
* lisp/shell.el (shell): Add display-comint-buffer-action to pop-to-buffer.

* lisp/progmodes/project.el (project-shell, project-eshell): Use
`bound-and-true-p display-comint-buffer-action' for backward-compatibility.

https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg02964.html

2 years agoFix display-comint-buffer-action default behavior (closes bug#52878)
Morgan Smith [Tue, 11 Jan 2022 17:13:04 +0000 (19:13 +0200)]
Fix display-comint-buffer-action default behavior (closes bug#52878)

* lisp/window.el (display-comint-buffer-action): Make it an alist.

2 years agoClean up filelock code related to errno
Paul Eggert [Tue, 11 Jan 2022 16:58:18 +0000 (08:58 -0800)]
Clean up filelock code related to errno

Reduce dependency on Haiku internals, by not assuming that
Haiku errno values (which are negative) are neither -1 nor -2.
This removes an #ifdef HAIKU while still maintaining
portability to Haiku.
* src/filelock.c (NEGATIVE_ERRNO, ANOTHER_OWNS_IT, I_OWN_IT):
New constants, which should work regardless of whether
we are on Haiku or B_USE_POSITIVE_POSIX_ERRORS is defined.
(current_lock_owner, lock_if_free, lock_file, unlock_file)
(Ffile_locked_p): Use them, without assuming anything about errno
value sign.

2 years agoFix userlock diagnostic
Paul Eggert [Tue, 11 Jan 2022 16:50:53 +0000 (08:50 -0800)]
Fix userlock diagnostic

* lisp/userlock.el (ask-user-about-lock):
Fix typo (missing paren) in diagnostic.

2 years ago; * doc/emacs/haiku.texi (Haiku Basics): Fix typo and wording.
Eli Zaretskii [Tue, 11 Jan 2022 15:17:05 +0000 (17:17 +0200)]
; * doc/emacs/haiku.texi (Haiku Basics): Fix typo and wording.

2 years agoStop ungrabbing when freeing XI devices
Po Lu [Tue, 11 Jan 2022 11:06:41 +0000 (19:06 +0800)]
Stop ungrabbing when freeing XI devices

This breaks when x_free_xi_devices is called from a
HierarchyChange event where a master device has been removed or
a slave device has been detached, and it should no longer be
required since we now rely on passive grabs.

* src/xterm.c (x_init_master_valuators): Stop calling
XIUngrabDevice on all devices.

2 years agoMake native input work on GTK 2
Po Lu [Tue, 11 Jan 2022 10:13:04 +0000 (18:13 +0800)]
Make native input work on GTK 2

* src/gtkutil.c (xg_create_frame_widgets): Allow focusing fixed
widget.

2 years agoStop decoding GTK event strings when using native input
Po Lu [Tue, 11 Jan 2022 10:06:37 +0000 (18:06 +0800)]
Stop decoding GTK event strings when using native input

* src/gtkutil.c (xg_widget_key_press_event_cb): Stop decoding
event strings.

2 years ago* lisp/outline.el (outline-minor-mode-cycle--bind): Fix outline-on-heading-p.
Juri Linkov [Tue, 11 Jan 2022 08:56:54 +0000 (10:56 +0200)]
* lisp/outline.el (outline-minor-mode-cycle--bind): Fix outline-on-heading-p.

When calling outline-on-heading-p, set its argument INVISIBLE-OK to t,
so when <backtab> (bound to outline-cycle-buffer) hides the current outline
at a deep level, <backtab> should continue cycling outlines even when
the current outline heading is invisible.  It worked this way before
the recent change that moved cycling keys from font-lock text properties
to outline-minor-mode keymap with :filter.

2 years agoMerge from origin/emacs-28
Stefan Kangas [Tue, 11 Jan 2022 05:56:30 +0000 (06:56 +0100)]
Merge from origin/emacs-28

8db5f82d45 ; Fix tabulated-list-mode tests after revert

2 years agoFix creating GUI frames in an automatically started server on Haiku
Po Lu [Tue, 11 Jan 2022 05:36:09 +0000 (05:36 +0000)]
Fix creating GUI frames in an automatically started server on Haiku

* lisp/term/haiku-win.el: Correct specification of
`display-format-alist'.

2 years ago; Fix tabulated-list-mode tests after revert
Stefan Kangas [Tue, 11 Jan 2022 05:14:12 +0000 (06:14 +0100)]
; Fix tabulated-list-mode tests after revert

* test/lisp/emacs-lisp/tabulated-list-tests.el
(tabulated-list-print, tabulated-list-sort): Fix tests.

2 years ago(files-tests--with-buffer-offer-save): Turn it into a function
Stefan Monnier [Tue, 11 Jan 2022 03:40:55 +0000 (22:40 -0500)]
(files-tests--with-buffer-offer-save): Turn it into a function

* test/lisp/files-tests.el (files-tests--with-buffer-offer-save):
Turn it into a function.
(files-tests-save-buffers-kill-emacs--asks-to-save-buffers)
(files-tests-buffer-offer-save): Adjust calls accordingly

2 years ago(hack-one-local-variable-constantp): Mark as obsolete
Stefan Monnier [Tue, 11 Jan 2022 03:37:16 +0000 (22:37 -0500)]
(hack-one-local-variable-constantp): Mark as obsolete

* lisp/files.el (hack-one-local-variable-constantp): Mark as obsolete.
(hack-one-local-variable-eval-safep): Use `macroexp-const-p` instead.

2 years agoMerge remote-tracking branch 'origin/emacs-28' into trunk
Stefan Monnier [Tue, 11 Jan 2022 03:34:55 +0000 (22:34 -0500)]
Merge remote-tracking branch 'origin/emacs-28' into trunk

2 years agoUse 'auth-info-password' in tests
Sam Steingold [Sun, 9 Jan 2022 23:30:25 +0000 (18:30 -0500)]
Use 'auth-info-password' in tests

* test/lisp/auth-source-tests.el (auth-source-test-searches):
  (auth-source-test-secrets-create-secret):
  (auth-source-test-netrc-create-secret, auth-source-delete):
  Use 'auth-info-password' instead of ad hoc code.

2 years agoUpdate for the recent change
Sam Steingold [Sun, 9 Jan 2022 22:36:38 +0000 (17:36 -0500)]
Update for the recent change

* doc/misc/auth.texi (Help for developers): Document
  'auth-source-pick-first-password' and 'auth-info-password'.
  Update the 'auth-source-search' example.

2 years ago; * doc/lispref/display.texi (Face Attributes): Fix typo.
Po Lu [Tue, 11 Jan 2022 01:40:32 +0000 (09:40 +0800)]
; * doc/lispref/display.texi (Face Attributes): Fix typo.

2 years agoUse window beneath mouse for determining scroll deltas on Haiku
Po Lu [Tue, 11 Jan 2022 01:30:14 +0000 (01:30 +0000)]
Use window beneath mouse for determining scroll deltas on Haiku

* src/haikuterm.c (haiku_read_socket): Use window underneath
wheel for calculating scroll deltas.

2 years ago* src/filelock.c (lock_if_free): Fix Haiku positive errno check.
Po Lu [Tue, 11 Jan 2022 00:51:53 +0000 (00:51 +0000)]
* src/filelock.c (lock_if_free): Fix Haiku positive errno check.

2 years agoAssume C99 when defining pD
Paul Eggert [Mon, 10 Jan 2022 23:21:08 +0000 (15:21 -0800)]
Assume C99 when defining pD

* src/lisp.h (pD): Assume C99 or later, to simplify the ifdefs.

2 years agoDocument external maintenance of some packages
Karl Fogel [Mon, 10 Jan 2022 19:20:29 +0000 (13:20 -0600)]
Document external maintenance of some packages

Document the fact that some packages in Emacs are externally
maintained, and specifically document Org Mode's external maintenance.

For more context, see the thread that starts here:

  https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00366.html
  From: Karl Fogel
  To: Emacs Devel
  Subject: Improving documentation of Org Mode integration into Emacs.
  Date: Sat, 04 Dec 2021 15:14:59 -0600
  Message-ID: <87zgpgax7w.fsf@red-bean.com>

2 years agoAdd diff-mode-read-only to enable shorter keys in diff-mode
Juri Linkov [Mon, 10 Jan 2022 18:29:53 +0000 (20:29 +0200)]
Add diff-mode-read-only to enable shorter keys in diff-mode

To be able to use outline-minor-mode-cycle keys in diff-mode,
outline-minor-mode should be higher in minor-mode-map-alist,
and a new variable diff-mode-read-only should be set
when the diff-mode buffer is read-only.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00740.html

* lisp/vc/diff-mode.el: Add diff-mode-read-only to minor-mode-map-alist.
(diff-mode-read-only): New buffer-local variable.
(diff-mode): Set diff-mode-read-only to t when buffer-read-only is non-nil.
Update diff-mode-read-only in read-only-mode-hook.
Remove buffer-read-only from minor-mode-overriding-map-alist.
Remove view-mode-hook because now view-mode is higher than
diff-mode-read-only in minor-mode-map-alist.

* lisp/vc/vc-git.el (vc-git-stash-show):
* lisp/vc/vc.el (vc-diff-internal): Set buffer-read-only to t
before calling diff-mode that will set diff-mode-read-only.

2 years ago* lisp/outline.el: Don't set outline-minor font-lock text property 'keymap'.
Juri Linkov [Mon, 10 Jan 2022 18:20:09 +0000 (20:20 +0200)]
* lisp/outline.el: Don't set outline-minor font-lock text property 'keymap'.

Instead of adding font-lock text property 'keymap' with
outline-minor-mode-cycle on headings in outline-minor-mode,
check for outline-minor-mode-cycle and outline-on-heading-p
in :filter on keys from the keymap of outline-minor-mode.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00180.html

(outline-minor-mode-cycle--bind): Add a condition on outline-minor-mode-cycle
and outline-on-heading-p in :filter.
(outline-font-lock-keywords): Remove if-branches for outline-minor-mode-cycle
that added keymap.
(outline-minor-mode-highlight-buffer): Don't put keymap on overlays.
(outline-minor-mode): Rewrite :keymap setting to rely on
easy-mmode-define-keymap, and add :inherit outline-minor-mode-cycle-map.
Don't check for outline-minor-mode-cycle to add font-lock keywords.
(outline--insert-open-button, outline--insert-close-button):
Remove :parent outline-minor-mode-cycle-map.

2 years agoRevert "Remove the filename argument from the command line after an ELC+ELN build"
Eli Zaretskii [Mon, 10 Jan 2022 18:02:39 +0000 (20:02 +0200)]
Revert "Remove the filename argument from the command line after an ELC+ELN build"

This reverts commit ffc047c896413b6e00032518fc934f08768671fa.

Please don't install anything non-trivial on the release branch
without asking first.

2 years agoFix 'exchange-point-and-mark' in 'transient-mark-mode'
Eli Zaretskii [Mon, 10 Jan 2022 17:10:52 +0000 (19:10 +0200)]
Fix 'exchange-point-and-mark' in 'transient-mark-mode'

* lisp/simple.el (exchange-point-and-mark): Don't deactivate mark
when 'transient-mark-mode' is ON.  (Bug#53150)

2 years agoRemove the filename argument from the command line after an ELC+ELN build
Alan Mackenzie [Mon, 10 Jan 2022 17:05:41 +0000 (17:05 +0000)]
Remove the filename argument from the command line after an ELC+ELN build

This fixes bug #53164.  Without this fix, bootstrap-emacs loads the source
file uselessly into a buffer after completing the compilation.

2 years agoImplement recent improvements to underline display on PGTK
Po Lu [Mon, 10 Jan 2022 12:07:12 +0000 (20:07 +0800)]
Implement recent improvements to underline display on PGTK

* src/pgtkterm.c (pgtk_draw_glyph_string): Respect new underline
face fields.

2 years agoPrevent text decorations from overwriting surrounding areas on X
Po Lu [Mon, 10 Jan 2022 11:54:36 +0000 (19:54 +0800)]
Prevent text decorations from overwriting surrounding areas on X

* src/xterm.c (x_draw_underwave): New parameter
`decoration_width'.
(x_draw_glyph_string): Constrain decoration width to current
text area.

2 years agoAllow controlling the underline position of faces
Po Lu [Mon, 10 Jan 2022 11:26:46 +0000 (19:26 +0800)]
Allow controlling the underline position of faces

* doc/lispref/display.texi (Face Attributes): Document new
`:position' property of the `:underline' attribute.
* etc/NEWS: Announce new property.
* lisp/cus-face.el (custom-face-attributes): Implement
customization for new face attribute.
* src/dispextern.h (struct face): New fields
`underline_pixels_above_descent_line' and
`underline_at_descent_line_p'.
* src/haikuterm.c (haiku_draw_text_decoration):
* src/nsterm.m (ns_draw_text_decoration):
* src/w32term.c (w32_draw_glyph_string):
* src/xterm.c (x_draw_glyph_string): Respect new face fields.

* src/xfaces.c (realize_gui_face): Handle new `:position'
keyword.
(syms_of_xfaces): New symbol `:position'.

2 years ago* doc/emacs/xresources.texi (GTK resources): Fix dead links.
Po Lu [Mon, 10 Jan 2022 10:07:46 +0000 (18:07 +0800)]
* doc/emacs/xresources.texi (GTK resources): Fix dead links.

2 years agoLoad X resources from a settings file like other programs on Haiku
Po Lu [Mon, 10 Jan 2022 09:59:17 +0000 (09:59 +0000)]
Load X resources from a settings file like other programs on Haiku

* doc/emacs/haiku.texi (Haiku Basics): Document how X resources
are discovered on Haiku.
* src/haiku_support.cc (class Emacs): Load settings file.
(be_find_setting): New function.
* src/haiku_support.h (be_find_setting): New prototype.
* src/haikuterm.c (get_string_resource): Look in the settings
file if there's nothing in the in-memory resource database.

2 years ago* admin/MAINTAINERS: Add Tramp compatibility note
Michael Albinus [Mon, 10 Jan 2022 09:00:58 +0000 (10:00 +0100)]
* admin/MAINTAINERS: Add Tramp compatibility note

2 years agoUse phys cursor height instead of font base to set spot Y
Po Lu [Mon, 10 Jan 2022 06:38:18 +0000 (14:38 +0800)]
Use phys cursor height instead of font base to set spot Y

* src/xfns.c (xic_set_xfontset): Use `phys_cursor_height' to
avoid the spot potentially appearing at an incorrect position.

2 years agoDon't set callbacks on XIC when adjusting spot if callbacks are off
Po Lu [Mon, 10 Jan 2022 06:36:21 +0000 (14:36 +0800)]
Don't set callbacks on XIC when adjusting spot if callbacks are off

* src/xfns.c (xic_set_preeditarea): Don't set callbacks if the
XIC style is not XIMPreeditCallbacks.  (bug#53146)

2 years ago; * src/xterm.c (handle_one_xevent): Fix typo in last change.
Po Lu [Mon, 10 Jan 2022 03:34:57 +0000 (11:34 +0800)]
; * src/xterm.c (handle_one_xevent): Fix typo in last change.

2 years agoMake toggling native input methods via shift work again
Po Lu [Mon, 10 Jan 2022 03:29:35 +0000 (11:29 +0800)]
Make toggling native input methods via shift work again

* src/xterm.c (handle_one_xevent): Start filtering XI key
release events again, but drop the event if the IM asked.

2 years agoMake old elide-head commands wrappers for mode
Stefan Kangas [Mon, 10 Jan 2022 03:28:33 +0000 (04:28 +0100)]
Make old elide-head commands wrappers for mode

* lisp/elide-head.el (elide-head, elide-head-show): Make into
wrappers around elide-head-mode.

2 years ago(save-some-buffers): Simplify the fix for bug#46374
Stefan Monnier [Mon, 10 Jan 2022 02:02:31 +0000 (21:02 -0500)]
(save-some-buffers): Simplify the fix for bug#46374

* lisp/files.el (save-some-buffers): Only check the
`save-some-buffers-function` property on functions from
`save-some-buffers-default-predicate` since callers which provide
a `pred` argument can arrange to compute `pred` themselves if needed.

* test/lisp/files-tests.el (files-tests-buffer-offer-save): Don't test
with `pred` set to `save-some-buffers-root` since it's not an
appropriate function for that any more.

2 years agoDon't hard code key codes on Haiku
Po Lu [Mon, 10 Jan 2022 02:32:01 +0000 (02:32 +0000)]
Don't hard code key codes on Haiku

* src/haiku_support.cc (keysym_from_raw_char): New function.
(DispatchMessage): Map raw character to keysym if applicable.
(be_map_key): Delete function.
* src/haiku_support.h (struct haiku_key_event): Update fields
to hold keysym and character instead.
* src/haikuterm.c (haiku_read_socket): Don't call be_map_key,
and use keysym field if provided instead.

2 years agoMap some more keypad keys on Haiku
Po Lu [Mon, 10 Jan 2022 01:59:34 +0000 (01:59 +0000)]
Map some more keypad keys on Haiku

* src/haiku_support.cc (BMapKey): Rename to `be_map_key'.
(be_map_key): Recognize more key codes.
* src/haiku_support.h (BMapKey, be_map_key): Adjust accordingly.
* src/haikuterm.c (haiku_read_socket): Likewise.

2 years agoFix build without X11 I18N
Po Lu [Mon, 10 Jan 2022 01:00:48 +0000 (09:00 +0800)]
Fix build without X11 I18N

* src/xterm.c (event_handler_gdk):
(handle_one_xevent):
(x_draw_window_cursor):
(x_term_init): Fix build without HAVE_X_I18N.

2 years agoFix off-by-one errors in caret position application
Po Lu [Mon, 10 Jan 2022 00:40:26 +0000 (08:40 +0800)]
Fix off-by-one errors in caret position application

* src/gtkutil.c (xg_im_context_preedit_changed):
* src/xfns.c (xic_preedit_caret_callback):
(xic_preedit_draw_callback): Constrain caret position to
SCHARS (arg) - 1.

2 years ago* lisp/abbrev.el (edit-abbrevs-mode-map): Use defvar-keymap.
Stefan Kangas [Mon, 10 Jan 2022 00:03:22 +0000 (01:03 +0100)]
* lisp/abbrev.el (edit-abbrevs-mode-map): Use defvar-keymap.

2 years agoDo interactive mode tagging for edit-abbrevs-mode
Stefan Kangas [Sun, 9 Jan 2022 23:55:16 +0000 (00:55 +0100)]
Do interactive mode tagging for edit-abbrevs-mode

* lisp/abbrev.el (edit-abbrevs-redefine)
(abbrev-edit-save-to-file, abbrev-edit-save-buffer): Interactive mode
tagging for edit-abbrevs-mode.
(edit-abbrevs-mode): Make non-interactive.

2 years agoImprove docstring of edit-abbrevs
Stefan Kangas [Sun, 9 Jan 2022 23:59:59 +0000 (00:59 +0100)]
Improve docstring of edit-abbrevs

* lisp/abbrev.el (edit-abbrevs): Doc fix; don't use obsolete name.
Improve docstring formatting.