-(defun notmuch-message-mark-replied ()
- ;; get the in-reply-to header and parse it for the message id.
- (let ((rep (mail-header-parse-addresses (message-field-value "In-Reply-To"))))
- (when (and notmuch-message-replied-tags rep)
- (notmuch-tag (notmuch-id-to-query (car (car rep)))
- (notmuch-tag-change-list notmuch-message-replied-tags)))))
+(defvar-local notmuch-message-queued-tag-changes nil
+ "List of tag changes to be applied when sending a message.
+
+A list of queries and tag changes that are to be applied to them
+when the message that was composed in the current buffer is being
+send. Each item in this list is a list of strings, where the
+first is a notmuch query and the rest are the tag changes to be
+applied to the matching messages.")
+
+(defun notmuch-message-apply-queued-tag-changes ()
+ ;; Apply the tag changes queued in the buffer-local variable
+ ;; notmuch-message-queued-tag-changes.
+ (pcase-dolist (`(,query . ,tags) notmuch-message-queued-tag-changes)
+ (notmuch-tag query tags)))