master 0f086c307c1 4/4: Merge from origin/emacs-31

Eli Zaretskii <[email protected]> Sat, 18 Jul 2026 06:00:10 -0400 (EDT)
Newsgroups gmane.emacs.diffs
Message-ID <[email protected]>
branch: master
commit 0f086c307c12b74aeedfba07cfe5b57ef2f99808
Merge: 72842af763d 6107196a321
Author: Eli Zaretskii <[email protected]>
Commit: Eli Zaretskii <[email protected]>

    Merge from origin/emacs-31
    
    6107196a321 ; * etc/NEWS: Fix capitalization of arrow keys.
    1a2fc844ca9 Revert "; * admin/authors.el (authors-aliases): Fix Borys...
    cf6918c189e ; * admin/authors.el (authors-aliases): Fix Borys Buliha'...
    eac0aaf7a1b ; * doc/misc/cl.texi (Modify Macros): Remove 'with-memoiz...
    c6c8012d7ac Fix 'mouse-drag-copy-region' = 'non-empty'
    
    # Conflicts:
    #       etc/NEWS
---
 doc/misc/cl.texi |  6 ------
 etc/NEWS.31      | 36 ++++++++++++++++++------------------
 lisp/mouse.el    |  4 ++--
 3 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 86af253bdf1..b15b1b187a4 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -1245,12 +1245,6 @@ blocks for other macros like @code{cl-pushnew}.
 The @code{cl-letf} and @code{cl-letf*} macros are used in the processing
 of symbol macros; @pxref{Macro Bindings}.
 
-@defmac with-memoization @var{place} @var{code}@dots{}
-This macro provides a simple way to do memoization.  @var{code} is
-evaluated and then stashed in @var{place}.  If @var{place}'s value is
-non-@code{nil}, return that value instead of evaluating @var{code}.
-@end defmac
-
 
 @node Variable Bindings
 @section Variable Bindings
diff --git a/etc/NEWS.31 b/etc/NEWS.31
index 27512710eb1..1270b95e622 100644
--- a/etc/NEWS.31
+++ b/etc/NEWS.31
@@ -218,14 +218,14 @@ large or inefficient completion tables this can slow down typing.
 
 +++
 *** New optional value of 'minibuffer-visible-completions'.
-If the value of this option is 'up-down', only the '<up>' and '<down>'
+If the value of this option is 'up-down', only the '<UP>' and '<DOWN>'
 arrow keys move point between candidates shown in the "*Completions*"
-buffer display, while '<right>' and '<left>' arrows move point in the
+buffer display, while '<RIGHT>' and '<LEFT>' arrows move point in the
 minibuffer window.
 
 ---
-*** 'RET' chooses the completion selected with 'M-<up>/M-<down>'.
-If a completion candidate is selected with 'M-<up>' or 'M-<down>',
+*** 'RET' chooses the completion selected with 'M-<UP>/M-<DOWN>'.
+If a completion candidate is selected with 'M-<UP>' or 'M-<DOWN>',
 hitting 'RET' will exit completion with that as the result.  This works
 both in minibuffer completion and in-buffer completion.  This supersedes
 'minibuffer-completion-auto-choose', which previously provided similar
@@ -254,18 +254,18 @@ and 'completion-category-defaults'.
 +++
 *** Navigating "*Completions*" now accommodates 'completions-format'.
 When 'completions-format' is set to 'vertical', typing 'n', 'TAB' or
-'M-<down>' in the "*Completions*" buffer (the latter also in the
+'M-<DOWN>' in the "*Completions*" buffer (the latter also in the
 minibuffer) now moves point to the completion candidate in the next line
 in the current column, and wraps to the next column when typed on the
 last completion candidate of the current column.  Likewise, typing 'p',
-'S-TAB' or 'M-<up>' moves point to the completion candidate in the
+'S-TAB' or 'M-<UP>' moves point to the completion candidate in the
 previous line or wraps to the previous column.  Previously, these keys
 ignored the vertical format, i.e., moved point only to the item in the
 same line of the next or previous column, in accordance with the default
-horizontal format.  In vertical format, typing '<left>' and '<right>' in
+horizontal format.  In vertical format, typing '<LEFT>' and '<RIGHT>' in
 the "*Completions*" buffer (and when 'minibuffer-visible-completions' is
 non-nil, also in the minibuffer) moves point only within the current
-line, analogously to how, in horizontal format, '<down>' and '<up>' move
+line, analogously to how, in horizontal format, '<DOWN>' and '<UP>' move
 point only within the current column.
 
 ---
@@ -361,16 +361,16 @@ increments as with Emacs 24 through Emacs 30 you now have to set
 
 +++
 *** New commands to modify window layouts of frames.
-'window-layout-rotate-clockwise' ('C-x w r <right>') and its counterpart
-'window-layout-rotate-anticlockwise' ('C-x w r <left>') rotate an entire
+'window-layout-rotate-clockwise' ('C-x w r <RIGHT>') and its counterpart
+'window-layout-rotate-anticlockwise' ('C-x w r <LEFT>') rotate an entire
 window layout.
-'window-layout-flip-topdown' ('C-x w f <down>', 'C-x w f <up>') and
-'window-layout-flip-leftright' ('C-x w f <left>', 'C-x w f <right>')
+'window-layout-flip-topdown' ('C-x w f <DOWN>', 'C-x w f <UP>') and
+'window-layout-flip-leftright' ('C-x w f <LEFT>', 'C-x w f <RIGHT>')
 flip the window layout vertically and horizontally.
 'window-layout-transpose' ('C-x w t') reorganizes windows such that
 every horizontal split becomes a vertical split and vice versa.
-'rotate-windows' ('C-x w o <right>') and its counterpart
-'rotate-windows-back' ('C-x w o <left>') rotate windows in cyclic
+'rotate-windows' ('C-x w o <RIGHT>') and its counterpart
+'rotate-windows-back' ('C-x w o <LEFT>') rotate windows in cyclic
 ordering.
 
 *** New user option 'rotate-windows-change-selected'.
@@ -692,13 +692,13 @@ wrapping and resizing the tab bar to more than one line.
 ---
 *** New user option 'tab-line-define-keys'.
 When t, the default, it redefines window buffer switching keys
-such as 'C-x <left>' and 'C-x <right>' to tab-line specific variants
+such as 'C-x <LEFT>' and 'C-x <RIGHT>' to tab-line specific variants
 for switching tabs.
 
 ---
-*** New command 'tab-line-move-tab-forward' ('C-x M-<right>').
+*** New command 'tab-line-move-tab-forward' ('C-x M-<RIGHT>').
 Together with the new command 'tab-line-move-tab-backward'
-('C-x M-<left>'), it can be used to move the current tab
+('C-x M-<LEFT>'), it can be used to move the current tab
 on the tab line to a different position.
 
 ---
@@ -2095,7 +2095,7 @@ its current directory, and creates a remote connection, if necessary.
 You can customize 'shell-bookmark-name-function'.
 
 *** New command to complete the shell history.
-'comint-complete-input-ring' ('C-x <up>') is like 'minibuffer-complete-history'
+'comint-complete-input-ring' ('C-x <UP>') is like 'minibuffer-complete-history'
 but completes on comint inputs.
 
 ---
diff --git a/lisp/mouse.el b/lisp/mouse.el
index b6f167d8d87..dea7b190a1f 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -2388,8 +2388,8 @@ if `mouse-drag-copy-region' is non-nil)."
       (exchange-point-and-mark)
       (mouse-set-region-1)
       (when (and mouse-drag-copy-region
-                 (or (not (eq mouse-drag-copy-region 'non-empty))
-                     (not (/= (mark t) (point)))))
+                 (not (and (eq mouse-drag-copy-region 'non-empty)
+                           (= (mark t) (point)))))
         (kill-new (filter-buffer-substring (mark t) (point))))
       (setq mouse-save-then-kill-posn click-pt)))))