X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;ds=sidebyside;f=emacs%2Fnotmuch-lib.el;h=337b20ace74f36b91b5ce76614f7fc3552a54ac5;hb=62822a4e2dee695c486383f0fe3d90edafae24db;hp=f05ded6f36df7941a9dea189382bdd250ff5e14d;hpb=0777828745740dd070192b305171574c460e42ca;p=notmuch
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index f05ded6f..337b20ac 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -15,7 +15,7 @@
;; General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
-;; along with Notmuch. If not, see .
+;; along with Notmuch. If not, see .
;;
;; Authors: Carl Worth
@@ -27,6 +27,7 @@
(require 'mm-view)
(require 'mm-decode)
(require 'cl)
+(require 'notmuch-compat)
(unless (require 'notmuch-version nil t)
(defconst notmuch-emacs-version "unknown"
@@ -57,6 +58,10 @@
(custom-add-to-group 'notmuch-send 'message 'custom-group)
+(defgroup notmuch-tag nil
+ "Tags and tagging in Notmuch."
+ :group 'notmuch)
+
(defgroup notmuch-crypto nil
"Processing and display of cryptographic MIME parts."
:group 'notmuch)
@@ -69,6 +74,10 @@
"Running external commands from within Notmuch."
:group 'notmuch)
+(defgroup notmuch-address nil
+ "Address completion."
+ :group 'notmuch)
+
(defgroup notmuch-faces nil
"Graphical attributes for displaying text"
:group 'notmuch)
@@ -147,6 +156,7 @@ For example, if you wanted to remove an \"inbox\" tag and add an
(define-key map "z" 'notmuch-tree)
(define-key map "m" 'notmuch-mua-new-mail)
(define-key map "=" 'notmuch-refresh-this-buffer)
+ (define-key map (kbd "M-=") 'notmuch-refresh-all-buffers)
(define-key map "G" 'notmuch-poll-and-refresh-this-buffer)
(define-key map "j" 'notmuch-jump-search)
map)
@@ -413,10 +423,8 @@ of its command symbol."
"Refresh the current buffer."
(interactive)
(when notmuch-buffer-refresh-function
- (if (commandp notmuch-buffer-refresh-function)
- ;; Pass prefix argument, etc.
- (call-interactively notmuch-buffer-refresh-function)
- (funcall notmuch-buffer-refresh-function))))
+ ;; Pass prefix argument, etc.
+ (call-interactively notmuch-buffer-refresh-function)))
(defun notmuch-poll-and-refresh-this-buffer ()
"Invoke `notmuch-poll' to import mail, then refresh the current buffer."
@@ -424,6 +432,21 @@ of its command symbol."
(notmuch-poll)
(notmuch-refresh-this-buffer))
+(defun notmuch-refresh-all-buffers ()
+ "Invoke `notmuch-refresh-this-buffer' on all notmuch major-mode buffers.
+
+The buffers are silently refreshed, i.e. they are not forced to
+be displayed."
+ (interactive)
+ (dolist (buffer (buffer-list))
+ (let ((buffer-mode (buffer-local-value 'major-mode buffer)))
+ (when (memq buffer-mode '(notmuch-show-mode
+ notmuch-tree-mode
+ notmuch-search-mode
+ notmuch-hello-mode))
+ (with-current-buffer buffer
+ (notmuch-refresh-this-buffer))))))
+
(defun notmuch-prettify-subject (subject)
;; This function is used by `notmuch-search-process-filter' which
;; requires that we not disrupt its' matching state.
@@ -790,9 +813,15 @@ You may need to restart Emacs or upgrade your notmuch package."))
(insert-file-contents err-file)
(unless (eobp)
(buffer-string)))))
+ (command-string
+ (mapconcat (lambda (arg)
+ (shell-quote-argument
+ (cond ((stringp arg) arg)
+ ((symbolp arg) (symbol-name arg))
+ (t "*UNKNOWN ARGUMENT*"))))
+ command " "))
(extra
- (concat
- "command: " (mapconcat #'shell-quote-argument command " ") "\n"
+ (concat "command: " command-string "\n"
(if (integerp exit-status)
(format "exit status: %s\n" exit-status)
(format "exit signal: %s\n" exit-status))