+(defun debbugs-toggle-tag ()
+ "Toggle tag of the report in the current line."
+ (interactive)
+ (save-excursion
+ (beginning-of-line)
+ (let ((inhibit-read-only t)
+ (id (debbugs-current-id)))
+ (if (memq id debbugs-local-tags)
+ (progn
+ (setq debbugs-local-tags (delq id debbugs-local-tags))
+ (put-text-property (point) (+ (point) 5) 'face 'default))
+ (add-to-list 'debbugs-local-tags id)
+ (put-text-property
+ (+ (point) (- 5 (length (number-to-string id)))) (+ (point) 5)
+ 'face 'debbugs-tagged)))))
+
+(defun debbugs-suppress-done ()
+ "Suppress bugs marked as done."
+ (interactive)
+ (save-excursion
+ (unless (widget-get debbugs-current-widget :suppress-done)
+ (let ((inhibit-read-only t))
+ (widget-put debbugs-current-widget :suppress-done t)
+ (goto-char (point-min))
+ (while (and (not (eobp))
+ (not (get-text-property (point) 'debbugs-status)))
+ (forward-line 1))
+ (while (and (not (eobp))
+ (get-text-property (point) 'debbugs-status))
+ (if (equal (cdr (assq 'pending (debbugs-current-status))) "done")
+ (kill-region (point) (progn (forward-line 1) (point)))
+ (forward-line 1)))))))
+