;;; debbugs-gnu.el --- interface for the GNU bug tracker
-;; Copyright (C) 2011-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Michael Albinus <michael.albinus@gmx.org>
;; Keywords: comm, hypermedia, maint
;; Package: debbugs
-;; Version: 0.4
+;; Version: 0.6
;; This file is not part of GNU Emacs.
;; function will ask for user tags (a comma separated list), and shows
;; just the bugs which are tagged with them. In general, user tags
;; shall be strings denoting to subprojects of the package, like
-;; "cedet" or "tramp" of the package "emacs. If no user tag is given,
-;; locally tagged bugs are shown.
+;; "cedet" or "tramp" of the package "emacs". If no user tag is
+;; given, locally tagged bugs are shown.
;; If a prefix is given to the command, more search parameters are
;; asked for, like packages (also a comma separated list, "emacs" is
;; <http://debbugs.gnu.org/Packages.html>
;; <http://debbugs.gnu.org/cgi/pkgindex.cgi>
:group 'debbugs-gnu
- :type '(set (const "automake")
+ :type '(set (const "auctex")
+ (const "automake")
(const "cc-mode")
(const "coreutils")
+ (const "cppi")
(const "debbugs.gnu.org")
+ (const "diffutils")
(const "emacs")
(const "emacs-xwidgets")
(const "fm")
(const "gnus")
+ (const "grep")
(const "guile")
+ (const "guix")
+ (const "gzip")
+ (const "idutils")
(const "libtool")
- (const "ns")
+ (const "mh-e")
(const "org-mode")
- (const "w32")
+ (const "parted")
+ (const "vc-dwim")
(const "woodchuck"))
- :version "24.3")
+ :version "24.4")
(defconst debbugs-gnu-all-packages
(mapcar 'cadr (cdr (get 'debbugs-gnu-default-packages 'custom-type)))
;;;###autoload
(defun debbugs-gnu (severities &optional packages archivedp suppress tags)
- "List all outstanding Emacs bugs."
+ "List all outstanding bugs."
(interactive
(let (severities archivedp)
(list
(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))))
(forward-line 1)))
(defun debbugs-gnu-toggle-tag ()
- "Toggle tag of the report in the current line."
+ "Toggle the local tag of the report in the current line.
+If a report is tagged locally, it is presumed to be of little
+interest to you."
(interactive)
(save-excursion
(beginning-of-line)
(add-to-list 'debbugs-gnu-local-tags id)
(put-text-property
(+ (point) (- 5 (length (number-to-string id)))) (+ (point) 5)
- 'face 'debbugs-gnu-tagged))))
+ 'face 'debbugs-gnu-tagged)
+ (debbugs-gnu--update-tag-face id))))
(debbugs-gnu-dump-persistency-file))
+(defun debbugs-gnu--update-tag-face (id)
+ (dolist (entry tabulated-list-entries)
+ (when (equal (cdr (assq 'id (car entry))) id)
+ (aset (cadr entry) 0
+ (propertize
+ (format "%5d" id)
+ 'face
+ ;; Mark tagged bugs.
+ (if (memq id debbugs-gnu-local-tags)
+ 'debbugs-gnu-tagged
+ 'default))))))
+
(defun debbugs-gnu-toggle-suppress ()
"Suppress bugs marked in `debbugs-gnu-suppress-bugs'."
(interactive)