From: Thierry Volpiatto <thievol@posteo.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: kun.liu@gmail.com, me@eshelyaron.com, 67702@debbugs.gnu.org
Subject: bug#67702: 30.0.50; insert-register can no longer be used in minibuffer
Date: Fri, 08 Dec 2023 12:40:18 +0000 [thread overview]
Message-ID: <87v898hnpp.fsf@posteo.net> (raw)
In-Reply-To: <83wmtozyxg.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 08 Dec 2023 14:00:43 +0200 (39 minutes, 4 seconds ago)")
[-- Attachment #1.1: Type: text/plain, Size: 46 bytes --]
Here the patches, sorry.
--
Thierry
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Exit-with-no-confirmation-RET-when-register-use-prev.patch --]
[-- Type: text/x-diff, Size: 2251 bytes --]
From ff8f43a39e2cee1f71629194d44c7459f2b90d79 Mon Sep 17 00:00:00 2001
From: Thierry Volpiatto <thievol@posteo.net>
Date: Sun, 3 Dec 2023 15:21:50 +0100
Subject: [PATCH 1/3] Exit with no confirmation (RET) when register-use-preview
is non nil and .
This is done by exiting minibuffer when selected register is empty or
when just jumping or inserting.
* lisp/register.el (register-read-with-preview): Do it.
---
lisp/register.el | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/lisp/register.el b/lisp/register.el
index 46ec38821e5..a38b531dfc9 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -385,12 +385,16 @@ display such a window regardless."
(minibuffer-message
"Register `%s' is empty" pat))))))
(unless (string= pat "")
- (if (member pat strs)
- (with-selected-window (minibuffer-window)
- (minibuffer-message msg pat))
- (with-selected-window (minibuffer-window)
- (minibuffer-message
- "Register `%s' is empty" pat)))))))))
+ (with-selected-window (minibuffer-window)
+ (if (and (member pat strs) (memq act '(set modify)))
+ (with-selected-window (minibuffer-window)
+ (minibuffer-message msg pat))
+ ;; An empty register or an existing
+ ;; one but the action is insert or
+ ;; jump, don't ask for confirmation
+ ;; and exit immediately (bug#66394).
+ (setq result pat)
+ (exit-minibuffer)))))))))
(setq result (read-from-minibuffer
prompt nil map nil nil (register-preview-get-defaults act))))
(cl-assert (and result (not (string= result "")))
--
2.34.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Allow-inserting-registers-in-minibuffer-bug-67702.patch --]
[-- Type: text/x-diff, Size: 903 bytes --]
From 09c00dd82d377972bb9cc8b789156993f27c1026 Mon Sep 17 00:00:00 2001
From: Thierry Volpiatto <thievol@posteo.net>
Date: Fri, 8 Dec 2023 08:09:38 +0100
Subject: [PATCH 2/3] Allow inserting registers in minibuffer (bug#67702)
* lisp/register.el (register-read-with-preview): Bind
`enable-recursive-minibuffers`.
---
lisp/register.el | 1 +
1 file changed, 1 insertion(+)
diff --git a/lisp/register.el b/lisp/register.el
index a38b531dfc9..ba00f296af9 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -315,6 +315,7 @@ display such a window regardless."
(set-keymap-parent m minibuffer-local-map)
m))
(data (register-command-info this-command))
+ (enable-recursive-minibuffers t)
types msg result timer act win strs smatch)
(if data
(setq types (register-preview-info-types data)
--
2.34.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-Add-more-options-to-register-use-preview.patch --]
[-- Type: text/x-diff, Size: 3625 bytes --]
From 633fa5245072a746d122eb6eba11751033749afc Mon Sep 17 00:00:00 2001
From: Thierry Volpiatto <thievol@posteo.net>
Date: Fri, 8 Dec 2023 11:34:08 +0100
Subject: [PATCH 3/3] Add more options to register-use-preview
This allow showing a basic preview buffer or no preview buffer at all.
* lisp/register.el (register-use-preview): Use choice with three
options.
(register-read-with-preview): Use a basic buffer without navigation,
highlighting etc... when register-use-preview is nil, and no buffer
at all when set to 'never.
---
lisp/register.el | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/lisp/register.el b/lisp/register.el
index ba00f296af9..ade65b5bdc2 100644
--- a/lisp/register.el
+++ b/lisp/register.el
@@ -107,8 +107,17 @@ If nil, do not show register previews, unless `help-char' (or a member of
:type '(repeat string))
(defcustom register-use-preview t
- "Always show register preview when non nil."
- :type 'boolean)
+ "Maybe show register preview.
+
+When set to `t' show a preview buffer with navigation and highlighting.
+When nil show a basic preview buffer and exit minibuffer
+immediately after insertion in minibuffer.
+When set to \\='never behave as above but with no preview buffer at
+all."
+ :type '(choice
+ (const :tag "Use preview" t)
+ (const :tag "Use quick preview" nil)
+ (const :tag "Never use preview" never)))
(defun get-register (register)
"Return contents of Emacs register named REGISTER, or nil if none."
@@ -310,6 +319,8 @@ Prompt with the string PROMPT.
If `help-char' (or a member of `help-event-list') is pressed,
display such a window regardless."
(let* ((buffer "*Register Preview*")
+ (buffer1 "*Register quick preview*")
+ (buf (if register-use-preview buffer buffer1))
(pat "")
(map (let ((m (make-sparse-keymap)))
(set-keymap-parent m minibuffer-local-map)
@@ -334,15 +345,16 @@ display such a window regardless."
(define-key map
(vector k) (lambda ()
(interactive)
- (unless (get-buffer-window buffer)
+ ;; Do nothing when buffer1 is in use.
+ (unless (get-buffer-window buf)
(with-selected-window (minibuffer-selected-window)
(register-preview buffer 'show-empty types))))))
(define-key map (kbd "<down>") 'register-preview-next)
(define-key map (kbd "<up>") 'register-preview-previous)
(define-key map (kbd "C-n") 'register-preview-next)
(define-key map (kbd "C-p") 'register-preview-previous)
- (unless (or executing-kbd-macro (null register-use-preview))
- (register-preview buffer nil types))
+ (unless (or executing-kbd-macro (eq register-use-preview 'never))
+ (register-preview buf nil types))
(unwind-protect
(progn
(minibuffer-with-setup-hook
@@ -402,9 +414,9 @@ display such a window regardless."
nil "No register specified")
(string-to-char result))
(when timer (cancel-timer timer))
- (let ((w (get-buffer-window buffer)))
+ (let ((w (get-buffer-window buf)))
(and (window-live-p w) (delete-window w)))
- (and (get-buffer buffer) (kill-buffer buffer)))))
+ (and (get-buffer buf) (kill-buffer buf)))))
(defun point-to-register (register &optional arg)
"Store current location of point in REGISTER.
--
2.34.1
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 686 bytes --]
next prev parent reply other threads:[~2023-12-08 12:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-07 22:33 bug#67702: 30.0.50; insert-register can no longer be used in minibuffer Kun Liu
2023-12-08 6:32 ` Eli Zaretskii
2023-12-08 7:04 ` Thierry Volpiatto
2023-12-08 7:14 ` Thierry Volpiatto
2023-12-08 7:15 ` Eli Zaretskii
2023-12-08 7:31 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-08 7:52 ` Eli Zaretskii
2023-12-08 8:27 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-08 8:51 ` Eli Zaretskii
2023-12-08 9:07 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-08 10:23 ` Thierry Volpiatto
2023-12-08 10:16 ` Thierry Volpiatto
2023-12-08 10:40 ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-12-08 12:00 ` Eli Zaretskii
2023-12-08 12:11 ` Thierry Volpiatto
2023-12-08 12:39 ` Thierry Volpiatto
2023-12-08 12:40 ` Thierry Volpiatto [this message]
2023-12-08 16:37 ` Thierry Volpiatto
2023-12-08 8:46 ` Thierry Volpiatto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v898hnpp.fsf@posteo.net \
--to=thievol@posteo.net \
--cc=67702@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=kun.liu@gmail.com \
--cc=me@eshelyaron.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.