]> git.notmuchmail.org Git - notmuch/blobdiff - contrib/notmuch-pick/notmuch-pick.el
contrib: pick: if no target specified go to first matching message
[notmuch] / contrib / notmuch-pick / notmuch-pick.el
index 33905d6135e84a7e3b316b61886b7a12935f2905..ef16ca75c6c1662115b6e207bb768cffdbc59f3d 100644 (file)
@@ -282,7 +282,7 @@ Does NOT change the database."
 (defun notmuch-pick-tag (&optional tag-changes)
   "Change tags for the current message"
   (interactive)
-  (setq tag-changes (funcall 'notmuch-tag (notmuch-pick-get-message-id) tag-changes))
+  (setq tag-changes (notmuch-tag (notmuch-pick-get-message-id) tag-changes))
   (notmuch-pick-tag-update-display tag-changes))
 
 (defun notmuch-pick-add-tag ()
@@ -376,15 +376,16 @@ Does NOT change the database."
            (split-window-vertically (/ (window-height) 4)))
       (with-selected-window notmuch-pick-message-window
        ;; Since we are only displaying one message do not indent.
-       (let ((notmuch-show-indent-messages-width 0))
-         (setq current-prefix-arg '(4))
+       (let ((notmuch-show-indent-messages-width 0)
+             (notmuch-show-only-matching-messages t))
          (setq buffer (notmuch-show id nil nil nil))))
       ;; We need the `let' as notmuch-pick-message-window is buffer local.
       (let ((window notmuch-pick-message-window))
        (with-current-buffer buffer
          (setq notmuch-pick-message-window window)
          (add-hook 'kill-buffer-hook 'notmuch-pick-message-window-kill-hook)))
-      (notmuch-pick-tag-update-display (list "-unread"))
+      (when notmuch-show-mark-read-tags
+       (notmuch-pick-tag-update-display notmuch-show-mark-read-tags))
       (setq notmuch-pick-message-buffer buffer))))
 
 (defun notmuch-pick-show-message-out ()
@@ -442,10 +443,9 @@ Does NOT change the database."
   "Archive the current message.
 
 Archive the current message by applying the tag changes in
-`notmuch-archive-tags' to it (remove the \"inbox\" tag by
-default). If a prefix argument is given, the message will be
-\"unarchived\", i.e. the tag changes in `notmuch-archive-tags'
-will be reversed."
+`notmuch-archive-tags' to it. If a prefix argument is given, the
+message will be \"unarchived\", i.e. the tag changes in
+`notmuch-archive-tags' will be reversed."
   (interactive "P")
   (when notmuch-archive-tags
     (apply 'notmuch-pick-tag
@@ -652,8 +652,10 @@ unchanged ADDRESS if parsing fails."
   (save-excursion
     (goto-char (point-max))
     (notmuch-pick-insert-msg msg))
-  (let ((msg-id (notmuch-id-to-query (plist-get msg :id))))
-    (when (string= msg-id notmuch-pick-target-msg)
+  (let ((msg-id (notmuch-id-to-query (plist-get msg :id)))
+       (target notmuch-pick-target-msg))
+    (when (or (and (not target) (plist-get msg :match))
+             (string= msg-id target))
       (setq notmuch-pick-target-msg "found")
       (goto-char (point-max))
       (forward-line -1))))