"If non-nil, don't show closed bugs."
:group 'debbugs-gnu
:type 'boolean
- :version "25.2")
+ :version "25.1")
(defconst debbugs-gnu-all-severities
(mapcar 'cadr (cdr (get 'debbugs-gnu-default-severities 'custom-type)))
be empty, in this case only the following attributes are used for
search."))
-;;;###autoload
-(defun debbugs-gnu-patches ()
- "List the bug reports that have been marked as containing a patch."
- (interactive)
- (debbugs-gnu nil '("emacs") nil nil "patch"))
-
;;;###autoload
(defun debbugs-gnu-search ()
"Search for Emacs bugs interactively.
(setq key (completing-read
"Enter attribute: "
(if phrase
- '("severity" "package" "tags"
- "author" "date" "subject")
- '("severity" "package" "archive" "src" "status" "tag"
- "owner" "submitter" "maint" "correspondent"
- ;; Client-side queries.
- "date" "log_modified" "last_modified"
- "found_date" "fixed_date" "unarchived"
- "subject" "done" "forwarded" "msgid" "summary"))
+ (append
+ '("severity" "package" "tags"
+ "author" "date" "subject")
+ ;; Client-side filters.
+ (mapcar
+ (lambda (key)
+ (propertize
+ key 'face 'debbugs-gnu-done
+ 'help-echo "Client-side filter"))
+ '("status")))
+ (append
+ '("severity" "package" "archive" "src" "status" "tag"
+ "owner" "submitter" "maint" "correspondent")
+ ;; Client-side filters.
+ (mapcar
+ (lambda (key)
+ (propertize
+ key 'face 'debbugs-gnu-done
+ 'help-echo "Client-side filter"))
+ '("date" "log_modified" "last_modified"
+ "found_date" "fixed_date" "unarchived"
+ "subject" "done" "forwarded" "msgid" "summary"))))
nil t))
(cond
;; Server-side queries.
'debbugs-gnu-current-query
(cons (intern (if (equal key "author") "@author" key)) val1))))
+ ;; Client-side filters.
((equal key "status")
(setq
val1
(completing-read
- "Enter status: " '("pending" "forwarded" "fixed" "done")))
+ (format "Enter status%s: "
+ (if (null phrase) "" " (client-side filter)"))
+ '("pending" "forwarded" "fixed" "done")))
(when (not (zerop (length val1)))
- (add-to-list
- 'debbugs-gnu-current-query (cons (intern key) val1))))
+ (if (null phrase)
+ (add-to-list
+ 'debbugs-gnu-current-query (cons (intern key) val1))
+ (add-to-list
+ 'debbugs-gnu-current-filter (cons 'pending val1)))))
- ;; Client-side filters.
((member key '("date" "log_modified" "last_modified"
"found_date" "fixed_date" "unarchived"))
(setq val1
'debbugs-gnu-current-query 'debbugs-gnu-current-filter)
(cons (intern key) (cons val1 val2)))))
+ ;; "subject", "done", "forwarded", "msgid", "summary".
((not (zerop (length key)))
(setq val1
(funcall
(if phrase 'read-string 'read-regexp)
- (format "Enter %s%s"
- key (if phrase ": " " (client-side filter)"))))
+ (format "Enter %s%s: "
+ key (if phrase "" " (client-side filter)"))))
(when (not (zerop (length val1)))
(add-to-list
(if phrase
;; Do the search.
(debbugs-gnu severities packages archivedp))))
+;;;###autoload
+(defun debbugs-gnu-patches ()
+ "List the bug reports that have been marked as containing a patch."
+ (interactive)
+ (debbugs-gnu nil debbugs-gnu-default-packages nil nil "patch"))
+
;;;###autoload
(defun debbugs-gnu (severities &optional packages archivedp suppress tags)
"List all outstanding bugs."
"Retrieve bug numbers from debbugs.gnu.org according search criteria."
(let* ((debbugs-port "gnu.org")
(bugs (assoc 'bugs query))
- (tags (assoc 'tag query))
+ (tags (and (member '(severity . "tagged") query) (assoc 'tag query)))
(local-tags (and (member '(severity . "tagged") query) (not tags)))
(phrase (assoc 'phrase query))
args)
(mapcar
(lambda (x) (cdr (assoc "id" x)))
(apply 'debbugs-search-est args)))
+ ;; User tags.
+ (tags
+ (setq args (mapcar (lambda (x) (if (eq x :package) :user x)) args))
+ (apply 'debbugs-get-usertag args))
;; Otherwise, we retrieve the bugs from the server.
(t (apply 'debbugs-get-bugs args)))))