]> code.delx.au - gnu-emacs-elpa/commitdiff
* debbugs-gnu.el (debbugs-select-report): Fetch all merged
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 4 Jul 2011 14:24:32 +0000 (16:24 +0200)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 4 Jul 2011 14:24:32 +0000 (16:24 +0200)
reports.

packages/debbugs/ChangeLog
packages/debbugs/debbugs-gnu.el

index b205c1ee140fb1a15728e822bc460866039186dc..598a42b68d917009a8c3c59f318ea87194026164 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * debbugs-gnu.el (debbugs-select-report): Fetch all merged
+       reports.
+
 2011-07-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * debbugs-gnu.el (debbugs-rescan): New command and keystroke.
index 1b361aeccae8307225a5af34f7fda1dd4b109877..8801fbb653e6d6bba618a8f6bf9414c9ef4b920c 100644 (file)
@@ -317,31 +317,39 @@ The following commands are available:
 (defvar debbugs-bug-number nil)
 
 (defun debbugs-current-id (&optional noerror)
-  (or (cdr (assq 'id (get-text-property (line-beginning-position)
-                                       'debbugs-status)))
+  (or (cdr (assq 'id (debbugs-current-status)))
       (and (not noerror)
           (error "No bug on the current line"))))
 
-(defun debbugs-display-status (id)
+(defun debbugs-current-status ()
+  (get-text-property (line-beginning-position)
+                    'debbugs-status))
+
+(defun debbugs-display-status (status)
   "Display the status of the report on the current line."
-  (interactive (list (debbugs-current-id)))
-  (let ((status (get-text-property (line-beginning-position)
-                                  'debbugs-status)))
+  (interactive (list (debbugs-current-status)))
+  (let ((status (debbugs-current-status)))
     (pop-to-buffer "*Bug Status*")
     (erase-buffer)
     (pp status (current-buffer))
     (goto-char (point-min))))
 
-(defun debbugs-select-report (id)
+(defun debbugs-select-report ()
   "Select the report on the current line."
-  (interactive (list (debbugs-current-id)))
+  (interactive)
   ;; We open the report messages.
-  (gnus-read-ephemeral-emacs-bug-group
-   id (cons (current-buffer)
-           (current-window-configuration)))
-  (with-current-buffer (window-buffer (selected-window))
-    (debbugs-summary-mode 1)
-    (set (make-local-variable 'debbugs-bug-number) id)))
+  (let* ((status (debbugs-current-status))
+        (id (cdr (assq 'id status)))
+        (merged (cdr (assq 'mergedwith status))))
+    (gnus-read-ephemeral-emacs-bug-group
+     (cons id (if (listp merged)
+                 merged
+               (list merged)))
+     (cons (current-buffer)
+          (current-window-configuration)))
+    (with-current-buffer (window-buffer (selected-window))
+      (debbugs-summary-mode 1)
+      (set (make-local-variable 'debbugs-bug-number) id))))
 
 (defvar debbugs-summary-mode-map
   (let ((map (make-sparse-keymap)))