X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/a136ff87271a7a4bf363a4d8bf07429db9bacaf4..72d7c9c44f3e039d304583e0984d02664d42ccba:/packages/debbugs/debbugs-gnu.el diff --git a/packages/debbugs/debbugs-gnu.el b/packages/debbugs/debbugs-gnu.el index 392934800..77f9cc52c 100644 --- a/packages/debbugs/debbugs-gnu.el +++ b/packages/debbugs/debbugs-gnu.el @@ -276,7 +276,7 @@ If this is 'rmail, use Rmail instead." "Face for reports that are pending.") (defface debbugs-gnu-stale '((t (:foreground "orange"))) - "Face for reports that have not been touched for a week.") + "Face for reports that have not been touched for two weeks.") (defface debbugs-gnu-done '((t (:foreground "DarkGrey"))) "Face for closed bug reports.") @@ -578,7 +578,7 @@ marked as \"client-side filter\"." ;; Otherwise, we retrieve the bugs from the server. (t (apply 'debbugs-get-bugs args))))) -(defun debbugs-gnu-show-reports () +(defun debbugs-gnu-show-reports (&optional offline) "Show bug reports." (let ((inhibit-read-only t) (buffer-name "*Emacs Bugs*")) @@ -592,7 +592,13 @@ marked as \"client-side filter\"." ;; Print bug reports. (dolist (status (apply 'debbugs-get-status - (debbugs-gnu-get-bugs debbugs-gnu-local-query))) + (if offline + (let ((ids nil)) + (maphash (lambda (key elem) + (push (cdr (assq 'id elem)) ids)) + debbugs-cache-data) + (sort ids '<)) + (debbugs-gnu-get-bugs debbugs-gnu-local-query)))) (let* ((id (cdr (assq 'id status))) (words (mapconcat @@ -1224,6 +1230,9 @@ MERGED is the list of bugs merged with this one." (re-search-forward "#\\([0-9]+\\)" nil t))) (string-to-number (match-string 1))))) +(defvar debbugs-gnu-send-mail-function nil + "A function to send control messages from debbugs.") + (defun debbugs-gnu-send-control-message (message &optional reverse) "Send a control message for the current bug report. You can set the severity or add a tag, or close the report. If @@ -1243,6 +1252,7 @@ removed instead." "owner" "noowner" "invalid" "reassign" + "retitle" "patch" "wontfix" "moreinfo" "unreproducible" "fixed" "notabug" "pending" "help" "security" "confirmed" "usertag") @@ -1274,6 +1284,7 @@ removed instead." (insert "To: control@debbugs.gnu.org\n" "From: " (message-make-from) "\n" (format "Subject: control message for bug #%d\n" id) + mail-header-separator "\n" (cond ((member message '("unarchive" "unmerge" "reopen" "noowner")) @@ -1295,6 +1306,8 @@ removed instead." " "))) ((equal message "owner") (format "owner %d !\n" id)) + ((equal message "retitle") + (format "retitle %d %s\n" id (read-string "New title: "))) ((equal message "reassign") (format "reassign %d %s\n" id (read-string "Package(s): "))) ((equal message "close") @@ -1322,7 +1335,7 @@ removed instead." (format "tags %d%s %s\n" id (if reverse " -" "") message)))) - (funcall send-mail-function) + (funcall (or debbugs-gnu-send-mail-function send-mail-function)) (remhash id debbugs-cache-data) (message-goto-body) (message "Control message sent:\n%s" @@ -1458,7 +1471,7 @@ If given a prefix, patch in the branch directory instead." ;; buffer. Determine which. (gnus-with-article-buffer (dolist (handle (mapcar 'cdr (gnus-article-mime-handles))) - (when (string-match "diff\\|patch" (mm-handle-media-type handle)) + (when (string-match "diff\\|patch\\|plain" (mm-handle-media-type handle)) (push (cons (mm-handle-encoding handle) (mm-handle-buffer handle)) patch-buffers)))) @@ -1467,11 +1480,11 @@ If given a prefix, patch in the branch directory instead." (article-decode-charset) (push (cons nil gnus-article-buffer) patch-buffers)) (dolist (elem patch-buffers) - (with-temp-buffer + (with-current-buffer (generate-new-buffer "*debbugs input patch*") (insert-buffer-substring (cdr elem)) (cond ((eq (car elem) 'base64) (base64-decode-region (point-min) (point-max))) - ((eq (car elem) 'qp) + ((eq (car elem) 'quoted-printable) (quoted-printable-decode-region (point-min) (point-max)))) (debbugs-gnu-fix-patch dir) (call-process-region (point-min) (point-max) @@ -1583,7 +1596,7 @@ If given a prefix, patch in the branch directory instead." (cadr from)))))) (goto-char (point-max)) (end-of-line) - (insert " (tiny change")) + (insert " Copyright-paperwork-exempt: yes")) (goto-char point))))) (defvar debbugs-gnu-lisp-mode-map