- (interactive
- (let (severities archivedp)
- (list
- (setq severities
- (completing-read-multiple
- "Severities: " debbugs-gnu-all-severities nil t
- (mapconcat 'identity debbugs-gnu-default-severities ",")))
- ;; The next parameters are asked only when there is a prefix.
- (if current-prefix-arg
- (completing-read-multiple
- "Packages: " debbugs-gnu-all-packages nil t
- (mapconcat 'identity debbugs-gnu-default-packages ","))
- debbugs-gnu-default-packages)
- (when current-prefix-arg
- (setq archivedp (y-or-n-p "Show archived bugs?")))
- (when (and current-prefix-arg (not archivedp))
- (y-or-n-p "Suppress unwanted bugs?"))
- ;; This one must be asked for severity "tagged".
- (when (member "tagged" severities)
- (split-string (read-string "User tag(s): ") "," t)))))
-
- ;; Initialize variables.
- (when (and (file-exists-p debbugs-gnu-persistency-file)
- (not debbugs-gnu-local-tags))
- (with-temp-buffer
- (insert-file-contents debbugs-gnu-persistency-file)
- (eval (read (current-buffer)))))
-
- ;; Add queries.
- (dolist (severity (if (consp severities) severities (list severities)))
- (when (not (zerop (length severity)))
- (add-to-list 'debbugs-gnu-current-query (cons 'severity severity))))
- (dolist (package (if (consp packages) packages (list packages)))
- (when (not (zerop (length package)))
- (add-to-list 'debbugs-gnu-current-query (cons 'package package))))
- (when archivedp
- (add-to-list 'debbugs-gnu-current-query '(archive . "1")))
- (when suppress
- (add-to-list 'debbugs-gnu-current-query '(status . "open"))
- (add-to-list 'debbugs-gnu-current-query '(status . "forwarded")))
- (dolist (tag (if (consp tags) tags (list tags)))
- (when (not (zerop (length tag)))
- (add-to-list 'debbugs-gnu-current-query (cons 'tag tag))))
-
- (unwind-protect
- (with-current-buffer (get-buffer-create (debbugs-org-show-buffer-name))
- (erase-buffer)
-
- (let ((hits debbugs-gnu-default-hits-per-page))
- (setq debbugs-org-ids
- (debbugs-gnu-get-bugs debbugs-gnu-current-query))
-
- (when (> (length debbugs-org-ids) hits)
- (let ((cursor-in-echo-area nil))
- (setq hits
- (string-to-number
- (read-string
- (format
- "How many reports (available %d, default %d): "
- (length debbugs-org-ids) hits)
- nil
- nil
- (number-to-string hits))))))
-
- (debbugs-org-show-next-reports hits)))
-
- ;; Reset query.
- (setq debbugs-gnu-current-query nil)))
-
-(defun debbugs-org-show-reports (bug-numbers)
- "Show bug reports as given in BUG-NUMBERS."
- (pop-to-buffer (get-buffer-create (debbugs-org-show-buffer-name)))
- ;; Local variable `debbugs-org-ids' must survive.
- (let ((doi debbugs-org-ids))
+ (interactive)
+ (cl-letf (((symbol-function 'debbugs-gnu-show-reports)
+ #'debbugs-org-show-reports))
+ (call-interactively 'debbugs-gnu)))
+
+(defun debbugs-org-show-reports ()
+ "Show bug reports as retrieved via `debbugs-gnu-current-query'."
+ (let ((inhibit-read-only t)
+ (org-startup-folded t))
+ (when (get-buffer debbugs-org-buffer-name)
+ (kill-buffer debbugs-org-buffer-name))
+ (switch-to-buffer (get-buffer-create debbugs-org-buffer-name))