X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-hello.el;h=490e992924a5a399ca4b897a0ed3ec6a85ed3b30;hb=8977b1a25991d91aa5d0466eedd348a2aba50691;hp=94cc4b53cf50251f2ebdfcfdb15f843cf57a3fd1;hpb=8e10f9179880c68dec551ca3054fb1eac34c9708;p=notmuch diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index 94cc4b53..490e9929 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -399,10 +399,12 @@ options will be handled as specified for (third elem) (cdr elem)))) (insert - (notmuch-hello-filtered-query count-query - (or (plist-get options :filter-count) - (plist-get options :filter))) - "\n"))) + (replace-regexp-in-string + "\n" " " + (notmuch-hello-filtered-query count-query + (or (plist-get options :filter-count) + (plist-get options :filter)))) + "\n"))) (unless (= (call-process-region (point-min) (point-max) notmuch-command t t nil "count" "--batch") 0) @@ -481,15 +483,8 @@ Such a list can be computed with `notmuch-hello-query-counts'." (defun notmuch-hello-update (&optional no-display) "Update the current notmuch view." ;; Lazy - rebuild everything. - (interactive) (notmuch-hello no-display)) -(defun notmuch-hello-poll-and-update () - "Invoke `notmuch-poll' to import mail, then refresh the current view." - (interactive) - (notmuch-poll) - (notmuch-hello-update)) - (defun notmuch-hello-window-configuration-change () "Hook function to update the hello buffer when it is switched to." (let ((hello-buf (get-buffer "*notmuch-hello*")) @@ -520,19 +515,30 @@ Such a list can be computed with `notmuch-hello-query-counts'." (remove-hook 'window-configuration-change-hook #'notmuch-hello-window-configuration-change)))) +;; the following variable is defined as being defconst in notmuch-version.el +(defvar notmuch-emacs-version) + +(defun notmuch-hello-versions () + "Display the notmuch version(s)" + (interactive) + (let ((notmuch-cli-version (notmuch-version))) + (message "notmuch version %s" + (if (string= notmuch-emacs-version notmuch-cli-version) + notmuch-cli-version + (concat notmuch-cli-version + " (emacs mua version " notmuch-emacs-version ")"))))) (defvar notmuch-hello-mode-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map widget-keymap) - (define-key map "v" (lambda () "Display the notmuch version" (interactive) - (message "notmuch version %s" (notmuch-version)))) - (define-key map "?" 'notmuch-help) - (define-key map "q" 'notmuch-kill-this-buffer) - (define-key map "=" 'notmuch-hello-update) - (define-key map "G" 'notmuch-hello-poll-and-update) + (let ((map (if (fboundp 'make-composed-keymap) + ;; Inherit both widget-keymap and notmuch-common-keymap + (make-composed-keymap widget-keymap) + ;; Before Emacs 24, keymaps didn't support multiple + ;; inheritance,, so just copy the widget keymap since + ;; it's unlikely to change. + (copy-keymap widget-keymap)))) + (set-keymap-parent map notmuch-common-keymap) + (define-key map "v" 'notmuch-hello-versions) (define-key map (kbd "") 'widget-backward) - (define-key map "m" 'notmuch-mua-new-mail) - (define-key map "s" 'notmuch-search) map) "Keymap for \"notmuch hello\" buffers.") (fset 'notmuch-hello-mode-map notmuch-hello-mode-map) @@ -545,6 +551,7 @@ Complete list of currently available key bindings: \\{notmuch-hello-mode-map}" (interactive) (kill-all-local-variables) + (setq notmuch-buffer-refresh-function #'notmuch-hello-update) (use-local-map notmuch-hello-mode-map) (setq major-mode 'notmuch-hello-mode mode-name "notmuch-hello") @@ -794,6 +801,7 @@ following: "Run notmuch and display saved searches, known tags, etc." (interactive) + (notmuch-assert-cli-sane) ;; This may cause a window configuration change, so if the ;; auto-refresh hook is already installed, avoid recursive refresh. (let ((notmuch-hello-auto-refresh nil))