]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years agoAsk if dir and subdir dired buffers be killed when deleting dir
Tassilo Horn [Fri, 4 Jun 2021 19:58:11 +0000 (21:58 +0200)]
Ask if dir and subdir dired buffers be killed when deleting dir

Previously, when you've had dired buffers

  ~/foo/
  ~/foo/bar/
  ~/foo/bar/baz/

and then deleted ~/foo/, dired (with dired-clean-up-buffers-too set to
non-nil) would only ask to delete the dired buffer of ~/foo/.  Now it
will offer to delete all three buffers.

* lisp/dired.el (dired-buffers-for-dir): Add optional argument SUBDIRS
which makes the function return also dired buffers showing a subdir of
DIR.
(dired-in-this-tree-p): Make obsolete in favor of file-in-directory-p
which actually does what the name suggest whereas dired-in-this-tree-p
is just string-matching on filenames which will fail with symlinks
filenames including ./ or ../.

3 years agoFix documentation of a recent change.
Eli Zaretskii [Fri, 4 Jun 2021 13:50:43 +0000 (16:50 +0300)]
Fix documentation of a recent change.

* etc/NEWS:
* doc/emacs/misc.texi (Invoking emacsclient): Fix a recent change.
(Bug#11358)

3 years agoFix placement of point in Dired deletion operations
Stephen Berman [Fri, 4 Jun 2021 10:01:41 +0000 (12:01 +0200)]
Fix placement of point in Dired deletion operations

* lisp/dired.el (dired-do-flagged-delete, dired-do-delete): Use
point-marker instead of point to record each file name position.
Clean up the markers before returning.
(dired-internal-do-deletions): Move to the file name marker, and
then move point to the file name to visually emphasize which file
is being operated on (bug#48805).

3 years agoAdd a new `server-edit-abort' command
Harald Hanche-Olsen [Fri, 4 Jun 2021 09:09:46 +0000 (11:09 +0200)]
Add a new `server-edit-abort' command

* doc/emacs/misc.texi (Invoking emacsclient): Document it (bug#11358).

* lisp/server.el (server-edit): Mention it in the doc string.
(server-edit-abort): New command.

Copyright-paperwork-exempt: yes

3 years agoRevert "Make the `i' command in Info-mode remove duplicate matches"
Lars Ingebrigtsen [Fri, 4 Jun 2021 08:48:16 +0000 (10:48 +0200)]
Revert "Make the `i' command in Info-mode remove duplicate matches"

This reverts commit 089e0c4c55dcf72f9cf2f6f04b8a52fc7355499c.

There were no duplicate entries -- there were two entries
for different things that referred to the same line.

3 years agoFix documentation of recent 'windmove' changes
Eli Zaretskii [Fri, 4 Jun 2021 06:48:13 +0000 (09:48 +0300)]
Fix documentation of recent 'windmove' changes

* lisp/windmove.el (windmove-default-keybindings)
(windmove-display-default-keybindings)
(windmove-delete-default-keybindings)
(windmove-swap-states-default-keybindings): Improve doc strings.
(Bug#41438)

* etc/NEWS: Fix a typo in the 'windmove' entry.

3 years ago* lisp/simple.el (read-from-kill-ring): Fix the case of 'M-y M-p' (bug#48478)
Juri Linkov [Thu, 3 Jun 2021 20:54:30 +0000 (23:54 +0300)]
* lisp/simple.el (read-from-kill-ring): Fix the case of 'M-y M-p' (bug#48478)

Don't use offsets for read-from-kill-ring-history when kill-ring-yank-pointer
points to the last element of kill-ring.

3 years ago* lisp/help-fns.el (help--symbol-class): New function.
Juri Linkov [Thu, 3 Jun 2021 20:41:30 +0000 (23:41 +0300)]
* lisp/help-fns.el (help--symbol-class): New function.

Refactored from help--symbol-completion-table-affixation.
https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00066.html

3 years ago* etc/NEWS: Add windmove keybindings (bug#41438)
Juri Linkov [Thu, 3 Jun 2021 20:36:07 +0000 (23:36 +0300)]
* etc/NEWS: Add windmove keybindings (bug#41438)

3 years agoAdd user options for default windmove commands (bug#41438)
Philip Kaludercic [Thu, 27 May 2021 10:24:42 +0000 (12:24 +0200)]
Add user options for default windmove commands (bug#41438)

* windmove.el (windmove--default-keybindings-type): Add type.
(windmove-default-keybindings): Add user option.
(windmove-display-default-keybindings): Add user option.
(windmove-delete-default-keybindings): Add user option.
(windmove-swap-states-default-keybindings): Add user option.

3 years agoImprove windmove-*-default-keybindings functions (bug#41438)
Philip Kaludercic [Tue, 25 May 2021 09:47:51 +0000 (11:47 +0200)]
Improve windmove-*-default-keybindings functions (bug#41438)

* windmove.el (windmove-mode-map): Add special map for windmove commands.
(windmove-mode): Add minor mode for activating windmove-mode-map.
(windmove-install-defaults): Add general function for manipulating
windmove-mode-map.
(windmove-default-keybindings): Use windmove-install-defaults.
(windmove-display-default-keybindings): Use windmove-install-defaults.
(windmove-delete-default-keybindings): Use windmove-install-defaults.
(windmove-swap-states-default-keybindings): Use windmove-install-defaults.

3 years agoConstant-propagate (function SYMBOL)
Mattias Engdegård [Thu, 3 Jun 2021 19:20:57 +0000 (21:20 +0200)]
Constant-propagate (function SYMBOL)

* lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p):
Consider #'SYMBOL a constant for compile-time propagation purposes.

3 years agoOptimise (cons X nil) to (list X)
Mattias Engdegård [Thu, 3 Jun 2021 19:15:11 +0000 (21:15 +0200)]
Optimise (cons X nil) to (list X)

* lisp/emacs-lisp/byte-opt.el (byte-optimize-cons): New function.

3 years agoFix fill-column-indicator on TTY frames
Eli Zaretskii [Thu, 3 Jun 2021 14:45:12 +0000 (17:45 +0300)]
Fix fill-column-indicator on TTY frames

* src/xdisp.c (extend_face_to_end_of_line): Fix calculation of
fill-column-indicator on TTY frames.  Suggested by Jimmy Aguilar
Mena <spacibba@aol.com>.

3 years agoMore accurate highlighting of mis-spellings in Flyspell
Eli Zaretskii [Thu, 3 Jun 2021 12:57:14 +0000 (15:57 +0300)]
More accurate highlighting of mis-spellings in Flyspell

* lisp/textmodes/flyspell.el (flyspell-word): Highlight only the
misspelled word, not any extra characters after it.  (Bug#5575)

3 years agoMake the `i' command in Info-mode remove duplicate matches
Lars Ingebrigtsen [Thu, 3 Jun 2021 09:55:45 +0000 (11:55 +0200)]
Make the `i' command in Info-mode remove duplicate matches

* lisp/info.el (Info-index): Weed out duplicate matched
(bug#3692).

3 years agoFix up previous hideif change to avoid a compilation warning
Lars Ingebrigtsen [Thu, 3 Jun 2021 08:39:39 +0000 (10:39 +0200)]
Fix up previous hideif change to avoid a compilation warning

* lisp/progmodes/hideif.el
(hide-ifdef-expand-reinclusion-protection): Move to avoid a
compilation warning.

3 years agofringe-mode doc clarifications
Lars Ingebrigtsen [Thu, 3 Jun 2021 08:19:22 +0000 (10:19 +0200)]
fringe-mode doc clarifications

* lisp/fringe.el (fringe-mode):
(fringe-mode): Note that this variable and command have nothing to
do with modes (bug#6931).

3 years ago* lisp/progmodes/hideif.el: Fix initial version for new variables
Luke Lee [Thu, 3 Jun 2021 08:04:16 +0000 (16:04 +0800)]
* lisp/progmodes/hideif.el: Fix initial version for new variables

(hide-ifdef-verbose, hide-ifdef-evalulate-enter-hook)
(hide-ifdef-evalulate-leave-hook): Fix initial version to 28.1.
(hide-ifdef-expand-reinclusion-protection): Obsolete since 28.1,
rename to `hide-ifdef-expand-reinclusion-guard' instead.

3 years agoFix problem with empty command histories in eshell and `erase'
Lars Ingebrigtsen [Thu, 3 Jun 2021 07:50:20 +0000 (09:50 +0200)]
Fix problem with empty command histories in eshell and `erase'

* lisp/eshell/em-hist.el (eshell-add-input-to-history): Protect
against an empty ring (bug#48770).

3 years ago; Fix last change.
Eli Zaretskii [Thu, 3 Jun 2021 07:49:09 +0000 (10:49 +0300)]
; Fix last change.

3 years ago* configure.ac: Clarify "smoke test" error message. (Bug#48804)
Eli Zaretskii [Thu, 3 Jun 2021 07:46:54 +0000 (10:46 +0300)]
* configure.ac: Clarify "smoke test" error message.  (Bug#48804)

3 years agoCross-reference the message/error control variables
Lars Ingebrigtsen [Thu, 3 Jun 2021 07:29:55 +0000 (09:29 +0200)]
Cross-reference the message/error control variables

* src/keyboard.c (syms_of_keyboard): Mention set-message-function
in the command-error-function doc string...

* src/xdisp.c (syms_of_xdisp): ... and vice versa (bug#13752).

3 years ago* configure.ac: Improve error messages about libgccjit.
Eli Zaretskii [Thu, 3 Jun 2021 06:55:00 +0000 (09:55 +0300)]
* configure.ac: Improve error messages about libgccjit.

3 years agoAllow opening buttonized URL with secondary browser in rcirc
Tassilo Horn [Wed, 2 Jun 2021 21:02:45 +0000 (23:02 +0200)]
Allow opening buttonized URL with secondary browser in rcirc

* lisp/net/browse-url.el (browse-url-button-open-url): Add autoload
cookie.
* lisp/net/rcirc.el (rcirc-markup-urls): Use
`browse-url-button-open-url' instead of just `browse-url' in order to
be able to use the secondary browser by giving a prefix arg.

3 years agoFix a typo in 'produce_glyphless_glyph'
Eli Zaretskii [Wed, 2 Jun 2021 13:14:14 +0000 (16:14 +0300)]
Fix a typo in 'produce_glyphless_glyph'

* src/xdisp.c (produce_glyphless_glyph): Initialize lower_xoff.
Remove workaround for lack of its initialization.  (Bug#8215)

3 years ago* lisp/progmodes/hideif.el: update for new C++ standards and extensions
Luke Lee [Wed, 2 Jun 2021 12:29:00 +0000 (20:29 +0800)]
* lisp/progmodes/hideif.el: update for new C++ standards and extensions

Matching gcc/clang behavior on stringification including keeping the same
number of white spaces.  C++11, C++14, C++17 and GCC literals extension are
supported.  Preprocessing time floating point operation supported but limited
to Emacs internal representation which is C data type "double".  Also support
some frequently used keywords like __LINE__, __TIME__, __DATE__ and so on.

(hif-clear-all-ifdef-defined, hif-show-all, hif-after-revert-function)
(hide-ifdef-define, hide-ifdefs, show-ifdefs): interactive behavior changes,
mainly to allow operation within the marked region.
(hif-eval, hif-__LINE__, hif-__FILE__, hif-__COUNTER__, hif-__cplusplus)
(hif-__DATE__, hif-__TIME__, hif-__STDC__, hif-__STDC_VERSION__)
(hif-__STDC_HOST__, hif-__FILE__, hif-full-match, hif-is-number, hif-is-float)
(hif-delete-char-in-string, hif-string-to-decfloat, hif-string-to-hexfloat)
(hif-strtok, hif-is-white, hif-backward-comment, hif-split-signed-token)
(hif-keep-single, hif-display-macro): new functions.
(hide-ifdef-verbose, hide-ifdef-evalulate-enter-hook)
(hide-ifdef-evalulate-leave-hook, hide-ifdef-evaluator, hif-predefine-alist)
(hif-numtype-suffix-regexp, hif-bin-regexp, hif-hex-regexp, hif-oct-regexp)
(hif-dec-regexp, hif-decfloat-regexp, hif-hexfloat-regexp)
(hif-unicode-prefix-regexp, hif-verbose-define-count): new constants or
variables.
(hif-macroref-regexp, hif-token-alist, hif-token-regexp)
(hif-string-literal-regexp): modified constants for faster regexp processing.
(hide-ifdef-expand-reinclusion-guard): renamed from
`hide-ifdef-expand-reinclusion-protection' to match commonly used term.
(hif-lookup, hif-defined, hif-string-to-number, hif-tokenize, hif-nextoken)
(hif-if-valid-identifier-p, hif-define-operator, hif-expand-token-list)
(hif-parse-exp, hif-math, hif-factor, hif-get-argument-list, hif-stringify)
(hif-token-concat, hif-mathify, hif-comma, hif-token-stringification)
(hif-token-concatenation, hif-macro-supply-arguments, hif-evaluate-macro)
(hif-find-define, hif-add-new-defines, hide-ifdef-guts, hif-undefine-symbol)
(hide-ifdef-set-define-alist, hide-ifdef-use-define-alist): modified functions
for new internal data representation, mainly for stringification and white
space preservation.  Also better error handling to report source line number
and more informative error messages.

3 years agoFix ibuffer auto-shrinking windows
Lars Ingebrigtsen [Wed, 2 Jun 2021 08:54:37 +0000 (10:54 +0200)]
Fix ibuffer auto-shrinking windows

* lisp/ibuffer.el (ibuffer-shrink-to-fit): Don't shrink all
windows, just the ibuffer one (bug#7218).

3 years agoMove point in dired buffers when handling a list of files
Lars Ingebrigtsen [Wed, 2 Jun 2021 08:13:58 +0000 (10:13 +0200)]
Move point in dired buffers when handling a list of files

* lisp/dired-aux.el (dired-create-files): Advance point to the
current file (bug#8015).

3 years agoAdd new user option to Gnus to allow `#' to toggle
Alex Bochannek [Wed, 2 Jun 2021 05:41:25 +0000 (07:41 +0200)]
Add new user option to Gnus to allow `#' to toggle

* doc/misc/gnus.texi (Marking Groups, Setting Process Marks):
Mention the new variable.

* lisp/gnus/gnus-group.el (gnus-group-make-menu-bar): Update menu.
(gnus-group-mark-group): Support the variable.
(gnus-group-mark-update): New command.
(gnus-group-unmark-group, gnus-group-mark-region): Pass in new
parameter.

* lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Update menu.
(gnus-summary-mark-as-processable): Use the variable.

* lisp/gnus/gnus-topic.el (gnus-topic-mark-topic):  (bug#48683).

* lisp/gnus/gnus-topic.el (gnus-topic-mark-topic): Use the variable.

* lisp/gnus/gnus.el (gnus-process-mark-toggle): New user option.

3 years ago; End recently added sentences with a period.
Basil L. Contovounesios [Tue, 1 Jun 2021 16:59:46 +0000 (17:59 +0100)]
; End recently added sentences with a period.

3 years ago; Bump isearch.el :version after recent change.
Basil L. Contovounesios [Tue, 1 Jun 2021 17:04:48 +0000 (18:04 +0100)]
; Bump isearch.el :version after recent change.

3 years agoImprove performance of NS port's display on macOS
Alan Third [Fri, 21 May 2021 12:33:56 +0000 (13:33 +0100)]
Improve performance of NS port's display on macOS

* src/nsterm.h: Update EmacsSurface definition.
* src/nsterm.m ([EmacsView focusOnDrawingBuffer]): Don't change the
CGContext's settings directly.
([EmacsView unfocusDrawingBuffer]): Don't release the context here.
(CACHE_MAX_SIZE): Add maximum cache size.
([EmacsView updateLayer]): Send a request for getContext, which will
copy the buffer and create the context if it doesn't already exist, to
the NS run loop.
([EmacsSurface initWithSize:ColorSpace:Scale:]): Add the scale factor
and if there's already a CGContext available, reuse it.
([EmacsSurface dealloc]): No longer need to release lastSurface
separately.
([EmacsSurface getContext]): Don't create more surfaces than we have
spaces for in the cache.
([EmacsSurface releaseContext]): If there's no context don't try to
release it and put currentSurface back on the cache instead of
lastSurface.
([EmacsSurface copyContentsTo:]): Don't try to copy if the source and
destination are actually the same surface.

3 years ago* Add `native-compile-target-directory' (bug#48743)
Andrea Corallo [Tue, 1 Jun 2021 15:17:42 +0000 (17:17 +0200)]
* Add `native-compile-target-directory' (bug#48743)

* lisp/emacs-lisp/comp.el (native-compile-target-directory): New
variable.
(comp-spill-lap-function): Make use of.

3 years agoRename batch-byte-native-compile-for-bootstrap (bug#48743)
Andrea Corallo [Tue, 1 Jun 2021 15:10:10 +0000 (17:10 +0200)]
Rename batch-byte-native-compile-for-bootstrap (bug#48743)

* lisp/Makefile.in : Rename `batch-byte-native-compile-for-bootstrap'
-> `batch-byte+native-compile.
* lisp/emacs-lisp/bytecomp.el (byte+native-compile)
(byte-compile-file): Rename
`batch-byte-native-compile-for-bootstrap' ->
`batch-byte+native-compile + `byte-native-for-bootstrap' ->
`byte+native-compile'.
* lisp/emacs-lisp/comp.el (comp-spill-lap-function, comp-final)
(batch-native-compile, batch-byte+native-compile): Likewise.
* lisp/emacs-lisp/bytecomp.el (byte+native-compile)
(byte-compile-file): Likewise.
* test/src/comp-tests.el (comp-tests-bootstrap): Rename
`byte-native-for-bootstrap' -> `byte+native-compile'.

3 years agoRemove unnecessary function declaration in isearch
Glenn Morris [Tue, 1 Jun 2021 15:52:47 +0000 (08:52 -0700)]
Remove unnecessary function declaration in isearch

* lisp/isearch.el (multi-isearch-switch-buffer):
Remove unnecessary declaration (after ldefs-boot update).

3 years agoAvoid hang in nnimap-keepalive
Andreas Schwab [Tue, 1 Jun 2021 13:46:34 +0000 (15:46 +0200)]
Avoid hang in nnimap-keepalive

* lisp/gnus/nnimap.el (nnimap-keepalive): Make interruptable.

3 years ago; Auto-commit of loaddefs files.
Glenn Morris [Tue, 1 Jun 2021 13:29:13 +0000 (06:29 -0700)]
; Auto-commit of loaddefs files.

3 years ago* lisp/gnus/gnus-art.el: Don't sneak dynbound code via quoting
Stefan Monnier [Tue, 1 Jun 2021 13:14:53 +0000 (09:14 -0400)]
* lisp/gnus/gnus-art.el: Don't sneak dynbound code via quoting

Make sure we don't accidentally quote lambdas by embedding them within
quoted data.

(gnus-visible-headers, gnus-emphasis-alist)
(gnus-mime-display-alternative, gnus-article-describe-bindings):
Unquote lambdas.

3 years agoAdd annotation capability to icomplete-vertical-mode
João Távora [Tue, 25 May 2021 21:40:40 +0000 (22:40 +0100)]
Add annotation capability to icomplete-vertical-mode

Co-authored-by Daniel Mendler <mail@daniel-mendler.de>

* lisp/icomplete.el (icomplete--affixate): New helper.
(icomplete--render-vertical): Use it. Rework.
(icomplete-completions): Pass md to icomplete--render-vertical.

3 years agoImprove icomplete-vertical-mode and fido-vertical-mode
João Távora [Sun, 30 May 2021 15:26:02 +0000 (16:26 +0100)]
Improve icomplete-vertical-mode and fido-vertical-mode

This mode is intended to be used with Icomplete ('M-x icomplete-mode')
or Fido ('M-x fido-mode'), to display the list of completions
candidates vertically instead of horizontally.  When used with
Icomplete, completions are rotated and selection kept at the top.
When used with Fido, completions scroll like a typical dropdown
widget.

If the dropdown behaviour is desired for Icomplete (instead of
rotation), icomplete-scroll can be adjusted separately by the user.

* etc/NEWS (icomplete-vertical-mode): Reword.

* lisp/icomplete.el (simple): Require it.
(icomplete-selected-match): New face.
(icomplete-scroll): New user-visible var.
(icomplete-forward-completions): Rework.
(icomplete-backward-completions): Rework.
(icomplete--fido-mode-setup): Prefer icomplete-scroll according to
icomplete-vertical mode.
(icomplete-minibuffer-setup): Initialize icomplete--scrolled-completions.
(fido-vertical-mode): An alias for icomplete-vertical-mode.
(icomplete-exhibit): Init icomplete--scrolled-past.  Adjust overlay.
(icomplete--render-vertical): New helper.
(icomplete--sorted-completions): If cache is stale, also
invalidate icomplete--scrolled-past.
(icomplete-completions): Rework.  Mostly reformat.

* lisp/simple.el (max-mini-window-lines): New helper.
(display-message-or-buffer): Use it.

3 years agoAllow packages to change the hl-line overlay priority
Lars Ingebrigtsen [Tue, 1 Jun 2021 08:29:33 +0000 (10:29 +0200)]
Allow packages to change the hl-line overlay priority

* lisp/hl-line.el (hl-line-overlay-priority): New variable
(bug#11509).
(hl-line-make-overlay): Use it.

3 years agoFix problem with `format-alist' marking all the text in the buffer
Lars Ingebrigtsen [Tue, 1 Jun 2021 08:22:57 +0000 (10:22 +0200)]
Fix problem with `format-alist' marking all the text in the buffer

* lisp/format.el (format-decode-run-method): Use it to avoid
marking the entire buffer (bug#11691).

* lisp/simple.el (shell-command-on-region): Allow replacing text
without activating the mark.

3 years agoDocument `with-selected-frame'
Lars Ingebrigtsen [Tue, 1 Jun 2021 07:41:40 +0000 (09:41 +0200)]
Document `with-selected-frame'

* doc/lispref/windows.texi (Selecting Windows): Document
`with-selected-frame' (bug#12075).

3 years agoObsolete `global-whitespace-newline-mode'
Lars Ingebrigtsen [Tue, 1 Jun 2021 07:15:13 +0000 (09:15 +0200)]
Obsolete `global-whitespace-newline-mode'

* lisp/whitespace.el (global-whitespace-newline-mode): Make
obsolete since it doesn't work correctly, and seems superfluous
(bug#12496).

3 years agoAdd a new command `mailcap-view-file'
Lars Ingebrigtsen [Tue, 1 Jun 2021 06:55:06 +0000 (08:55 +0200)]
Add a new command `mailcap-view-file'

* doc/misc/emacs-mime.texi (mailcap): Document it (bug#12972).

* lisp/net/mailcap.el (mailcap-view-file): New command.

3 years agoFix documentation of literal `face' syntax in font-lock section
Lars Ingebrigtsen [Tue, 1 Jun 2021 05:57:09 +0000 (07:57 +0200)]
Fix documentation of literal `face' syntax in font-lock section

* doc/lispref/modes.texi (Search-based Fontification): Fix
the literal `(0 (face ...))' syntax documentation (bug#13917).

3 years agoImprove random selection of keyservers
Philip Kaludercic [Tue, 1 Jun 2021 05:49:10 +0000 (07:49 +0200)]
Improve random selection of keyservers

* epa-ks.el (epa-keyserver): Interpret a list as a pool.
(epa-ks--query-url): Add new auxiliary function.
(epa-ks--fetch-key): Use epa-ks--query-url.
(epa-search-keys): Use epa-ks--query-url.

3 years ago* lisp/isearch.el (lazy-highlight-buffer-max-at-a-time): Change from 20 to 200
Juri Linkov [Mon, 31 May 2021 20:32:50 +0000 (23:32 +0300)]
* lisp/isearch.el (lazy-highlight-buffer-max-at-a-time): Change from 20 to 200

Suggested by Augusto Stoffel <arstoffel@gmail.com> in bug#48581

3 years ago* Make *Async-native-compile-log* buffer read-only (bug#48763)
Andrea Corallo [Mon, 31 May 2021 18:35:43 +0000 (20:35 +0200)]
* Make *Async-native-compile-log* buffer read-only (bug#48763)

* lisp/emacs-lisp/comp.el (comp-run-async-workers): Make
"*Async-native-compile-log*" read-only.

3 years agoMake frames record when their selected window was the mini-window
Alan Mackenzie [Mon, 31 May 2021 16:24:11 +0000 (16:24 +0000)]
Make frames record when their selected window was the mini-window

When a frame in this state is selected again by Fselect_frame (but not by
Fselect_window), the mini-window rather than the frame's currently selected
window, is chosen for selection, should there still be an active minibuffer in
it.

This fixes bug #48674.

* src/frame.h (struct frame): Add new boolean field select_mini_window_flag.

* src/frame.c (make_frame): Initialize select_mini_window_flag to false.
(do_switch_frame): Set the new flag appropriately for the old frame, and
process the new frame's setting of this flag, before setting it to false.

* src/window.c (select_window): Set f->select_mini_window_flag to false.
(Fset_frame_selected_window, Fdelete_other_windows_internal)
(Fdelete_window_internal): Add comments clarifying that there is no clearing
of f->select_mini_window_flag in these functions.

3 years ago* src/keyboard.c (make_lispy_event): Fix previous.
Glenn Morris [Mon, 31 May 2021 15:40:26 +0000 (08:40 -0700)]
* src/keyboard.c (make_lispy_event): Fix previous.

3 years agoMerge from origin/emacs-27
Glenn Morris [Mon, 31 May 2021 14:50:34 +0000 (07:50 -0700)]
Merge from origin/emacs-27

5dfa5e26dd (origin/emacs-27) Improve documentation of regexp ranges

3 years agoCorrect mouse handling when window origin changes between down and up events
Alan Mackenzie [Mon, 31 May 2021 10:33:10 +0000 (10:33 +0000)]
Correct mouse handling when window origin changes between down and up events

Do this by using frame relative positions rather than window relative ones,
which gave rise to spurious drag events when the origin of the window changed
between the mouse down and up events.  This fixes bug #48409.

* keyboard.c (frame_relative_event_pos): New static variable.
(make_lispy_event): Record frame relative position of down event.  When the up
event is in the same position, "move" this event into the window of the down
event when this window (typically a mini-window) is no longer under the mouse.
Call make_lispy_position a second time to generate this changed event.
(syms_of_keyboard): Declare Qwindow_edges.  static_pro
frame_relative_event_pos.

3 years agoRemove spurious @example from the elisp manual
Colin Woodbury [Mon, 31 May 2021 08:55:37 +0000 (10:55 +0200)]
Remove spurious @example from the elisp manual

* doc/lispref/macros.texi (Defining Macros): Remove spurious extra
pair of @example/@end example.

Copyright-paperwork-exempt: yes

3 years agoRemove messaging in ediff-make-diff2-buffer
Lars Ingebrigtsen [Mon, 31 May 2021 08:24:23 +0000 (10:24 +0200)]
Remove messaging in ediff-make-diff2-buffer

* lisp/vc/ediff-diff.el (ediff-make-diff2-buffer): Remove message
that's often misleading when diffing buffers (that may be unsaved)
(bug#13091).

3 years agoPut ELP results in a special-mode buffer
Lars Ingebrigtsen [Mon, 31 May 2021 06:17:00 +0000 (08:17 +0200)]
Put ELP results in a special-mode buffer

* lisp/emacs-lisp/elp.el (elp-results): Make `q' work in ELP
results buffer (bug#14104).
(elp-results-mode): Define as an empty special mode derivation.

3 years agoMake `menu-bar-select-buffer' obsolete
Lars Ingebrigtsen [Mon, 31 May 2021 05:29:51 +0000 (07:29 +0200)]
Make `menu-bar-select-buffer' obsolete

* lisp/menu-bar.el (menu-bar-select-buffer): Make obsolete (bug#15651).

* lisp/msb.el (msb--select-buffer): Move function here and rename.
(msb--make-keymap-menu): Use it.

3 years agoRevert "Move menu-bar-select-buffer to msb.el"
Lars Ingebrigtsen [Mon, 31 May 2021 05:25:25 +0000 (07:25 +0200)]
Revert "Move menu-bar-select-buffer to msb.el"

This reverts commit 253e52478c355dc29052c0d21013b8d06b473880.

This is to be fixed in a different way in the next patch.

3 years agoUse buffer-local-boundp in describe-variable
Lars Ingebrigtsen [Mon, 31 May 2021 05:22:12 +0000 (07:22 +0200)]
Use buffer-local-boundp in describe-variable

* lisp/help-fns.el (describe-variable): Use `buffer-local-boundp'.

3 years agoAdd new convenience function `buffer-local-boundp'
Lars Ingebrigtsen [Mon, 31 May 2021 05:21:09 +0000 (07:21 +0200)]
Add new convenience function `buffer-local-boundp'

* doc/lispref/variables.texi (Creating Buffer-Local): Document it.
* lisp/subr.el (buffer-local-boundp): New function.

* src/data.c (Flocal_variable_p): Mention it.

3 years agoSpeed up `describe-variable' completion predicate
Daniel Mendler [Mon, 31 May 2021 04:49:37 +0000 (06:49 +0200)]
Speed up `describe-variable' completion predicate

* lisp/help-fns.el (describe-variable): Do not switch to the original
buffer in the predicate (bug#48738).

3 years agoFix error in xdg-mime-apps-files when XDG_CURRENT_DESKTOP is defined
Lars Ingebrigtsen [Mon, 31 May 2021 04:36:23 +0000 (06:36 +0200)]
Fix error in xdg-mime-apps-files when XDG_CURRENT_DESKTOP is defined

* lisp/xdg.el (xdg-mime-apps-files): Don't bug out when
XDG_CURRENT_DESKTOP is bound (bug#48748).

3 years agoDocument that the 'syntax-propertize-function' may move point.
Philipp Stephani [Sun, 30 May 2021 20:39:54 +0000 (22:39 +0200)]
Document that the 'syntax-propertize-function' may move point.

The functions generated by 'syntax-propertize-rules' don't use
'save-excursion', but 'syntax-propertize' does, so we might as well
document that the 'syntax-propertize-function' may move point.

* doc/lispref/syntax.texi (Syntax Properties): Document that the
'syntax-propertize-function' may move point.

3 years agoGive 'syntax-propertize-wholelines' a docstring.
Philipp Stephani [Sun, 30 May 2021 20:38:48 +0000 (22:38 +0200)]
Give 'syntax-propertize-wholelines' a docstring.

This function is generally useful.

* lisp/emacs-lisp/syntax.el (syntax-propertize-wholelines): Add
docstring.

3 years agotime-stamp: fix minor bug when parsing option combos
Stephen Gildea [Sun, 30 May 2021 18:05:42 +0000 (11:05 -0700)]
time-stamp: fix minor bug when parsing option combos

* lisp/time-stamp.el (time-stamp-string-preprocess): Handle digit
options correctly to avoid overcounting colon options.

* test/lisp/time-stamp-tests.el (time-stamp-format-time-zone-offset):
Add a new test case that would have caught the option-parsing error.

3 years agotime-stamp: refactor time-stamp-string-preprocess
Stephen Gildea [Sun, 30 May 2021 16:08:08 +0000 (09:08 -0700)]
time-stamp: refactor time-stamp-string-preprocess

* lisp/time-stamp.el (time-stamp-string-preprocess):  Reduce lifetime of
some loop-local variables to be less error-prone.

3 years agoDo not reset settings when disabling a theme
Mauro Aranda [Sun, 30 May 2021 12:35:13 +0000 (09:35 -0300)]
Do not reset settings when disabling a theme

* lisp/custom.el (disable-theme): Don't call custom-push-theme, since
that resets the theme settings and it isn't useful: we only need to
remove the theme setting from the themed variable or face.  This fixes
a regression when "toggling" themes, introduced while fixing Bug#34027.
(Bug#48736)

3 years agoImprove documentation of regexp ranges
Eli Zaretskii [Sun, 30 May 2021 10:20:02 +0000 (13:20 +0300)]
Improve documentation of regexp ranges

* doc/lispref/searching.texi (Regexp Special): Document the effect
of using octal escapes in regexp ranges.  (Bug#17758)

3 years agoDon't account for character compositions in 'format' and friends
Eli Zaretskii [Sun, 30 May 2021 08:16:59 +0000 (11:16 +0300)]
Don't account for character compositions in 'format' and friends

'lisp_string_width' is called from 'format' and 'format-message',
which can be called both very early into Emacs initialization and in
other contexts where using the font backend is impossible or
undesirable.  So this commit changes 'lisp_string_width' to try
accounting for automatic compositions only when explicitly requested,
and only 'string-width' does that; 'format' and 'format-message'
don't.
* src/character.c (lisp_string_width): Accept an additional
argument AUTO_COMP; attempt accounting for auto-compositions only
if that argument is non-zero.  (Bug#48732)
* src/editfns.c (styled_format):
* src/character.c (Fstring_width): Callers of 'lisp_string_width'
adjusted.

3 years agoClarify that `symbol-file' only works for symbols in Lisp files
Lars Ingebrigtsen [Sun, 30 May 2021 06:25:18 +0000 (08:25 +0200)]
Clarify that `symbol-file' only works for symbols in Lisp files

* lisp/subr.el (symbol-file): Mention help-C-file-name in the doc
string (bug#14932).

3 years agoAllow help-C-file-name to work on symbols designating subrs
Lars Ingebrigtsen [Sun, 30 May 2021 06:25:06 +0000 (08:25 +0200)]
Allow help-C-file-name to work on symbols designating subrs

* lisp/help-fns.el (help-C-file-name): Allow working on symbols
designating subrs (bug#14932).

3 years agoFix kmacro-view-ring-2nd doc string
Lars Ingebrigtsen [Sun, 30 May 2021 06:10:15 +0000 (08:10 +0200)]
Fix kmacro-view-ring-2nd doc string

* lisp/kmacro.el (kmacro-view-ring-2nd): Fix doc string (bug#15020).

3 years agoMove menu-bar-select-buffer to msb.el
Lars Ingebrigtsen [Sun, 30 May 2021 05:49:17 +0000 (07:49 +0200)]
Move menu-bar-select-buffer to msb.el

* lisp/menu-bar.el (menu-bar-select-buffer): Move from
here... (bug#15651).
* lisp/msb.el (menu-bar-select-buffer): ... to here (which is the
only usage in-tree in Emacs).

3 years agotime-stamp: improve unit-test coverage
Stephen Gildea [Sun, 30 May 2021 05:54:30 +0000 (22:54 -0700)]
time-stamp: improve unit-test coverage

* test/lisp/time-stamp-tests.el (time-stamp-format-year-4digit,
time-stamp-format-ignored-modifiers): Improve coverage with more cases.
(time-stamp-format-multiple-conversions): New test.

3 years ago`minibuffer-exit-hook' doc string clarification
Lars Ingebrigtsen [Sun, 30 May 2021 05:06:48 +0000 (07:06 +0200)]
`minibuffer-exit-hook' doc string clarification

* src/minibuf.c (syms_of_minibuf): `minibuffer-exit-hook' is run
in the minubuffer usually, so don't claim that it's run after
(bug#16524).

3 years agoAdd a new documentation group for overlays
Daniel Martín [Sun, 30 May 2021 04:41:52 +0000 (06:41 +0200)]
Add a new documentation group for overlays

* lisp/emacs-lisp/shortdoc.el (overlay): Add documentation group for
buffer overlays(bug#48730).

3 years agoImprove the documentation of documentation groups
Daniel Martín [Sun, 30 May 2021 04:41:24 +0000 (06:41 +0200)]
Improve the documentation of documentation groups

* doc/lispref/help.texi (Documentation Groups): Fix typos and add an
example.
* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group): Add
:no-eval* and :result-string keywords to the docstring.  (Bug#48730)

3 years agoTweak octave continuation indentation
Lars Ingebrigtsen [Sun, 30 May 2021 04:25:47 +0000 (06:25 +0200)]
Tweak octave continuation indentation

* lisp/progmodes/octave.el (octave-smie-rules): Further tweak
continuation indentation (bug#17955).

3 years agoClarify indent-line-function doc string
Eli Zaretskii [Sun, 30 May 2021 04:11:02 +0000 (06:11 +0200)]
Clarify indent-line-function doc string

* lisp/indent.el (indent-line-function): Clarify by avoiding
specifics (bug#20846).

3 years ago* lisp/mpc.el (mpc-format): Fix inf-loop in constructed predicate
Stefan Monnier [Sat, 29 May 2021 18:24:23 +0000 (14:24 -0400)]
* lisp/mpc.el (mpc-format): Fix inf-loop in constructed predicate

3 years ago* lisp/wdired.el (wdired-normalize-filename): Sync with
Andreas Schwab [Sat, 29 May 2021 13:35:25 +0000 (15:35 +0200)]
* lisp/wdired.el (wdired-normalize-filename): Sync with
dired-get-filename.  (Bug#48659)

3 years ago* lisp/electric.el: Do auto-indent inside strings and comments by default
Stefan Monnier [Sat, 29 May 2021 13:22:57 +0000 (09:22 -0400)]
* lisp/electric.el: Do auto-indent inside strings and comments by default

This fixes bug#20846 where it transpired that there is no good reason
to shy away from auto-indenting inside comments and strings.

(electric-indent-post-self-insert-function): Don't check syntax-ppss.

3 years agoImprove tex fontification of quoted strings
Keith David Bershatsky [Sat, 29 May 2021 11:45:59 +0000 (13:45 +0200)]
Improve tex fontification of quoted strings

* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): Fontify
``text like this'' that has an apostrophe correctly (bug#16881).

3 years agoFix last change
Eli Zaretskii [Sat, 29 May 2021 08:17:53 +0000 (11:17 +0300)]
Fix last change

* lisp/international/quail.el (quail-add-unread-command-events):
Fix wording of the doc string.  Move the rationale for the
function out of the doc string and into a comment.

3 years agoFix key recording bug when an input method is activated
Gregory Heytings [Sat, 15 May 2021 20:15:59 +0000 (20:15 +0000)]
Fix key recording bug when an input method is activated

* lisp/international/quail.el (quail-add-unread-command-events):
New function.
(quail-start-translation, quail-start-conversion)
(quail-update-translation, quail-next-translation)
(quail-prev-translation, quail-next-translation-block)
(quail-prev-translation-block, quail-minibuffer-message): Use
'quail-add-unread-command-events' (and partly revert commit
03e3440dbb).  (Bug#48042)

* lisp/subr.el (inhibit--record-char): Now obsolete.

* lisp/term/xterm.el (xterm--init): New function, with most of the
code of former 'terminal-init-xterm'.
(terminal-init-xterm): Clear the lossage after terminal
initialization (see Bug#44908).
(xterm--read-event-for-query): Do not use 'inhibit--record-char'
anymore (revert commit 3e6525d69f).

* src/keyboard.c (syms_of_keyboard): Remove 'inhibit--record-char'
(partly revert 03e3440dbb).
(record_char, syms_of_keyboard_for_pdumper): Do not use
'inhibit_record_char anymore'.

3 years ago; * etc/NEWS: Slight improvement of last entry
Mattias Engdegård [Sat, 29 May 2021 07:32:49 +0000 (09:32 +0200)]
; * etc/NEWS: Slight improvement of last entry

3 years ago; * lisp/emacs-lisp/rx.el (rx--pcase-macroexpander): slight rephrase
Mattias Engdegård [Fri, 28 May 2021 09:51:32 +0000 (11:51 +0200)]
; * lisp/emacs-lisp/rx.el (rx--pcase-macroexpander): slight rephrase

3 years ago; * lisp/mail/rmail.el (rmail-simplified-subject): Dodge relint nag
Mattias Engdegård [Fri, 28 May 2021 09:48:00 +0000 (11:48 +0200)]
; * lisp/mail/rmail.el (rmail-simplified-subject): Dodge relint nag

3 years agoFix shortdoc examples
Mattias Engdegård [Fri, 28 May 2021 09:43:24 +0000 (11:43 +0200)]
Fix shortdoc examples

Make sure that each example in shortdoc actually contains the function
it illustrates, and add a test for it.

* lisp/emacs-lisp/shortdoc.el (string, list, buffer, number):
Use the right functions in examples for string-version-lessp,
lax-plist-put, point-min and ffloor.
* test/lisp/emacs-lisp/shortdoc-tests.el: New test file.

3 years agoAdd lambda to the pretty Ruby symbols list
Lars Ingebrigtsen [Sat, 29 May 2021 06:09:34 +0000 (08:09 +0200)]
Add lambda to the pretty Ruby symbols list

* lisp/progmodes/ruby-mode.el (ruby--prettify-symbols-alist): Add
lambda (bug#48681).

3 years agoAdd pretty symbols to ruby-mode
William Denton [Sat, 29 May 2021 06:08:35 +0000 (08:08 +0200)]
Add pretty symbols to ruby-mode

* lisp/progmodes/ruby-mode.el (ruby--prettify-symbols-alist): Add
pretty symbols (bug#48681).
(ruby-mode): Use them.

3 years agoMention the recent floating point reader changes in NEWS
Lars Ingebrigtsen [Sat, 29 May 2021 06:02:10 +0000 (08:02 +0200)]
Mention the recent floating point reader changes in NEWS

* etc/NEWS: Mention the floating point reader changes (bug#48678).

3 years agoImprove the dired-guess-shell-alist-user doc string
Lars Ingebrigtsen [Sat, 29 May 2021 05:49:19 +0000 (07:49 +0200)]
Improve the dired-guess-shell-alist-user doc string

* lisp/dired-x.el (dired-guess-shell-alist-user): Document how
REGEXP is used (bug#17251).

3 years agoFix folding of non-ASCII lines when printing to Postscript
Lars Ingebrigtsen [Sat, 29 May 2021 05:38:00 +0000 (07:38 +0200)]
Fix folding of non-ASCII lines when printing to Postscript

* lisp/ps-mule.el (ps-mule-plot-string): Fix folding of non-ASCII
Latin-1 lines (bug#17758).

3 years agoImprove Octave indentation after continuation lines
Lars Ingebrigtsen [Sat, 29 May 2021 05:04:34 +0000 (07:04 +0200)]
Improve Octave indentation after continuation lines

* lisp/progmodes/octave.el (octave-smie-rules): Indent
continuation lines better (bug#17955).

3 years agoImprove the file-accessible-directory-p doc strin
Lars Ingebrigtsen [Sat, 29 May 2021 04:02:13 +0000 (06:02 +0200)]
Improve the file-accessible-directory-p doc strin

* src/fileio.c (Ffile_accessible_directory_p): Don't use the
phrase "directory name spec", which isn't defined (bug#18201).

3 years agoFix point movement in morse-region and nato-region
Lars Ingebrigtsen [Sat, 29 May 2021 03:22:31 +0000 (05:22 +0200)]
Fix point movement in morse-region and nato-region

* lisp/play/morse.el (morse-region):
(nato-region): Leave point after the translated region
(bug#18717).

3 years agoRename emacs.appdata.xml to emacs.metainfo.xml and add more data
Peter Oliver [Sat, 29 May 2021 02:15:28 +0000 (04:15 +0200)]
Rename emacs.appdata.xml to emacs.metainfo.xml and add more data

* Makefile.in: Replace "appdata" with "metainfo".

This is the name currently recommended by the spec at
<https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html>.

* etc/emacs.metainfo.xml: Populate more fields, based on those
available in
https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html
(bug#48662).

Copyright-paperwork-exempt: yes

3 years agoRevert "Continue checking the same line when hitting SPC in ispell"
Lars Ingebrigtsen [Sat, 29 May 2021 02:08:57 +0000 (04:08 +0200)]
Revert "Continue checking the same line when hitting SPC in ispell"

This reverts commit 390044f854fa103020ffca00eb1fe0e16805ad72.

This breaks the `a' command, so it should be fixed in a different way.