unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Jonas Bernoulli <jonas@bernoul.li>
To: notmuch@notmuchmail.org
Subject: [PATCH v3 30/34] emacs: Remove notmuch-read-char-choice
Date: Sat,  8 Aug 2020 13:50:05 +0200	[thread overview]
Message-ID: <20200808115009.24071-31-jonas@bernoul.li> (raw)
In-Reply-To: <20200808115009.24071-1-jonas@bernoul.li>

Just use `read-char-choice', which existed since Emacs 24.1.
---
 emacs/notmuch-compat.el      | 56 ------------------------------------
 emacs/notmuch-maildir-fcc.el |  4 +--
 2 files changed, 2 insertions(+), 58 deletions(-)

diff --git a/emacs/notmuch-compat.el b/emacs/notmuch-compat.el
index fafc64f3..3ede6b36 100644
--- a/emacs/notmuch-compat.el
+++ b/emacs/notmuch-compat.el
@@ -40,62 +40,6 @@ (defun notmuch-message--fold-long-headers ()
 (unless (fboundp 'message--fold-long-headers)
   (add-hook 'message-header-hook 'notmuch-message--fold-long-headers))
 
-(if (fboundp 'read-char-choice)
-    (defalias 'notmuch-read-char-choice 'read-char-choice)
-  (defun notmuch-read-char-choice (prompt chars &optional inhibit-keyboard-quit)
-    "Read and return one of CHARS, prompting for PROMPT.
-Any input that is not one of CHARS is ignored.
-
-If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
-keyboard-quit events while waiting for a valid input.
-
-This is an exact copy of this function from emacs 24 for use on
-emacs 23, except with the one emacs 24 only function it calls
-inlined."
-    (unless (consp chars)
-      (error "Called `read-char-choice' without valid char choices"))
-    (let (char done show-help (helpbuf " *Char Help*"))
-      (let ((cursor-in-echo-area t)
-	    (executing-kbd-macro executing-kbd-macro)
-	    (esc-flag nil))
-	(save-window-excursion	      ; in case we call help-form-show
-	  (while (not done)
-	    (unless (get-text-property 0 'face prompt)
-	      (setq prompt (propertize prompt 'face 'minibuffer-prompt)))
-	    (setq char (let ((inhibit-quit inhibit-keyboard-quit))
-			 (read-key prompt)))
-	    (and show-help (buffer-live-p (get-buffer helpbuf))
-		 (kill-buffer helpbuf))
-	    (cond
-	     ((not (numberp char)))
-	     ;; If caller has set help-form, that's enough.
-	     ;; They don't explicitly have to add help-char to chars.
-	     ((and help-form
-		   (eq char help-char)
-		   (setq show-help t)
-		   ;; This is an inlined copy of help-form-show as that
-		   ;; was introduced in emacs 24 too.
-		   (let ((msg (eval help-form)))
-		     (when (stringp msg)
-		       (with-output-to-temp-buffer " *Char Help*"
-			 (princ msg))))))
-	     ((memq char chars)
-	      (setq done t))
-	     ((and executing-kbd-macro (= char -1))
-	      ;; read-event returns -1 if we are in a kbd macro and
-	      ;; there are no more events in the macro.  Attempt to
-	      ;; get an event interactively.
-	      (setq executing-kbd-macro nil))
-	     ((not inhibit-keyboard-quit)
-	      (cond
-	       ((and (null esc-flag) (eq char ?\e))
-		(setq esc-flag t))
-	       ((memq char '(?\C-g ?\e))
-		(keyboard-quit))))))))
-      ;; Display the question with the answer.  But without cursor-in-echo-area.
-      (message "%s%s" prompt (char-to-string char))
-      char)))
-
 ;; End of compatibility functions
 
 (provide 'notmuch-compat)
diff --git a/emacs/notmuch-maildir-fcc.el b/emacs/notmuch-maildir-fcc.el
index aa07b26a..a9103a20 100644
--- a/emacs/notmuch-maildir-fcc.el
+++ b/emacs/notmuch-maildir-fcc.el
@@ -242,7 +242,7 @@ (defun notmuch-maildir-fcc-with-notmuch-insert (fcc-header &optional create)
       ;; typo, or just the user want a new folder, let the user decide
       ;; how to deal with it.
       (error
-       (let ((response (notmuch-read-char-choice "Insert failed: \
+       (let ((response (read-char-choice "Insert failed: \
 \(r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " '(?r ?c ?i ?e))))
 	 (cl-case response
 	   (?r (notmuch-maildir-fcc-with-notmuch-insert fcc-header))
@@ -327,7 +327,7 @@ (defun notmuch-maildir-fcc-file-fcc (fcc-header)
     ;; fix it in some way.
     (let* ((prompt (format "Fcc %s is not a maildir: \
 \(r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " fcc-header))
-	   (response (notmuch-read-char-choice prompt '(?r ?c ?i ?e))))
+	   (response (read-char-choice prompt '(?r ?c ?i ?e))))
       (cl-case response
 	(?r (notmuch-maildir-fcc-file-fcc fcc-header))
 	(?c (if (file-writable-p fcc-header)
-- 
2.28.0

  parent reply	other threads:[~2020-08-08 11:52 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-26 16:57 [PATCH 00/23] A create number of cosmetic changes Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 01/23] emacs: Shorten long lines Jonas Bernoulli
2020-07-27 17:52   ` Tomi Ollila
2020-07-27 20:13     ` Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 02/23] emacs: Remove excess empty lines Jonas Bernoulli
2020-07-27 18:00   ` Tomi Ollila
2020-07-27 20:25     ` Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 03/23] emacs: Fix indentation Jonas Bernoulli
2020-07-30 20:07   ` Tomi Ollila
2020-08-01 20:37     ` Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 04/23] emacs: Closing parenthesis go on the same line Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 05/23] emacs: Only set one variable per setq form Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 06/23] emacs: Use cl-incf where appropriate Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 07/23] emacs: Use 'and' instead of 'when' when the return value matters Jonas Bernoulli
2020-07-26 21:27   ` Sean Whitton
2020-07-26 22:02     ` Jonas Bernoulli
2020-07-27 16:43       ` Sean Whitton
2020-07-27 20:32         ` Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 08/23] emacs: Use 'unless' instead of 'when' and 'not' Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 09/23] emacs: Use 'when' instead of 'if' when there is no ELSE part Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 10/23] emacs: Use one or three lines for 'if' forms Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 11/23] emacs: Extend face to window edge again Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 12/23] emacs: Fix some function declarations Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 13/23] emacs: No longer define notmuch-hello-mode-map as a function Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 14/23] emacs: notmuch-poll: Let the user know we are polling Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 15/23] emacs: Use makefile-gmake-mode in Makefile*s Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 16/23] emacs: Improve doc-strings Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 17/23] emacs: Autoload notmuch-jump-search only once Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 18/23] emacs: Autoload notmuch-jump using an autoload cookie Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 19/23] emacs: Various cosmetic changes Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 20/23] emacs: Increase consistency of library headers Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 21/23] Fix typos Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 22/23] .dir-locals.el: Set variables for correct "shell" mode Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 23/23] test: Fix indentation Jonas Bernoulli
2020-07-30 20:36 ` [PATCH 00/23] A create number of cosmetic changes Tomi Ollila
2020-08-01 20:48   ` [PATCH 00/23] A great " Jonas Bernoulli
2020-08-03 17:32     ` David Bremner
2020-08-06  7:18 ` [PATCH v2 " Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 01/23] emacs: Shorten long lines Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 02/23] emacs: Remove excess empty lines Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 03/23] emacs: Fix indentation Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 04/23] emacs: Closing parenthesis go on the same line Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 05/23] emacs: Only set one variable per setq form Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 06/23] emacs: Use cl-incf where appropriate Jonas Bernoulli
2020-08-06 11:37     ` David Bremner
2020-08-06 13:37       ` Jonas Bernoulli
2020-08-07 17:03         ` Tomi Ollila
2020-08-07 17:22           ` David Bremner
2020-08-06  7:18   ` [PATCH v2 07/23] emacs: Use 'and' instead of 'when' when the return value matters Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 08/23] emacs: Use 'unless' instead of 'when' and 'not' Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 09/23] emacs: Use 'when' instead of 'if' when there is no ELSE part Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 10/23] emacs: Use one or three lines for 'if' forms Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 11/23] emacs: Extend face to window edge again Jonas Bernoulli
2020-08-06  7:18   ` [PATCH v2 12/23] emacs: Fix some function declarations Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 13/23] emacs: No longer define notmuch-hello-mode-map as a function Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 14/23] emacs: notmuch-poll: Let the user know we are polling Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 15/23] emacs: Use makefile-gmake-mode in Makefile*s Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 16/23] emacs: Improve doc-strings Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 17/23] emacs: Autoload notmuch-jump-search only once Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 18/23] emacs: Autoload notmuch-jump using an autoload cookie Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 19/23] emacs: Various cosmetic changes Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 20/23] emacs: Increase consistency of library headers Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 21/23] Fix typos Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 22/23] .dir-locals.el: Set variables for correct "shell" mode Jonas Bernoulli
2020-08-06  7:19   ` [PATCH v2 23/23] test: Fix indentation Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 00/34] A great number of cosmetic changes Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 01/34] emacs: Shorten long lines Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 02/34] emacs: Remove excess empty lines Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 03/34] emacs: Fix indentation Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 04/34] emacs: Closing parenthesis go on the same line Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 05/34] emacs: Only set one variable per setq form Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 06/34] emacs: Use 'and' instead of 'when' when the return value matters Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 07/34] emacs: Use 'unless' instead of 'when' and 'not' Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 08/34] emacs: Use 'when' instead of 'if' when there is no ELSE part Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 09/34] emacs: Use one or three lines for 'if' forms Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 10/34] emacs: Extend face to window edge again Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 11/34] emacs: Fix some function declarations Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 12/34] emacs: No longer define notmuch-hello-mode-map as a function Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 13/34] emacs: notmuch-poll: Let the user know we are polling Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 14/34] emacs: Use makefile-gmake-mode in Makefile*s Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 15/34] emacs: Improve doc-strings Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 16/34] emacs: Autoload notmuch-jump-search only once Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 17/34] emacs: Autoload notmuch-jump using an autoload cookie Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 18/34] emacs: Various cosmetic changes Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 19/34] emacs: Increase consistency of library headers Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 20/34] Fix typos Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 21/34] .dir-locals.el: Set variables for correct "shell" mode Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 22/34] test: Fix indentation Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 23/34] .gitignore: Sort using sort-lines Jonas Bernoulli
2020-08-08 11:49   ` [PATCH v3 24/34] emacs: Provide 'rstdoc' feature at end of file Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 25/34] emacs: Add end-of-file line to libraries that lack it Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 26/34] NEWS: Add stub for 0.31 Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 27/34] NEWS: At least Emacs 25.1 is required now Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 28/34] emacs: Use cl-incf where appropriate Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 29/34] emacs: Remove notmuch-setq-local Jonas Bernoulli
2020-08-08 11:50   ` Jonas Bernoulli [this message]
2020-08-08 11:50   ` [PATCH v3 31/34] emacs: Drop old advices that were only need for Emacs 23 Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 32/34] emacs: Do not abuse advice to monkey patch while testing Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 33/34] emacs: Use new advice mechanism do advice mm-shr Jonas Bernoulli
2020-08-08 11:50   ` [PATCH v3 34/34] try-emacs-mua: Trim `require' advice for Emacs 25 Jonas Bernoulli
2020-08-09  7:15   ` [PATCH v3 00/34] A great number of cosmetic changes Tomi Ollila
2020-08-09  7:48     ` Jonas Bernoulli
2020-08-09 12:09   ` David Bremner
2020-08-09 12:41     ` Đoàn Trần Công Danh
2020-08-09 13:21       ` Jonas Bernoulli
2020-08-09 13:32     ` Jonas Bernoulli
2020-08-09 14:49     ` Tomi Ollila
2020-08-10  1:25       ` David Bremner

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

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200808115009.24071-31-jonas@bernoul.li \
    --to=jonas@bernoul.li \
    --cc=notmuch@notmuchmail.org \
    /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 public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).