*
lisp/completions-highlight.el (completions-highlight--hide-completions-advise)
: New function to advise minibuffer-hide-completions.
(completions-highlight-select-near) : Unconditional recenter
* lisp/completions-highlight.el (completions-highlight-tab-no-scroll) :
New option to control if scroll or select with tab.
(completions-highlight--this-completion) : Removed
(completions-highlight-select-near) : Do search closer if not at point.
(with-minibuffer-scroll-window) : Changed to a function using Juri
Linkov
(minibuffer-choose-completion) : use
completions-highlight-from-minibuffer
(completions-highlight-minibuffer-map) : Use dolist and set only
completions-highlight-from-minibuffer
(completions-highlight--minibuffer-tab-through-completions) : Consider
the new custom to not scroll with tabs.
* lisp/completions-highlight.el (completions-highlight-this-completion) :
Rename as completions--highlight-this-completion
(completions-highlight-set-suffix) : New custom to control suffix in insertion
This asserts that the hooks are executed in some cases like when EOB.
*
lisp/completions-highlight (completions-highlight-completions-visible-p)
: New function
* lisp/completions-highlight.el (minibuffer-completion-set-suffix) :
Renamed as minibuffer-completion--set-suffix.
(completions-highlight--clear-suffix) : New function
(completions-highlight-minibuffer-tab-through-completions) : Renamed as
completions-highlight--minibuffer-tab-through-completions
(completions-highlight-completions-pre-command-hook) :
(completions-highlight-minibuffer-pre-command-hook) : Removed and
references substituted with completions-highlight--clear-suffix.
* lisp/completions-highlight.el (completions-highlight-this-completion)
: Use the new function completions-highlight-select-near.
(completions-highlight-next-completion) : Removed
(completions-highlight-select-near) : New function to select and
highlight next candidate closer to point.
(completions-highlight-previous-completion) :
(completions-highlight-next-line-completion) :
(completions-highlight-previous-line-completion) : Removed as they are
not needed with the hook.
(with-minibuffer-scroll-window) : Add call to
completions-highlight-this-completion at the end.
(minibuffer-next-completion) :
(completions-highlight-previous-completion) :
(completions-highlight-next-line-completion) :
(minibuffer-previous-line-completion) : Remove reference to removed
functions.
(completions-highlight-completions-map) : Clear the bindings for the
removed functions.
(completions-highlight-setup) : Set
completions-highlight-this-completion in post-command-hook instead of
isearch-mode-end-hook.
* lisp/completions-highlight.el (completions-highlight) : New face and
group.
(completions-highlight-mode) : Set new face to completions-highlight-overlay.
* lisp/completions-highlight.el (completions-highlight-autoselect) : New
custom.
(completions-highlight-setup) : Auto selects the first candidate when
completions-highlight-autoselect is non nil.
When completions-highlight-mode is enabled use
minibuffer-local-must-match-map as parent keymap.
(completions-highlight-minibuffer-map) : Enforces parent
minibuffer-local-must-match-map unconditionally.
(completions-highlight-completions-map) : Enforces
completion-list-mode-map as parent just in case.
* lisp/completions-highlight.el (completions-highlight-overlay) :
created on load.
(completions-highlight-completions-pre-command-hook) : Don't move
overlay here.
(completions-highlight-minibuffer-pre-command-hook) : Use delete overlay
instead of conditional
(completions-highlight-mode) : Use overlay-put here instead of the setup.
*
lisp/completions-highlight.el (completions-highlight-minibuffer-map-save) :
(completions-highlight-completions-map-save) : New variables to store
the maps before enabling mode.
(completions-highlight-minibuffer-map) :
(completions-highlight-completions-map) : Maps for the mode in
minibuffer and Completions.
(completions-highlight-minibuffer-bindings) :
(completions-highlight-completions-bindings) : Modified to do maps
handling using maps parent.
(completions-highlight-minibuffer-tab-through-completions) : Add call to
completions-highlight-completions-bindings.
(completions-highlight-minibuffer-bindings) : Fix name.
New mode to highlight candidates in *Completions* buffer and improve
navigation.
* lisp/completions-highlight.el : New file with the initial working
implementation. This is an initial version but functional for the moment.
* doc/lispref/hooks.texi : Document completion-setup-hook and
minibuffer-hide-completions-hook.
* doc/lispref/minibuf.texi : Add entries for the hooks.
* etc/NEWS : Briefly comment the modifications and the API.
Insert some modifications to implement completions highlighting.
This are changes needed in the minibuffer API to do highlighting from a
different package.
* lisp/minibuffer.el (minibuffer-tab-through-completions-function) : New
variable containing the action to do when pressing tab in minibuffer
and *Completions* are shown.
(minibuffer-tab-through-completions-default) : Default function value
for minibuffer-tab-through-completions-function.
(completion--in-region-1) : Modification to funcall
minibuffer-tab-through-completions-function.
(minibuffer-hide-completions-hook) : New hook to call after
closing *Completions* buffer.
(minibuffer-hide-completions) : Modify to run hook
minibuffer-hide-completions-hook.
Eli Zaretskii [Fri, 20 Nov 2020 15:00:36 +0000 (17:00 +0200)]
Fix compilation on MS-Windows with librsvg > 2.46.0
* src/image.c (rsvg_handle_get_dimensions, init_svg_functions):
Make 'rsvg_handle_get_dimensions' available and defined for all
versions of librsvg. (Bug#44655)
Stefan Monnier [Thu, 19 Nov 2020 22:13:04 +0000 (17:13 -0500)]
* src/data.c (set_internal): Fix bug#44733
Set the default value when `set` encounters a PER_BUFFER variable
which has been let-bound globally, to match the behavior seen with
`make-variable-buffer-local`.
* test/src/data-tests.el (binding-test--let-buffer-local):
Add corresponding test.
(data-tests--set-default-per-buffer): Add tentative test for the
performance problem encountered in bug#41029.
Stefan Kangas [Thu, 19 Nov 2020 16:41:18 +0000 (17:41 +0100)]
Remove some compat code from url.el
* lisp/url/url.el (url-warn): Make into obsolete alias for
display-warning.
* lisp/url/url-auth.el (url-register-auth-scheme):
* lisp/url/url-news.el (url-news-open-host):
* lisp/url/url-proxy.el (url-find-proxy-for-url): Adjust callers.
All-ASCII strings cannot have substrings with non-ASCII characters in
them; use this fact to avoid searching entirely.
* src/fns.c (Fstring_search): For multibyte non-ASCII needle and
unibyte haystack, don't check if the haystack is all-ASCII; it's a
waste of time. For multibyte non-ASCII needle and multibyte
all-ASCII haystack, fail immediately.
* test/src/fns-tests.el (string-search): Add more test cases.
Alan Mackenzie [Thu, 19 Nov 2020 10:31:50 +0000 (10:31 +0000)]
In attempted recursive minibuffer use, display error message in correct frame
This was problematic when minibuffer-follows-selected-frame was non-nil.
Introduce a new parameter DONT-SET-FRAME to set-window-configuration.
* doc/lispref/windows.texi (Window Configurations): Describe the new &optional
parameter to set-window-configuration.
* etc/NEWS (Lisp Changes): Note the new parameter to set-window-configuration.
* src/keyboard.c (read_char_help_form_unwind): Add a new Qnil argument to the
call of Fset_window_configuration.
* src/minibuf.c (read_minibuf): Cons up a Qt with the window configuration in
the argument to record_unwind_protect for the window configuration (twice).
* src/window.c (Fset_window_configuration): Add the new &optional parameter
and document it in the doc string. At the final do_switch_frame operation,
restore the original frame when DONT-SET-FRAME is non-nil.
(restore_window_configuration): Handle the new parameter when the supplied
argument is a cons.
Stefan Kangas [Thu, 19 Nov 2020 05:12:25 +0000 (06:12 +0100)]
Add new variable cperl-tags-file-name
* lisp/progmodes/cperl-mode.el (cperl-tags-file-name): New variable.
(cperl-write-tags): Use above new variable instead of hardcoding
filename "TAGS". (Bug#8802)
This avoids unnecessary body duplication in expansion and macro
recursion (causing macro-expansions at runtime), making it clearer
what is going on.
* lisp/progmodes/gdb-mi.el (gdb-wait-for-pending): Make it a function,
remove lambda quoting, η-reduce and simplify.
(gdb-thread-exited, gdb-thread-selected): Adapt callers.
The :local tag does not currently work as intended (it results in a
default value of bibtex-unify-case-convert of nil rather than
identity), and no other bibtex.el user option is automatically
buffer-local, so revert this recent change.
For discussion, see the following emacs-devel thread:
https://lists.gnu.org/r/emacs-devel/2020-11/msg00734.html
* lisp/textmodes/bibtex.el (bibtex-unify-case-convert): Don't make
automatically buffer-local for consistency with other user options,
and because the :local tag doesn't have the intended results.
Michael Albinus [Wed, 18 Nov 2020 10:32:38 +0000 (11:32 +0100)]
Preserve `dired-filename' text properties in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
Restore `dired-filename' text property, which has been destroyed
by `decode-coding-region'. (Bug#44682)
Alan Mackenzie [Tue, 17 Nov 2020 16:51:49 +0000 (16:51 +0000)]
Enhance syntax-tests.el to test nestable comments (Lisp style)
Also add some tests for braces and parse-partial-sexp amongst Lisp style
comments.
* test/src/syntax-tests.el (\;-in, \;-out): Add syntax for { and }.
(top-level): Add new tests for Lisp style comments.
(\#|-in, \#|-out): New functions.
(top-level): Add new tests for nested Lisp style comments, and mixtures of
nested comments with "ordinary" comments.
* test/src/syntax-resources/syntax-comments.txt (top-level): Add new test
fragments for #|...|#, etc.
Stefan Kangas [Tue, 17 Nov 2020 11:13:13 +0000 (12:13 +0100)]
Add command to filter package menu by name or description
* lisp/emacs-lisp/package.el (package-menu-filter-by-description):
(package-menu-filter-by-name-or-description): New commands to filter
the package menu. (Bug#44699)
(package-menu-mode-map): Bind the above new commands.
(package-menu-mode-menu): Add new commands to the menu.
* doc/emacs/package.texi (Package Menu): Document new commands.
Ruthra Kumar [Mon, 16 Nov 2020 22:04:36 +0000 (23:04 +0100)]
Use 'eshell-find-alias-function' instead of fboundp
* lisp/eshell/esh-cmd.el (eshell-invoke-directly): Fix problem
with (require 'em-tramp) making password prompting from "sudo
bash" no longer work (bug#43772).
Glenn Morris [Mon, 16 Nov 2020 17:05:31 +0000 (09:05 -0800)]
Merge from origin/emacs-27
75723ec212 (origin/emacs-27) ; * lisp/emacs-lisp/benchmark.el (benchm... 53e2a612ad ; * lib-src/make-fingerprint.c: Update commentary. 286c632772 Reformat argument commentary in etags.c 4ec740866a Make the invocation of combine-change-calls in comment-reg... 66bcec8838 * lisp/progmodes/cc-langs.el (c-<>-notable-chars-re): Fix ... 03eeab469e ; Update the expected result files in test/manual/etags. d875a22bc6 Update the various INSTALL files
Glenn Morris [Mon, 16 Nov 2020 16:59:47 +0000 (08:59 -0800)]
Merge from origin/emacs-27
19da602991 Fix input method translation near read-only text 5aabf2cc7f Fix display of truncated R2L lines on TTY frames daff3bda10 Avoid crashes when a reversed glyph row starts with a comp... b697bb91a1 ; * .gitignore: src/fingerprint.c not generated since 2019...
Juri Linkov [Sun, 15 Nov 2020 20:32:39 +0000 (22:32 +0200)]
New user options 'copy-region-blink-delay' and 'delete-pair-blink-delay'
* lisp/emacs-lisp/lisp.el (delete-pair-blink-delay): New defcustom.
(delete-pair): Use it. (Bug#4136)
* lisp/simple.el (copy-region-blink-delay): New defcustom.
(indicate-copied-region): Use it. (Bug#42865)
Thanks to Sean Whitton <spwhitton@spwhitton.name>.
(indicate-copied-region): Use 'query-replace-descr' not to show
newlines literally. Use "Copied text" instead of misleading
"Saved text" (bug#42865).
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
The comments above the regexp for the 'gnu' rule contained
references to the previous string regexp, which has been difficult
to follow ever since the translation to rx. Move the comments
to their proper places, and add some guiding notes.
Alan Mackenzie [Sun, 15 Nov 2020 13:23:15 +0000 (13:23 +0000)]
Make the invocation of combine-change-calls in comment-region valid
This fixes bug #44581. The problem was that whitespace outside of the (BEG
END) region was being deleted, and this made the invocation of
combine-change-calls with (BEG END) invalid.
* lisp/newcomment.el (comment-region-default): Amend the second argument to
combine-change-calls.
Stefan Kangas [Sun, 15 Nov 2020 01:41:36 +0000 (02:41 +0100)]
Make initial frame match frame-title-format
* src/xterm.c (x_term_init):
* src/w32term.c (w32_initialize_display_info): Sync initial frame
title with new value of Vframe_title_format.
Problem reported by Angelo Graziosi <angelo.g0@libero.it>.
Stefan Kangas [Sat, 14 Nov 2020 23:53:32 +0000 (00:53 +0100)]
Run menu-item :filter function before showing binding
* lisp/help.el (describe-map): Fix running `menu-item' :filter
functions. This fixes a mistake in the previous conversion of this
defun from the old C function describe_map. See the discussion in
Bug#39149.
* test/src/keymap-tests.el
(keymap---get-keyelt/runs-menu-item-filter)
(describe-buffer-bindings/menu-item-filter-show-binding)
(describe-buffer-bindings/menu-item-filter-hide-binding):
New tests.
(keymap-tests--test-menu-item-filter): New defun.