Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29

This commit is contained in:
Michael Albinus 2022-12-23 18:36:08 +01:00
commit 458e175270
8 changed files with 41 additions and 21 deletions

View file

@ -70,7 +70,7 @@ commit 958b768a6534ae6e77a8547a56fc31b46b63710b
cd ~/emacs/emacs-28
git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
and add "Backport:" to the commit string. Then
and optionally add "Backport:" to the commit string. Then
git push

View file

@ -1990,13 +1990,17 @@ to assign meanings to key bindings that use these modifiers. The
modifier bits are labeled as @samp{s-}, @samp{H-} and @samp{A-}
respectively.
@cindex modifier keys unsupported by keyboard
Even if your keyboard lacks these additional modifier keys, you can
enter it using @kbd{C-x @@}: @kbd{C-x @@ h} adds the Hyper flag to
enter them using @kbd{C-x @@}: @kbd{C-x @@ h} adds the Hyper flag to
the next character, @kbd{C-x @@ s} adds the Super flag, and
@kbd{C-x @@ a} adds the Alt flag. For instance, @kbd{C-x @@ h
C-a} is a way to enter @kbd{Hyper-Control-a}. (Unfortunately, there
is no way to add two modifiers by using @kbd{C-x @@} twice for the
same character, because the first one goes to work on the @kbd{C-x}.)
You can similarly enter the Shift, Control, and Meta modifiers by
using @kbd{C-x @ S}, @kbd{C-x @ c}, and @kbd{C-x @ m}, respectively,
although this is rarely needed.
@node Function Keys
@subsection Rebinding Function Keys

View file

@ -265,6 +265,16 @@ controlled by the internal Emacs machinery led to low-contrast faces
in common default setups. Emacs now uses the same 'region' face on
Gtk and non-Gtk setups.
---
** 'C-h f' and 'C-h x' may now require confirmation when you press RET.
If the text in the minibuffer cannot be completed to a single function
or command, typing RET will not automatically complete to the shortest
candidate, but will instead ask for confirmation. Typing TAB will
complete as much as possible, and another TAB will show all the
possible completions. This allows you to insist on the functions name
even if Help doesn't appear to know about it, by confirming with a
second RET.
** Dired
---

View file

@ -10053,6 +10053,8 @@ PREFIX is the string that represents this modifier in an event type symbol."
event-type
(cons event-type (cdr event)))))))
;; This is what makes "C-x @" followed by [hsmaSc] work even though
;; you won't find any (define-key ctl-x-map "@" ...) binding.
(define-key function-key-map [?\C-x ?@ ?h] 'event-apply-hyper-modifier)
(define-key function-key-map [?\C-x ?@ ?s] 'event-apply-super-modifier)
(define-key function-key-map [?\C-x ?@ ?m] 'event-apply-meta-modifier)

View file

@ -1576,16 +1576,18 @@ in the current Emacs session, then this function may return nil."
;; Use `window-point' for the case when the current buffer
;; is temporarily switched to some other buffer (bug#50256)
(let* ((pos (window-point))
(posn (posn-at-point pos)))
(if (null posn) ;; `pos' is "out of sight".
(list (selected-window) pos '(0 . 0) 0)
;; If `pos' is inside a chunk of text hidden by an `invisible'
;; or `display' property, `posn-at-point' returns the position
;; that *is* visible, whereas `event--posn-at-point' is used
;; when we have a keyboard event, whose position is `point' even
;; if that position is invisible.
(setf (nth 5 posn) pos)
posn)))
(posn (posn-at-point pos (if (minibufferp (current-buffer))
(minibuffer-window)))))
(cond ((null posn) ;; `pos' is "out of sight".
(setq posn (list (selected-window) pos '(0 . 0) 0)))
;; If `pos' is inside a chunk of text hidden by an `invisible'
;; or `display' property, `posn-at-point' returns the position
;; that *is* visible, whereas `event--posn-at-point' is used
;; when we have a keyboard event, whose position is `point' even
;; if that position is invisible.
((> (length posn) 5)
(setf (nth 5 posn) pos)))
posn))
(defun event-start (event)
"Return the starting position of EVENT.

View file

@ -2096,8 +2096,8 @@ may require a restart of Emacs in order to become effective."
(defcustom reftex-allow-detached-macro-args nil
"Non-nil means, allow arguments of macros to be detached by whitespace.
When this is t, `aaa' will be considered as argument of \\bb in the following
construct: \\bbb [xxx] {aaa}."
When this is t, `aaa' will be considered as argument of \\bbb in
the following construct: \\bbb [xxx] {aaa}."
:group 'reftex-miscellaneous-configurations
:type 'boolean)

View file

@ -1041,12 +1041,13 @@ It is based on `log-edit-mode', and has Git-specific extensions."
(string-replace file-diff "" vc-git-patch-string))
(user-error "Index not empty"))
(setq pos (point))))))
(let ((patch-file (make-nearby-temp-file "git-patch")))
(with-temp-file patch-file
(insert vc-git-patch-string))
(unwind-protect
(vc-git-command nil 0 patch-file "apply" "--cached")
(delete-file patch-file))))
(unless (string-empty-p vc-git-patch-string)
(let ((patch-file (make-nearby-temp-file "git-patch")))
(with-temp-file patch-file
(insert vc-git-patch-string))
(unwind-protect
(vc-git-command nil 0 patch-file "apply" "--cached")
(delete-file patch-file)))))
(cl-flet ((boolean-arg-fn
(argument)
(lambda (value) (when (equal value "yes") (list argument)))))

View file

@ -1649,7 +1649,8 @@ check_window_containing (struct window *w, void *user_data)
set *PART to the id of that element.
If there is no window under X, Y return nil and leave *PART
unmodified. TOOL_BAR_P means detect tool-bar windows.
unmodified. TOOL_BAR_P means detect tool-bar windows, and
TAB_BAR_P means detect tab-bar windows.
This function was previously implemented with a loop cycling over
windows with Fnext_window, and starting with the frame's selected