]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years agoNew placement of newline characters in image-dired-db-file
Peter Münster [Tue, 17 Aug 2021 23:37:43 +0000 (01:37 +0200)]
New placement of newline characters in image-dired-db-file

It's more usual to have the newline at the end of the line, instead of the
beginning. This change avoids missing newline at the end of the file, an
empty line at the start and eventually a lot of empty lines when
`require-final-newline' is not nil.

* lisp/image-dired.el (image-dired-write-tags): Insert newline at the end
of the line, instead of the beginning.
(image-dired-remove-tag): Do not delete empty line at end of buffer.

3 years agoFix deletion of associated image
Peter Münster [Mon, 16 Aug 2021 22:19:08 +0000 (00:19 +0200)]
Fix deletion of associated image

* lisp/image-dired.el (image-dired-delete-marked): Treat original images
first, because point position is used when there are no marked files.

3 years agoFix inaccuracies in documentation of 'message-truncate-lines'
Eli Zaretskii [Thu, 19 Aug 2021 12:44:55 +0000 (15:44 +0300)]
Fix inaccuracies in documentation of 'message-truncate-lines'

* doc/lispref/display.texi (Echo Area Customization):
* src/xdisp.c (syms_of_xdisp): Adjust the documentation of
message-truncate-lines to changes that fixed bug#46718.

3 years agoMinor doc fixes in icomplete.el
Eli Zaretskii [Thu, 19 Aug 2021 12:29:49 +0000 (15:29 +0300)]
Minor doc fixes in icomplete.el

* lisp/icomplete.el (icomplete-section): Add :version.
(icomplete--augment): Doc fix.

3 years ago; * src/xdisp.c (hscroll_window_tree): Fix a typo in a comment.
Eli Zaretskii [Thu, 19 Aug 2021 12:25:26 +0000 (15:25 +0300)]
; * src/xdisp.c (hscroll_window_tree): Fix a typo in a comment.

3 years agoFix errors with hscrolling mini-windows under truncate-lines
Eli Zaretskii [Thu, 19 Aug 2021 12:24:14 +0000 (15:24 +0300)]
Fix errors with hscrolling mini-windows under truncate-lines

* src/xdisp.c (hscroll_window_tree): Disallow hscroll in
mini-windows that display echo-area messages.  (Bug#50096)

3 years agostterm doesn't understand all codes that xterm does
Lars Ingebrigtsen [Thu, 19 Aug 2021 12:18:27 +0000 (14:18 +0200)]
stterm doesn't understand all codes that xterm does

* lisp/term/st.el (xterm-st-extra-capabilities): New user option
(bug#50119).
(terminal-init-st): Use it to avoid a two-second timeout.

3 years ago; Correct :version tag of icomplete-selected-match face
João Távora [Thu, 19 Aug 2021 10:29:14 +0000 (11:29 +0100)]
; Correct :version tag of icomplete-selected-match face

* lisp/icomplete.el (icomplete-selected-match): Fix :version

3 years agoSection by 'group-function' in Icomplete and Fido's vertical modes
João Távora [Wed, 18 Aug 2021 23:48:26 +0000 (00:48 +0100)]
Section by 'group-function' in Icomplete and Fido's vertical modes

Fixes: bug#48545
* lisp/icomplete.el (icomplete--augment): Rewrite from icomplete--affixate.
(icomplete--render-vertical): Rework.
(icomplete--vertical-minibuffer-setup): Separator is hardcoded "\n", no
need to set.

3 years agoImprove fix of bug#49888 on no-pattern flex sorting
João Távora [Thu, 19 Aug 2021 10:04:37 +0000 (11:04 +0100)]
Improve fix of bug#49888 on no-pattern flex sorting

This version is functionally equivalent, but doesn't duplicate any
code.  When nothing "flexy" is happening, it works by simply not doing
any metadata adjustments, instead of attempting to synthesize a
function to mimic the non-flex case.

* lisp/minibuffer.el (completion--flex-adjust-metadata): Simplify.

3 years agoFix vc-root-diff broken with Git as well
Dmitry Gutov [Thu, 19 Aug 2021 00:57:58 +0000 (03:57 +0300)]
Fix vc-root-diff broken with Git as well

* lisp/vc/vc.el (vc-root-diff): Fix similar to 35023214031e1 by
avoiding the abbreviated directory name in argument (bug#39452).

3 years agoImprove documentation of 'assoc'
Eli Zaretskii [Wed, 18 Aug 2021 19:07:30 +0000 (22:07 +0300)]
Improve documentation of 'assoc'

* doc/lispref/lists.texi (Association Lists):
* src/fns.c (Fassoc): Document how TESTFN is called.  (Bug#50110)

3 years ago; Fix paren typo
Glenn Morris [Wed, 18 Aug 2021 18:50:42 +0000 (11:50 -0700)]
; Fix paren typo

3 years ago* lisp/progmodes/xref.el (xref--collect-matches): Widen temporarily.
Juri Linkov [Wed, 18 Aug 2021 17:02:39 +0000 (20:02 +0300)]
* lisp/progmodes/xref.el (xref--collect-matches): Widen temporarily.

3 years ago* lisp/mouse.el: More fixes for context-menu.
Juri Linkov [Wed, 18 Aug 2021 17:01:03 +0000 (20:01 +0300)]
* lisp/mouse.el: More fixes for context-menu.

(context-menu-map): Remove menu title "Context Menu" (bug#50067).
(context-menu-minor): Reverse sub-menus to display exactly in the same order
as on the menu bar.

3 years agoImprove documentation of last change.
Eli Zaretskii [Wed, 18 Aug 2021 16:10:01 +0000 (19:10 +0300)]
Improve documentation of last change.

* etc/NEWS: Mention the string value of 'auto-composition-mode'.

* src/composite.c (syms_of_composite) <auto-composition-mode>: Doc
fix.

3 years agoDisable auto compositions on the Linux console only
Lars Ingebrigtsen [Wed, 18 Aug 2021 14:24:40 +0000 (16:24 +0200)]
Disable auto compositions on the Linux console only

* lisp/term/linux.el (terminal-init-linux): Disable auto
compositions on "linux" consoles (bug#21363).

* src/composite.c (inhibit_auto_composition): New function to
implement this.
(composition_compute_stop_pos, composition_adjust_point)
(Ffind_composition_internal): Use it.
(syms_of_composite): Document it.

* src/lisp.h: Export tty_type_name.

* src/term.c (tty_type_name): Factored out.
(Ftty_type): Use it.

3 years agoAdd undo-in-region test case for bug#21523
Lars Ingebrigtsen [Wed, 18 Aug 2021 13:32:19 +0000 (15:32 +0200)]
Add undo-in-region test case for bug#21523

3 years agoYet another place inside redisplay_window to prevent quitting
Eli Zaretskii [Wed, 18 Aug 2021 13:14:29 +0000 (16:14 +0300)]
Yet another place inside redisplay_window to prevent quitting

* src/xdisp.c (handle_single_display_spec): Inhibit quitting
around the call to lookup_image.  (Bug#44448)

3 years agoFix abort when turning on Hebrew or Arabic input methods
Eli Zaretskii [Wed, 18 Aug 2021 13:01:57 +0000 (16:01 +0300)]
Fix abort when turning on Hebrew or Arabic input methods

* src/xdisp.c (face_before_or_after_it_pos): Add the missing
initialization of the bidi scan direction.  (Bug#50107)

3 years agoAdd menu bindings to new functions in image-dired.el
Peter Münster [Wed, 18 Aug 2021 12:53:25 +0000 (14:53 +0200)]
Add menu bindings to new functions in image-dired.el

* lisp/image-dired.el (image-dired--with-marked): New macro for
cycling over marked thumbnails.
(image-dired-tag-thumbnail, image-dired-tag-thumbnail-remove): Can
handle now also all marked thumbnails.
(image-dired-tag-marked-thumbnails): Remove it, because it's
obsoleted by `image-dired-tag-thumbnail' now.
(image-dired-delete-marked): Use new macro
`image-dired--with-marked', and add command to menu (bug#50000).

3 years ago; * etc/NEWS (Icomplete): Fix typo and remove redundant word
João Távora [Wed, 18 Aug 2021 10:37:55 +0000 (11:37 +0100)]
; * etc/NEWS (Icomplete): Fix typo and remove redundant word

3 years agoFix ediff3 layouts with window-combination-resize non-nil (Bug#49277)
pillule [Wed, 18 Aug 2021 07:21:06 +0000 (09:21 +0200)]
Fix ediff3 layouts with window-combination-resize non-nil (Bug#49277)

* lisp/vc/ediff-wind.el (ediff-setup-windows-plain-compare)
(ediff-setup-windows-multiframe-compare): Fix three windows
layouts produced by ediff3 when 'window-combination-resize'
was customized to t and 'even-window-sizes' to nil.

3 years agoFix behavior when switch-to-prev-buffer-skip is a function (Bug#49275)
pillule [Wed, 18 Aug 2021 07:16:06 +0000 (09:16 +0200)]
Fix behavior when switch-to-prev-buffer-skip is a function (Bug#49275)

* lisp/window.el (switch-to-prev-buffer)
(switch-to-next-buffer): More correctly handle cases where
'switch-to-prev-buffer-skip' is a function.

3 years ago; Fix quoting of braces in electric-tests.el.
Basil L. Contovounesios [Tue, 17 Aug 2021 23:54:44 +0000 (00:54 +0100)]
; Fix quoting of braces in electric-tests.el.

3 years ago* Fix `native-compile-target-directory' effectiveness for async compilation.
Andrea Corallo [Tue, 17 Aug 2021 21:44:12 +0000 (23:44 +0200)]
* Fix `native-compile-target-directory' effectiveness for async compilation.

* lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward to async
workers `native-compile-target-directory'.

3 years ago* lisp/mouse.el (context-menu-filter-function): Fix type.
Glenn Morris [Tue, 17 Aug 2021 18:31:09 +0000 (11:31 -0700)]
* lisp/mouse.el (context-menu-filter-function): Fix type.

3 years agoAnother fix for quitting while displaying non-selected windows
Eli Zaretskii [Tue, 17 Aug 2021 18:29:58 +0000 (21:29 +0300)]
Another fix for quitting while displaying non-selected windows

* src/xdisp.c (handle_face_prop, extend_face_to_end_of_line):
Inhibit quitting around the call to face_at_pos, to prevent
leaking wrong value of point when the user quits while we
redisplay a non-selected window.  (Bug#44448)

3 years ago* test/lisp/electric-tests.el: Skip most c-mode tests on hydra.
Glenn Morris [Tue, 17 Aug 2021 15:53:00 +0000 (08:53 -0700)]
* test/lisp/electric-tests.el: Skip most c-mode tests on hydra.

3 years ago; * etc/NEWS: Fix wording of a recently added entry.
Eli Zaretskii [Tue, 17 Aug 2021 12:47:10 +0000 (15:47 +0300)]
; * etc/NEWS: Fix wording of a recently added entry.

3 years ago; Fix a comment in a recent commit.
Eli Zaretskii [Tue, 17 Aug 2021 12:40:05 +0000 (15:40 +0300)]
; Fix a comment in a recent commit.

* lisp/help-mode.el (help-mode-syntax-table): Fix punctuation in a
comment.

3 years agoFix TTY display performance degradation due to many markers
Eli Zaretskii [Tue, 17 Aug 2021 12:31:53 +0000 (15:31 +0300)]
Fix TTY display performance degradation due to many markers

* src/coding.c (encode_coding_object): Don't assume that
src_object == dst_object means src_object is the current buffer.
Add the missing commentary that explains the arguments.
(Bug#49127)

3 years agoImprove `forward-sexp' in *Help* buffers
Michalis V [Tue, 17 Aug 2021 12:20:57 +0000 (14:20 +0200)]
Improve `forward-sexp' in *Help* buffers

* lisp/help-mode.el (help-mode-syntax-table): New variable (bug#39134).
(help-make-xrefs): Use it to make picking out symbols in curved
quotes work reliably.
(help-xref-on-pp): Ditto.

3 years agoBind <up> and <down> in icomplete-vertical-mode
João Távora [Tue, 17 Aug 2021 12:06:06 +0000 (13:06 +0100)]
Bind <up> and <down> in icomplete-vertical-mode

Suggested by Ergus <spacibba@aol.com>

* lisp/icomplete.el (icomplete-vertical-mode-minibuffer-map): Bind
<up> and <down>

3 years agoJump to first,last completion with M-<, M-> in icomplete-vertical-mode
João Távora [Tue, 17 Aug 2021 11:48:37 +0000 (12:48 +0100)]
Jump to first,last completion with M-<, M-> in icomplete-vertical-mode

Fixes: bug#49005
Co-authored-by: Simon Lang <simon.lang@outlook.com>
* lisp/icomplete.el (icomplete-backward-completions): Return
non-nil iff something was stepped.  Ajust docstring.
(icomplete-forward-completions): Adjust docstring.
(icomplete-vertical-goto-first, icomplete-vertical-goto-last): New commands.
(icomplete-vertical-mode-minibuffer-map): Bind new commands to M-< and M->.

3 years agoMerge branch 'feature/context-menu'
Juri Linkov [Tue, 17 Aug 2021 08:11:35 +0000 (11:11 +0300)]
Merge branch 'feature/context-menu'

3 years agoruby-mode imenu: Support methods with modifiers
Dmitry Gutov [Tue, 17 Aug 2021 01:07:19 +0000 (04:07 +0300)]
ruby-mode imenu: Support methods with modifiers

* lisp/progmodes/ruby-mode.el (ruby-imenu-create-index-in-block):
Support methods with modifiers (visibility or otherwise)
(bug#50079).

3 years agovc-git-region-history: Fix to call 'diff' more correctly
Dmitry Gutov [Tue, 17 Aug 2021 00:32:12 +0000 (03:32 +0300)]
vc-git-region-history: Fix to call 'diff' more correctly

* lisp/vc/vc-git.el (vc-git-region-history):
Fix to pass a list to the backend 'diff' command (bug#39452).

3 years agoMake icomplete-vertical-mode take immediate effect (bug#49075)
João Távora [Mon, 16 Aug 2021 22:15:12 +0000 (23:15 +0100)]
Make icomplete-vertical-mode take immediate effect (bug#49075)

* etc/NEWS: Mention change.

* lisp/icomplete.el (icomplete-vertical-mode):
(fido-vertical-mode): Tweak docstring.  Turn on
icomplete-mode. and fido-mdoe

3 years ago; Fix menu entry alignment of last change
Stephen Berman [Mon, 16 Aug 2021 20:55:50 +0000 (22:55 +0200)]
; Fix menu entry alignment of last change

* doc/lispref/elisp.texi (Top): Fix alignment.

3 years ago* test/Makefile.in: Verbose logging for electric-tests on hydra.
Glenn Morris [Mon, 16 Aug 2021 19:34:53 +0000 (12:34 -0700)]
* test/Makefile.in: Verbose logging for electric-tests on hydra.

3 years agoPlug another hole for longjmp-ing from 'redisplay_window'
Eli Zaretskii [Mon, 16 Aug 2021 19:06:26 +0000 (22:06 +0300)]
Plug another hole for longjmp-ing from 'redisplay_window'

* src/fringe.c (update_window_fringes): Inhibit quitting, so as
not to longjmp out of redisplay_window.  (Bug#44448)

3 years agoAdd Command Modes to Elisp manual menu and add index entries
Stephen Berman [Mon, 16 Aug 2021 17:13:53 +0000 (19:13 +0200)]
Add Command Modes to Elisp manual menu and add index entries

* doc/lispref/commands.texi (Command Modes): Add index entries.

* doc/lispref/elisp.texi (Top): Add entry for the Command Modes
node to the detailed node listing.

3 years agoFix recent documentation additions
Eli Zaretskii [Mon, 16 Aug 2021 17:11:33 +0000 (20:11 +0300)]
Fix recent documentation additions

* doc/lispref/searching.texi (Search and Replace): Document the
new functions by @defun.

3 years agoMerge from origin/emacs-27
Glenn Morris [Mon, 16 Aug 2021 15:01:03 +0000 (08:01 -0700)]
Merge from origin/emacs-27

9664ee182c (origin/emacs-27) C++ Mode: Don't confuse the pointer oper...
b3aec9ee48 CC Mode: Fix unstable fontification of doc strings.

# Conflicts:
# lisp/progmodes/cc-fonts.el

3 years agoMake overlays-in treat zero-length overlays at point-max consistently
Lars Ingebrigtsen [Mon, 16 Aug 2021 13:40:43 +0000 (15:40 +0200)]
Make overlays-in treat zero-length overlays at point-max consistently

* doc/lispref/display.texi (Finding Overlays): Adjust documentation.

* src/buffer.c (overlays_in): Treat the end of the buffer and the
end of the narrowed-to buffer the same (bug#19422).
(Foverlays_in): Adjust doc string.

3 years agoFix cursor movement on the Linux console with certain characters
Lars Ingebrigtsen [Mon, 16 Aug 2021 12:49:19 +0000 (14:49 +0200)]
Fix cursor movement on the Linux console with certain characters

* lisp/term/linux.el (terminal-init-linux): Switch off
auto-compositions, because they confuse cursor movement on the
Linux console (bug#21363).

3 years agoMinor clarification for define-minor-mode :variable
Lars Ingebrigtsen [Mon, 16 Aug 2021 12:24:53 +0000 (14:24 +0200)]
Minor clarification for define-minor-mode :variable

* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
* doc/lispref/modes.texi (Defining Minor Modes): Clarify what the
setter function should do (bug#14875).

3 years agoRemove prettification for \par in tex-mode
Clément Pit-Claudel [Mon, 16 Aug 2021 12:10:41 +0000 (14:10 +0200)]
Remove prettification for \par in tex-mode

* lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Remove
prettified version of `\par'.  Many fonts don't display anything for
the character it was mapped to (#x2029 PARAGRAPH SEPARATOR), so
enabling prettification makes every `\par' disappear (bug#50073).

3 years ago; * test/lisp/vc/diff-mode-tests.el: Remove useless \
Mattias Engdegård [Mon, 16 Aug 2021 09:37:19 +0000 (11:37 +0200)]
; * test/lisp/vc/diff-mode-tests.el: Remove useless \

3 years agoAdd new functions to replace strings/regexp in a region
Lars Ingebrigtsen [Mon, 16 Aug 2021 11:20:35 +0000 (13:20 +0200)]
Add new functions to replace strings/regexp in a region

* doc/lispref/searching.texi (Search and Replace): Document them.
* lisp/subr.el (replace-string-in-region)
(replace-regexp-in-region): New functions.

* lisp/emacs-lisp/shortdoc.el (regexp, buffer): Mention them.

3 years agoDon't remove `fontified' in nxml--buffer-substring-filter
Lars Ingebrigtsen [Mon, 16 Aug 2021 11:17:25 +0000 (13:17 +0200)]
Don't remove `fontified' in nxml--buffer-substring-filter

* lisp/nxml/nxml-mode.el (nxml--buffer-substring-filter): Removing
`fontified' is probably unnecessary (bug#50061).

3 years agoFix regressions in the last change
Dmitry Gutov [Mon, 16 Aug 2021 00:13:30 +0000 (03:13 +0300)]
Fix regressions in the last change

* lisp/vc/vc-git.el (vc-git-register):
Use file names verbatim with 'git update-index', as it only accepts
file names, not pathspecs (bug#39452).

* lisp/vc/vc.el (vc-print-root-log):
Expand ROOTDIR, so that vc-git-print-log doesn't receive an
abbreviated name.  Literal pathspecs don't work with those.

3 years agoC++ Mode: Don't confuse the pointer operator -> with the type indicating ->
Alan Mackenzie [Sun, 15 Aug 2021 19:43:58 +0000 (19:43 +0000)]
C++ Mode: Don't confuse the pointer operator -> with the type indicating ->

This fixes bug #47468.

* lisp/progmodes/cc-engine.el (c-looking-at-inexpr-block): While searching
backwards for "->" which is a type indicating operator, disallow also commas.

3 years agoCC Mode: Fix unstable fontification of doc strings.
Alan Mackenzie [Sun, 15 Aug 2021 18:08:25 +0000 (18:08 +0000)]
CC Mode: Fix unstable fontification of doc strings.

Also optimize a loop over several line doc-comments.

* lisp/progmodes/cc-fonts.el (c-font-lock-doc-comments): New variable
comment-mid, used as the starting point for applying c-doc-face-name in a
line comments.  In block comments, apply this face not from `comment-beg' but
from `region-beg', no earlier than the start of the fontification region.

3 years agoUse map-keymap in context-menu-global, context-menu-local, context-menu-minor
Juri Linkov [Sun, 15 Aug 2021 16:27:06 +0000 (19:27 +0300)]
Use map-keymap in context-menu-global, context-menu-local, context-menu-minor

3 years ago* lisp/simple.el (shift-select-mode): Add new choice 'permanent' (bug#50038).
Juri Linkov [Sun, 15 Aug 2021 16:18:05 +0000 (19:18 +0300)]
* lisp/simple.el (shift-select-mode): Add new choice 'permanent' (bug#50038).

(handle-shift-selection): Handle new choice 'permanent'.

3 years ago* lisp/tab-bar.el (tab-bar-new-button-show): Make variable obsolete.
Juri Linkov [Sun, 15 Aug 2021 16:15:42 +0000 (19:15 +0300)]
* lisp/tab-bar.el (tab-bar-new-button-show): Make variable obsolete.

3 years ago* lisp/nxml/nxml-mode.el (nxml-mode): Use add-function
Stefan Monnier [Sun, 15 Aug 2021 14:18:08 +0000 (10:18 -0400)]
* lisp/nxml/nxml-mode.el (nxml-mode): Use add-function

This avoids calling the internal function `buffer-substring--filter`
from `nxml.el`.

(nxml--buffer-substring-filter): Adjust accordingly.

3 years agoFilter out rng-state elements in nxml-mode buffers from the kill ring
Lars Ingebrigtsen [Sun, 15 Aug 2021 13:43:35 +0000 (15:43 +0200)]
Filter out rng-state elements in nxml-mode buffers from the kill ring

* lisp/nxml/nxml-mode.el (nxml--buffer-substring-filter): Filter
out `rng-state' objects (bug#50061).
(nxml-mode): Set `filter-buffer-substring-function'.

3 years agoSort by recency in flex completion style when no flexy stuff happening
João Távora [Sun, 15 Aug 2021 12:19:59 +0000 (13:19 +0100)]
Sort by recency in flex completion style when no flexy stuff happening

Fixes: bug#49888
* minibuffer.el (completion--flex-adjust-metadata): Fall back to usual
alphanumeric, length, recency strategy if no minibuffer input.  There
is still a bug indicated by the nearby FIXMEs, though.

3 years agoAllow evaluating Python code across machines
Augusto Stoffel [Sun, 15 Aug 2021 12:00:49 +0000 (14:00 +0200)]
Allow evaluating Python code across machines

* python.el (python-shell-send-string): Ensure that the temporary file
is created in the host running the Python process (bug#50057).

3 years agoRun execute-extended-command key binding suggestion from a timer
Lars Ingebrigtsen [Sun, 15 Aug 2021 11:36:24 +0000 (13:36 +0200)]
Run execute-extended-command key binding suggestion from a timer

* lisp/simple.el (execute-extended-command): Run the key binding
suggestion from a timer instead of in the program flow -- this
allows `post-command-hook' to be executed immediately (bug#50042).

3 years agoMake Emacs compile with musl instead of glibc
Lars Ingebrigtsen [Sun, 15 Aug 2021 11:25:18 +0000 (13:25 +0200)]
Make Emacs compile with musl instead of glibc

* src/alloc.c: musl doesn't have malloc_info (bug#50058).

3 years ago; * src/xdisp.c (display_mode_lines): Fix comment.
Eli Zaretskii [Sun, 15 Aug 2021 11:18:17 +0000 (14:18 +0300)]
; * src/xdisp.c (display_mode_lines): Fix comment.

3 years agoFix unwarranted point movement after C-g
Eli Zaretskii [Sun, 15 Aug 2021 11:11:23 +0000 (14:11 +0300)]
Fix unwarranted point movement after C-g

When the same buffer is displayed in more than one window,
redisplay temporarily moves point to the window-point when it
works on non-selected windows.  If we allow C-g to quit out of
redisplay_window in this situation, point will appear to have
moved to the window-point of that non-selected window, which is
unwarranted.  These changes prevent quitting in strategic places,
so that we never quit out of redisplay_window.
* src/xdisp.c (run_window_scroll_functions):
Prevent quitting while running window-scroll-functions, so that we
don't quit out of redisplay_window with temporarily moved point.
(redisplay_window): While redisplaying the mode line, prevent
quitting, to avoid exiting while point is temporarily moved.
(decode_mode_spec): Use safe_call1 instead of call1, to trap any
errors instead of letting them throw out of redisplay.  (Bug#44448)

3 years agoMark up commands in shortdoc.el for modes
Masahiro Nakamura [Sun, 15 Aug 2021 09:54:56 +0000 (11:54 +0200)]
Mark up commands in shortdoc.el for modes

* lisp/emacs-lisp/shortdoc.el: Add command mode tagging
(bug#50064).

3 years agoFix bug#50063 when using icomplete-fido-kill with C-x p p
João Távora [Sun, 15 Aug 2021 08:12:23 +0000 (09:12 +0100)]
Fix bug#50063 when using icomplete-fido-kill with C-x p p

C-x p p utilizes a completion table "category" which is 'project-file'
icomplete-fido-kill only functioned for 'buffer' and 'file', and
failed with a non-informative message when something else was used.

* lisp/icomplete.el (icomplete-fido-kill): Support 'project-file'
class.  Use cl-case, instead of pcase.

3 years agoFix vc-git-state for filenames with wildcards
Wolfgang Scherer [Sun, 15 Aug 2021 01:02:23 +0000 (04:02 +0300)]
Fix vc-git-state for filenames with wildcards

* lisp/vc/vc-git.el: (vc-git--literal-pathspec-inner),
(vc-git--literal-pathspec), (vc-git--literal-pathspecs) new functions
to add ":(literal)" pathspec magic (bug#39452).

(vc-git-registered), (vc-git-state), (vc-git-dir-status-goto-stage),
(vc-git-register), (vc-git-unregister), (vc-git-checkin),
(vc-git-find-revision), (vc-git-checkout), (vc-git-revert),
(vc-git-conflicted-files), (vc-git-print-log), (vc-git-diff),
(vc-git-previous-revision), (vc-git-next-revision),
(vc-git-delete-file), (vc-git-rename-file) functions
vc-git--literal-pathspec, vc-git--literal-pathspecs applied.

3 years agoRevert "Bind the GIT_LITERAL_PATHSPECS environment variable"
Dmitry Gutov [Sun, 15 Aug 2021 00:45:42 +0000 (03:45 +0300)]
Revert "Bind the GIT_LITERAL_PATHSPECS environment variable"

This reverts commit a2d0ff26005c5c10ffe0d84bd8b458a06828be82.

It was found to break a certain use case, and we decided to go with
the other solution (bug#39452).

3 years agoMark auto-revert-test02-auto-revert-deleted-file as unstable
Lars Ingebrigtsen [Sat, 14 Aug 2021 19:37:32 +0000 (21:37 +0200)]
Mark auto-revert-test02-auto-revert-deleted-file as unstable

* test/lisp/autorevert-tests.el
(auto-revert-test02-auto-revert-deleted-file): This tests fails
about 30% of the time for me.

3 years ago* src/w32.c (_sys_read_ahead): Pacify a silly compiler warning.
Eli Zaretskii [Sat, 14 Aug 2021 17:38:05 +0000 (20:38 +0300)]
* src/w32.c (_sys_read_ahead): Pacify a silly compiler warning.

3 years ago* lisp/emacs-lisp/easymenu.el (easy-menu-do-define): Fix bug#50051
Stefan Monnier [Sat, 14 Aug 2021 16:22:57 +0000 (12:22 -0400)]
* lisp/emacs-lisp/easymenu.el (easy-menu-do-define): Fix bug#50051

This corrects the quite confused conversion to closure done in
commit a070bd1c8b5213ad469d41dd80d392f924644aed.

3 years ago* lisp/progmodes/cc-engine.el (c-ml-string-in-end-delim): Rewrite function
Alan Mackenzie [Sat, 14 Aug 2021 14:42:55 +0000 (14:42 +0000)]
* lisp/progmodes/cc-engine.el (c-ml-string-in-end-delim): Rewrite function

3 years agoFix 'random' on MS-Windows when integers are wider than 30 bits
Eli Zaretskii [Sat, 14 Aug 2021 14:39:38 +0000 (17:39 +0300)]
Fix 'random' on MS-Windows when integers are wider than 30 bits

* src/w32.c (random): Provide more random bits for MS-Windows
builds with EMACS_INT that is wider than 32 bits.  (Bug#32605)

3 years agoAdd a test for netrc folding parsing (bug#25769)
Lars Ingebrigtsen [Sat, 14 Aug 2021 14:08:48 +0000 (16:08 +0200)]
Add a test for netrc folding parsing (bug#25769)

3 years agoFilter out -L foo labels in diff-hunk-file-names
Lars Ingebrigtsen [Sat, 14 Aug 2021 13:50:55 +0000 (15:50 +0200)]
Filter out -L foo labels in diff-hunk-file-names

* lisp/vc/diff-mode.el (diff-hunk-file-names): Filter out "-L foo"
labels (bug#10160).

3 years agoRevert "Add macro `seq-setq`."
Lars Ingebrigtsen [Sat, 14 Aug 2021 13:30:17 +0000 (15:30 +0200)]
Revert "Add macro `seq-setq`."

This reverts commit a8a3fd8f8e27089ac46bf98e534529ff03f679a5.

The same patch was applied twice.  Remove the second instance.

3 years agoMake lm-crack-address less strict
Lars Ingebrigtsen [Sat, 14 Aug 2021 13:23:29 +0000 (15:23 +0200)]
Make lm-crack-address less strict

* lisp/emacs-lisp/lisp-mnt.el (lm-crack-address): Use
mail-header-parse-address-lax (bug#50049).

3 years agoAdd new functions for lax mail address splitting
Lars Ingebrigtsen [Sat, 14 Aug 2021 13:20:59 +0000 (15:20 +0200)]
Add new functions for lax mail address splitting

* lisp/emacs-lisp/subr-x.el (string-clean-whitespace): Autoload.
* lisp/mail/mail-parse.el (mail-header-parse-addresses-lax)
(mail-header-parse-address-lax): New functions.

3 years agoAdd macro `seq-setq`.
Earl Hyatt [Sat, 14 Aug 2021 12:17:55 +0000 (14:17 +0200)]
Add macro `seq-setq`.

* doc/lispref/sequences.texi (seq-setq): Document this macro.

* test/lisp/emacs-lisp/seq-tests.el (test-seq-setq):
Test this macro (bug#50053).

3 years agoAdd macro `seq-setq`.
Earl Hyatt [Sat, 14 Aug 2021 12:17:12 +0000 (14:17 +0200)]
Add macro `seq-setq`.

* doc/lispref/sequences.texi (seq-setq): Document this macro.

* lisp/emacs-lisp/seq.el (seq-setq): New macro.

* test/lisp/emacs-lisp/seq-tests.el (test-seq-setq):
Test this macro (bug#50053).

3 years agoFix memory-report counting of vector/hash table sizes
Yikai Zhao [Sat, 14 Aug 2021 11:46:30 +0000 (13:46 +0200)]
Fix memory-report counting of vector/hash table sizes

* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1):
Count element values in vectors and hash tables.

Copyright-paperwork-exempt: yes

3 years agoFix merging of ambiguous nil maps
Basil L. Contovounesios [Tue, 3 Aug 2021 23:48:50 +0000 (00:48 +0100)]
Fix merging of ambiguous nil maps

* lisp/emacs-lisp/map.el: Bump version to 3.1.
(map--merge): New merging subroutine that uses a hash table in place
of lists, for both efficiency and avoiding ambiguities (bug#49848).
(map-merge): Rewrite in terms of map--merge.
(map-merge-with): Ditto.  This ensures that FUNCTION is called
whenever two keys are merged, even if they are not eql (which could
happen until now).  It also makes map-merge-with consistent with
map-merge, thus achieving greater overall predictability.
* etc/NEWS: Announce this weakening of guarantees.
* test/lisp/emacs-lisp/map-tests.el (test-map-merge)
(test-map-merge-with): Don't depend on specific orderings.  Test
that nil is correctly merged into a plist.

3 years agoAdd font-lock-doc-markup-face (bug#50041)
Mattias Engdegård [Fri, 13 Aug 2021 10:47:39 +0000 (12:47 +0200)]
Add font-lock-doc-markup-face (bug#50041)

This face is intended for mark-up syntax and constructs inside text
using font-lock-doc-face; ie, documentation comments and strings in
programming modes.

* lisp/font-lock.el (font-lock-doc-markup-face): New face.
* lisp/cus-theme.el (custom-theme--listed-faces): Add it to the list.
* doc/lispref/modes.texi (Faces for Font Lock): Document it.
* etc/NEWS: Mention it.

3 years ago; * etc/NEWS: Improve wording of a recent addition.
Eli Zaretskii [Sat, 14 Aug 2021 07:35:09 +0000 (10:35 +0300)]
; * etc/NEWS: Improve wording of a recent addition.

3 years agoCC Mode: Fix a bug in yesterday's patch
Alan Mackenzie [Fri, 13 Aug 2021 20:58:30 +0000 (20:58 +0000)]
CC Mode: Fix a bug in yesterday's patch

* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): Check
the language has multi-line strings before calling
c-ml-string-opener-at-or-around-point.

3 years agoMake `debug' reset `inhibit-read-only' while running
Lars Ingebrigtsen [Fri, 13 Aug 2021 13:50:14 +0000 (15:50 +0200)]
Make `debug' reset `inhibit-read-only' while running

* lisp/emacs-lisp/debug.el (debug): Bind `inhibit-read-only' to
nil in case we're in a context that has bound it to t (bug#26947).

3 years agoAdjust previous diff-changed-unspecified change
Lars Ingebrigtsen [Fri, 13 Aug 2021 13:37:21 +0000 (15:37 +0200)]
Adjust previous diff-changed-unspecified change

* lisp/vc/diff-mode.el (diff-changed-unspecified): Adjust the
definition to Emacs 28 (bug#26969).

3 years agoAdd new face diff-changed-unspecified
Lars Ingebrigtsen [Fri, 13 Aug 2021 13:35:49 +0000 (15:35 +0200)]
Add new face diff-changed-unspecified

* lisp/vc/diff-mode.el (diff-changed-unspecified): New face.
(diff-font-lock-keywords): Use it (bug#26969).

3 years agopermanently-enabled-local-variables doc string clarification
Lars Ingebrigtsen [Fri, 13 Aug 2021 12:44:30 +0000 (14:44 +0200)]
permanently-enabled-local-variables doc string clarification

* lisp/files.el (permanently-enabled-local-variables): Clarify
what kind of local variables this refers to.

3 years agoMake info-look search harder for the Python info file
Lars Ingebrigtsen [Fri, 13 Aug 2021 11:38:38 +0000 (13:38 +0200)]
Make info-look search harder for the Python info file

* lisp/info-look.el (python-mode): Try harder to find the correct
info file (bug#31405).

3 years agoFix problem where an error would change standard-output
Lars Ingebrigtsen [Fri, 13 Aug 2021 11:19:39 +0000 (13:19 +0200)]
Fix problem where an error would change standard-output

* src/keyboard.c (cmd_error): Don't set
standard-output/standard-input (bug#30529).  Instead bind them
temporarily while handling the error.

3 years agoUnknown line endings in filepos-to-bufferpos/bufferpos-to-linepos
Lars Ingebrigtsen [Fri, 13 Aug 2021 11:06:33 +0000 (13:06 +0200)]
Unknown line endings in filepos-to-bufferpos/bufferpos-to-linepos

* lisp/international/mule-util.el (filepos-to-bufferpos): Give
better errors on `exact' with unknown line endings, and guess at
Unix if `approximate' (bug#36573).
(bufferpos-to-filepos): Ditto.

3 years agoRemove :group from defcustoms in image-dired.el
Lars Ingebrigtsen [Fri, 13 Aug 2021 10:28:55 +0000 (12:28 +0200)]
Remove :group from defcustoms in image-dired.el

* lisp/image-dired.el: Remove :group from the defcustoms throughout.

3 years agoDon't disable transient mark mode when changing image faces
Peter Münster [Fri, 13 Aug 2021 10:25:27 +0000 (12:25 +0200)]
Don't disable transient mark mode when changing image faces

* lisp/image-dired.el (image-dired-thumb-update-marks): Keep the
mark state when changing faces. (bug#49999).

3 years ago* lisp/tab-bar.el (tab-bar-history-buttons-show): Remove defcustom.
Juri Linkov [Fri, 13 Aug 2021 07:30:20 +0000 (10:30 +0300)]
* lisp/tab-bar.el (tab-bar-history-buttons-show): Remove defcustom.

(tab-bar-format-history): Don't use this recently added variable
because now it's possible to customize the option 'tab-bar-format'
to remove 'tab-bar-format-history' from it that gives the same result.

3 years agoAdd save-some-buffers-root to save-some-buffers-default-predicate (bug#46374)
Juri Linkov [Fri, 13 Aug 2021 07:10:29 +0000 (10:10 +0300)]
Add save-some-buffers-root to save-some-buffers-default-predicate (bug#46374)

* lisp/files.el (save-some-buffers-default-predicate): Add choice
'save-some-buffers-root'.
(save-some-buffers-root): New predicate function.
(save-some-buffers): Check if 'pred' returns a lexically-bound lambda,
then use it as 'pred'.

Thanks to Tino Calancha <tino.calancha@gmail.com>

3 years agoCC Mode: Enhance C++ Mode raw strings to multi-line strings for any language
Alan Mackenzie [Thu, 12 Aug 2021 19:04:28 +0000 (19:04 +0000)]
CC Mode: Enhance C++ Mode raw strings to multi-line strings for any language

* lisp/progmodes/cc-defs.el (cadar, caddr, cdddr): Add defsubsts for these for
when they are missing from the host Emacs.
(c-point): Add new `position' 'boll "beginning of logical line".
(c-clear-char-properties): Return the position of the lowest removed
property.

* lisp/progmodes/cc-engine.el (c-full-pp-to-literal): Fix for rare case where
LIMIT < START in parse-partial-sexp.
(c-old-beg-rs, c-old-end-rs, c-raw-string-end-delim-disrupted)
(c-raw-string-pos, c-raw-string-in-end-delim, c-depropertize-raw-string)
(c-depropertize-raw-strings-in-region, c-before-change-check-raw-strings)
(c-propertize-raw-string-id, c-propertize-raw-string-opener): Old functions
and variables removed or renamed "raw" -> "ml" and adapted.
(c-old-beg-ml, c-old-1-beg-ml, c-old-end-ml, c-beg-pos, c-end-pos)
(c-ml-string-end-delim-disrupted, c-depropertize-ml-string-delims)
(c-ml-string-delims-around-point,c-position-wrt-ml-delims)
(c-before-change-check-ml-strings, c-after-change-unmark-ml-strings)
(c-maybe-re-mark-ml-string, c-propertize-ml-string-id)
(c-propertize-ml-string-opener, c-depropertize-ml-string)
(c-depropertize-ml-strings-in-region): New functions and variables adapted and
possibly renamed from "raw" -> "ml".
(c-ml-string-make-closer-re, c-ml-string-make-opener-re)
(c-c++-make-ml-string-closer-re, c-c++-make-ml-string-opener-re)
(c-get-ml-closer, c-ml-string-opener-around-point)
(c-ml-string-opener-intersects-region, c-ml-string-opener-at-or-around-point)
(c-ml-string-back-to-neutral, c-ml-string-in-end-delim, c-neutralize-pos)
(c-neutralized-prop): New functions and variables.

* lisp/progmodes/cc-fonts.el (c-basic-matchers-before): Replace
c-font-lock-raw-strings with c-font-lock-ml-strings.
(c-font-lock-ml-strings): New function taking the place of the old
c-font-lock-ml-strings.

* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Move
c-depropertize-CPP to the second item of the C++ entry, and replace
c-before-change-check-raw-strings by c-before-change-check-ml-strings.  Add a
new entry for Pike Mode.
(c-before-font-lock-functions): (Replace c-after-change-unmark-raw-strings by
c-after-change-unmark-ml-strings in the C++ entry, and add a new entry for
Pike Mode.
(c-ml-string-backslash-escapes, c-ml-string-non-punc-skip-chars)
(c-ml-string-opener-re, c-ml-string-max-opener-len, c-ml-string-any-closer-re)
(c-ml-string-max-closer-len, c-ml-string-max-closer-len-no-leader)
(c-ml-string-back-closer-re, c-make-ml-string-closer-re-function)
(c-make-ml-string-opener-re-function, c-ml-string-cpp-or-opener-re)
(c-cpp-or-ml-match-offset): New c-lang-defconsts and c-land-defvars.
(c-multiline-string-start-char): Remove the Pike Mode setting.

* lisp/progmodes/cc-mode.el (c-depropertize-CPP): Test for general ml strings
rather than C++ raw strings.
(c-unescaped-nls-in-string-p): Handle languages with ml strings.
(c-clear-string-fences): Fix bug with wrong parenthesisation.
(c-before-change-check-unbalanced-strings)
(c-after-change-mark-abnormal-strings, c-after-change-escape-NL-in-string):
Adapt for multi-line strings.

3 years agoImprove connection type `pipe' for remote processes
Michael Albinus [Thu, 12 Aug 2021 18:09:48 +0000 (20:09 +0200)]
Improve connection type `pipe' for remote processes

* doc/misc/tramp.texi (Remote processes): New subsection "Remote
process connection type".

* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
Use `tramp-process-connection-type' as default connection type.
Improve check for `:connection-type'.

* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
Use `tramp-process-connection-type' as default connection type.
Improve check for `:connection-type'.  Send "stty -icrnl" when
connection type is a pipe.

* lisp/net/tramp.el (tramp-process-connection-type): Allow all
possible values.
(tramp-handle-make-process): Use `tramp-process-connection-type'
as default connection type.  Improve check for `:connection-type'.

* test/lisp/net/tramp-tests.el (tramp-test30-make-process): Extend test.