`notmuch-show-stash-gmane' stashes a URI for the current message at
Gmane, presuming that Gmane has a copy of the message with the same
Message-Id.

`notmuch-show-stash-gmane-and-go' both stashes the message and opens
the relevant page in the configured browser.

Add the relevant test for `notmuch-show-stash-gmane'.
---
 emacs/notmuch-show.el |   20 ++++++++++++++++++++
 test/emacs            |    4 +++-
 2 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index e6a5b31..c4d45e7 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -1016,6 +1016,8 @@ thread id.  If a prefix is given, crypto processing is 
toggled."
     (define-key map "s" 'notmuch-show-stash-subject)
     (define-key map "T" 'notmuch-show-stash-tags)
     (define-key map "t" 'notmuch-show-stash-to)
+    (define-key map "g" 'notmuch-show-stash-gmane)
+    (define-key map "G" 'notmuch-show-stash-gmane-and-go)
     map)
   "Submap for stash commands")
 (fset 'notmuch-show-stash-map notmuch-show-stash-map)
@@ -1603,6 +1605,24 @@ buffer."
   (interactive)
   (notmuch-common-do-stash (notmuch-show-get-to)))

+(defun notmuch-show-stash-gmane ()
+  "Copy a Gmane URI for the current message to the kill-ring.
+
+This presumes that the message is available at Gmane."
+  (interactive)
+  (notmuch-common-do-stash (concat "http://mid.gmane.org/";
+                                  (substring (notmuch-show-get-message-id) 4 
-1))))
+
+(defun notmuch-show-stash-gmane-and-go ()
+  "Copy a Gmane URI for the current message to the kill-ring and visit it.
+
+This presumes that the message is available at Gmane."
+  (interactive)
+  (let ((uri (concat "http://mid.gmane.org/";
+                    (substring (notmuch-show-get-message-id) 4 -1))))
+    (notmuch-common-do-stash uri)
+    (browse-url uri)))
+
 ;; Commands typically bound to buttons.

 (defun notmuch-show-part-button-default (&optional button)
diff --git a/test/emacs b/test/emacs
index f150d95..5f7467d 100755
--- a/test/emacs
+++ b/test/emacs
@@ -382,9 +382,10 @@ test_emacs '(notmuch-show "id:\"bought\"")
        (notmuch-show-stash-message-id-stripped)
        (notmuch-show-stash-tags)
        (notmuch-show-stash-filename)
+       (notmuch-show-stash-gmane)
        (switch-to-buffer
          (generate-new-buffer "*test-stashing*"))
-       (dotimes (i 9)
+       (dotimes (i 10)
          (yank)
          (insert "\n")
          (rotate-yank-pointer 1))
@@ -400,6 +401,7 @@ id:"bought"
 bought
 inbox,stashtest
 ${gen_msg_filename}
+http://mid.gmane.org/bought
 EOF
 test_expect_equal_file OUTPUT EXPECTED

-- 
1.7.8.3

Reply via email to