branch: externals/debbugs
commit efe1ecf5733dcd9425b2baff94000898a0102a3f
Author: Lars Magne Ingebrigtsen <[email protected]>
Commit: Lars Magne Ingebrigtsen <[email protected]>
* debbugs-gnu.el (debbugs-select-report): Fetch all merged
reports.
---
ChangeLog | 5 +++++
debbugs-gnu.el | 36 ++++++++++++++++++++++--------------
2 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b205c1e..598a42b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-07-04 Lars Magne Ingebrigtsen <[email protected]>
+
+ * debbugs-gnu.el (debbugs-select-report): Fetch all merged
+ reports.
+
2011-07-03 Lars Magne Ingebrigtsen <[email protected]>
* debbugs-gnu.el (debbugs-rescan): New command and keystroke.
diff --git a/debbugs-gnu.el b/debbugs-gnu.el
index 1b361ae..8801fbb 100644
--- a/debbugs-gnu.el
+++ b/debbugs-gnu.el
@@ -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)))