1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-01 08:17:38 +00:00

Merge from origin/emacs-29

cd477bf07d Fix behavior of 'split-root-window-*' with 'C-u'
2e5d47f578 ; * doc/lispintro/emacs-lisp-intro.texi (copy-to-buffer):...
c46700deb0 Add more text to clarify the behavior of 'with-current-bu...
687c416ce9 Fix example in Emacs user manual
835902179c ; Fix recent change in 'c-ts-mode'
169a5ff752 ; Fix typo in Gnus manual (bug#67469).
30841c71a5 Mention Titankey in Tramp, which has passed the tests
dab7cc241f Fix c-ts-mode indentation after if/else (bug#67417)
f8d9dc26c7 Fix indentation for else clause in c-ts-mode (bug#67417)
bf0b0c9c73 Ensure that directory is expanded in package-vc-checkout
e551dd72f7 * etc/PROBLEMS: Add entry about pinentry with gpgsm.  (Bu...
This commit is contained in:
Eli Zaretskii 2023-12-02 10:05:50 -05:00
commit 14b62b1ae0
10 changed files with 68 additions and 13 deletions

View File

@ -2007,8 +2007,8 @@ the one for @kbd{C-c C-x x} in Texinfo mode:
(keymap-set texinfo-mode-map "C-c p" (keymap-set texinfo-mode-map "C-c p"
'backward-paragraph) 'backward-paragraph)
(keymap-set texinfo-mode-map "C-c n" (keymap-set texinfo-mode-map "C-c n"
'forward-paragraph))) 'forward-paragraph)
(keymap-set texinfo-mode-map "C-c C-x x" nil) (keymap-set texinfo-mode-map "C-c C-x x" nil)))
@end example @end example
@node Modifier Keys @node Modifier Keys

View File

@ -5445,7 +5445,11 @@ That expression starts with @code{get-buffer-create buffer}. The
function tells the computer to use the buffer with the name specified function tells the computer to use the buffer with the name specified
as the one to which you are copying, or if such a buffer does not as the one to which you are copying, or if such a buffer does not
exist, to create it. Then, the @code{with-current-buffer} function exist, to create it. Then, the @code{with-current-buffer} function
evaluates its body with that buffer temporarily current. evaluates its body with that buffer temporarily current, after which
it will switch back to the buffer we are at now@footnote{It is like
calling @w{@code{(save-excursion (set-buffer @dots{}) @dots{})}} in
one go, though it is defined slightly differently which interested
reader can find out using @code{describe-function}.}.
(This demonstrates another way to shift the computer's attention but (This demonstrates another way to shift the computer's attention but
not the user's. The @code{append-to-buffer} function showed how to do not the user's. The @code{append-to-buffer} function showed how to do

View File

@ -21596,7 +21596,7 @@ Search Groups}).
Search queries can be specified one of two ways: either using the Search queries can be specified one of two ways: either using the
syntax of the engine responsible for the group you're searching, or syntax of the engine responsible for the group you're searching, or
using Gnus' generalized search syntax. Set the option using Gnus' generalized search syntax. Set the option
@code{gnus-search-use-parsed-queries} to a non-@code{nil} value to used the @code{gnus-search-use-parsed-queries} to a non-@code{nil} value to use the
generalized syntax. The advantage of this syntax is that, if you have generalized syntax. The advantage of this syntax is that, if you have
multiple backends indexed by different engines, you don't need to multiple backends indexed by different engines, you don't need to
remember which one you're searching---it's also possible to issue the remember which one you're searching---it's also possible to issue the

View File

@ -5240,7 +5240,7 @@ Yes. @command{OpenSSH} has added support for @acronym{FIDO} hardware
devices via special key types @option{*-sk}. @value{tramp} supports devices via special key types @option{*-sk}. @value{tramp} supports
the additional handshaking messages for them. This requires at least the additional handshaking messages for them. This requires at least
@command{OpenSSH} 8.2, and a @acronym{FIDO} @acronym{U2F} compatible @command{OpenSSH} 8.2, and a @acronym{FIDO} @acronym{U2F} compatible
security key, like yubikey, solokey, or nitrokey. security key, like yubikey, solokey, nitrokey, or titankey.
@item @item

View File

@ -534,6 +534,16 @@ is to downgrade to a version of GnuPG older than 2.4.1 (or, in the
future, upgrade to a newer version which solves the problem, when such future, upgrade to a newer version which solves the problem, when such
a fixed version becomes available). a fixed version becomes available).
*** EasyPG loopback pinentry does not work with gpgsm.
This happens with the 'gpgsm' command from all versions of GnuPG.
EasyPG relies on the machine-parseable interface that is provided by
'gpg2' with option '--status-fd', but gpgsm does not support this.
As a workaround, input the passphrase with a GUI-capable pinentry
program like 'pinentry-gnome' or 'pinentry-qt5'. Alternatively, you
can use the 'pinentry' package from Emacs 25.
*** Emacs running on WSL receives stray characters as input. *** Emacs running on WSL receives stray characters as input.
For example, you could see Emacs inserting 'z' characters even though For example, you could see Emacs inserting 'z' characters even though

View File

@ -941,6 +941,7 @@ for the last released version of the package."
(lambda (dir) (or (not (file-exists-p dir)) (lambda (dir) (or (not (file-exists-p dir))
(directory-empty-p dir)))) (directory-empty-p dir))))
(and current-prefix-arg :last-release)))) (and current-prefix-arg :last-release))))
(setf directory (expand-file-name directory))
(package-vc--archives-initialize) (package-vc--archives-initialize)
(let ((pkg-spec (or (package-vc--desc->spec pkg-desc) (let ((pkg-spec (or (package-vc--desc->spec pkg-desc)
(and-let* ((extras (package-desc-extras pkg-desc)) (and-let* ((extras (package-desc-extras pkg-desc))

View File

@ -750,8 +750,9 @@ The regexp should match at end of buffer."
;; A security key requires the user physically to touch the device ;; A security key requires the user physically to touch the device
;; with their finger. We must tell it to the user. ;; with their finger. We must tell it to the user.
;; Added in OpenSSH 8.2. I've tested it with yubikey. Nitrokey, ;; Added in OpenSSH 8.2. I've tested it with yubikey. Nitrokey and
;; which has also passed the tests, does not show such a message. ;; Titankey, which have also passed the tests, do not show such a
;; message.
(defcustom tramp-security-key-confirm-regexp (defcustom tramp-security-key-confirm-regexp
(rx bol (* "\r") "Confirm user presence for key " (* nonl) (* (any "\r\n"))) (rx bol (* "\r") "Confirm user presence for key " (* nonl) (* (any "\r\n")))
"Regular expression matching security key confirmation message. "Regular expression matching security key confirmation message.

View File

@ -356,11 +356,27 @@ PARENT, BOL, ARGS are the same as other anchor functions."
(apply (alist-get 'standalone-parent treesit-simple-indent-presets) (apply (alist-get 'standalone-parent treesit-simple-indent-presets)
parent (treesit-node-parent parent) bol args)) parent (treesit-node-parent parent) bol args))
(defun c-ts-mode--prev-line-match (regexp)
"An indentation matcher that matches if previous line matches REGEXP."
(lambda (_n _p bol &rest _)
(save-excursion
(goto-char bol)
(forward-line -1)
(back-to-indentation)
(looking-at-p regexp))))
(defun c-ts-mode--indent-styles (mode) (defun c-ts-mode--indent-styles (mode)
"Indent rules supported by `c-ts-mode'. "Indent rules supported by `c-ts-mode'.
MODE is either `c' or `cpp'." MODE is either `c' or `cpp'."
(let ((common (let ((common
`((c-ts-mode--for-each-tail-body-matcher prev-line c-ts-mode-indent-offset) `((c-ts-mode--for-each-tail-body-matcher prev-line c-ts-mode-indent-offset)
;; If the user types "if (...)" and hits RET, they expect
;; point on the empty line to be indented; this rule
;; does that.
((and no-node
(c-ts-mode--prev-line-match
,(rx (or "if" "else" "while" "do" "for"))))
prev-line c-ts-mode-indent-offset)
((parent-is "translation_unit") column-0 0) ((parent-is "translation_unit") column-0 0)
((query "(ERROR (ERROR)) @indent") column-0 0) ((query "(ERROR (ERROR)) @indent") column-0 0)
@ -453,6 +469,7 @@ MODE is either `c' or `cpp'."
;; These rules are for cases where the body is bracketless. ;; These rules are for cases where the body is bracketless.
;; Tested by the "Bracketless Simple Statement" test. ;; Tested by the "Bracketless Simple Statement" test.
((parent-is "if_statement") standalone-parent c-ts-mode-indent-offset) ((parent-is "if_statement") standalone-parent c-ts-mode-indent-offset)
((parent-is "else_clause") standalone-parent c-ts-mode-indent-offset)
((parent-is "for_statement") standalone-parent c-ts-mode-indent-offset) ((parent-is "for_statement") standalone-parent c-ts-mode-indent-offset)
((parent-is "while_statement") standalone-parent c-ts-mode-indent-offset) ((parent-is "while_statement") standalone-parent c-ts-mode-indent-offset)
((parent-is "do_statement") standalone-parent c-ts-mode-indent-offset) ((parent-is "do_statement") standalone-parent c-ts-mode-indent-offset)

View File

@ -5682,7 +5682,8 @@ Return the new window.
If optional argument SIZE is omitted or nil, both windows get the If optional argument SIZE is omitted or nil, both windows get the
same height, or close to it. If SIZE is positive, the upper same height, or close to it. If SIZE is positive, the upper
\(selected) window gets SIZE lines. If SIZE is negative, the \(selected) window gets SIZE lines. If SIZE is negative, the
lower (new) window gets -SIZE lines. lower (new) window gets -SIZE lines. Interactively, SIZE is
the prefix numeric argument.
If the variable `split-window-keep-point' is non-nil, both If the variable `split-window-keep-point' is non-nil, both
windows get the same value of point as the WINDOW-TO-SPLIT. windows get the same value of point as the WINDOW-TO-SPLIT.
@ -5734,8 +5735,9 @@ amount of redisplay; this is convenient on slow terminals."
"Split root window of current frame in two. "Split root window of current frame in two.
The current window configuration is retained in the top window, The current window configuration is retained in the top window,
the lower window takes up the whole width of the frame. SIZE is the lower window takes up the whole width of the frame. SIZE is
handled as in `split-window-below'." handled as in `split-window-below', and interactively is the
(interactive "P") prefix numeric argument."
(interactive "p")
(split-window-below size (frame-root-window))) (split-window-below size (frame-root-window)))
(defun split-window-right (&optional size window-to-split) (defun split-window-right (&optional size window-to-split)
@ -5752,7 +5754,7 @@ same width, or close to it. If SIZE is positive, the left-hand
right-hand (new) window gets -SIZE columns. Here, SIZE includes right-hand (new) window gets -SIZE columns. Here, SIZE includes
the width of the window's scroll bar; if there are no scroll the width of the window's scroll bar; if there are no scroll
bars, it includes the width of the divider column to the window's bars, it includes the width of the divider column to the window's
right, if any." right, if any. Interactively, SIZE is the prefix numeric argument."
(interactive `(,(when current-prefix-arg (interactive `(,(when current-prefix-arg
(prefix-numeric-value current-prefix-arg)) (prefix-numeric-value current-prefix-arg))
,(selected-window))) ,(selected-window)))
@ -5774,8 +5776,8 @@ right, if any."
The current window configuration is retained within the left The current window configuration is retained within the left
window, and a new window is created on the right, taking up the window, and a new window is created on the right, taking up the
whole height of the frame. SIZE is treated as by whole height of the frame. SIZE is treated as by
`split-window-right'." `split-window-right' and interactively, is the prefix numeric argument."
(interactive "P") (interactive "p")
(split-window-right size (frame-root-window))) (split-window-right size (frame-root-window)))
;;; Balancing windows. ;;; Balancing windows.

View File

@ -149,6 +149,21 @@ for (int i = 0;
Name: Bracketless Simple Statement Name: Bracketless Simple Statement
=-=
for (int i = 0; i < 5; i++)
continue;
while (true)
return 1;
do
i++;
while (true)
if (true)
break;
else
break;
=-= =-=
for (int i = 0; i < 5; i++) for (int i = 0; i < 5; i++)
continue; continue;
@ -159,6 +174,11 @@ while (true)
do do
i++; i++;
while (true) while (true)
if (true)
break;
else
break;
=-=-= =-=-=
Name: Nested If-Else Name: Nested If-Else