emacs: make notmuch-search-tag tag the region when called non-interactively.
authorMark Walters <markwalters1009@gmail.com>
Sun, 16 Oct 2016 16:12:23 +0000 (17:12 +0100)
committerDavid Bremner <david@tethera.net>
Mon, 31 Oct 2016 11:10:27 +0000 (08:10 -0300)
The normal tag commands in search mode tag the all threads meeting the
region when called interactively. This makes them do the same when
called non-interactively. This is a change in the api.

emacs/notmuch.el

index 2fc72b7eade9a19560389fbcb5e8f6dbba0b76cb..ef4bb2b1d16a77edb851714d0dacc3f856b20bdf 100644 (file)
@@ -562,12 +562,15 @@ Returns (TAG-CHANGES REGION-BEGIN REGION-END)."
 See `notmuch-tag' for information on the format of TAG-CHANGES.
 When called interactively, this uses the region if the region is
 active.  When called directly, BEG and END provide the region.
-If these are nil or not provided, this applies to the thread at
-point.
+If these are nil or not provided, then, if the region is active
+this applied to all threads meeting the region, and if the region
+is inactive this applies to the thread at point.
 
 If ONLY-MATCHED is non-nil, only tag matched messages."
   (interactive (notmuch-search-interactive-tag-changes))
-  (unless (and beg end) (setq beg (point) end (point)))
+  (unless (and beg end)
+    (setq beg (car (notmuch-search-interactive-region))
+         end (cadr (notmuch-search-interactive-region))))
   (let ((search-string (notmuch-search-find-stable-query-region
                        beg end only-matched)))
     (notmuch-tag search-string tag-changes)