branch: master commit 023bc22b0b6375d6a3135d1b3a10374a2e5d7a32 Author: Michael Albinus <michael.albi...@gmx.de> Commit: Michael Albinus <michael.albi...@gmx.de>
Implement debbugs-gnu-select-current-bugs-with-rmail * packages/debbugs/debbugs.el: * packages/debbugs/debbugs-gnu.el: * packages/debbugs/debbugs-org.el: Apply `string-join' where possible. * packages/debbugs/debbugs-gnu.el (debbugs-gnu-select-current-bugs-with-rmail): New defun. (debbugs-gnu-select-current-bugs): Call it. (debbugs-gnu-select-current-bugs-with-gnus) (debbugs-gnu-read-emacs-bug-with-rmail) (debbugs-gnu-read-emacs-bug-with-gnus): Rearrange order. --- packages/debbugs/debbugs-gnu.el | 192 +++++++++++++++++----------- packages/debbugs/debbugs-org.el | 2 +- packages/debbugs/debbugs-ug.info | 269 +++++++++++++++++++-------------------- packages/debbugs/debbugs.el | 12 +- 4 files changed, 255 insertions(+), 220 deletions(-) diff --git a/packages/debbugs/debbugs-gnu.el b/packages/debbugs/debbugs-gnu.el index 25558d1..bbf2254 100644 --- a/packages/debbugs/debbugs-gnu.el +++ b/packages/debbugs/debbugs-gnu.el @@ -107,6 +107,7 @@ ;; "/": Display only bugs matching a string ;; "R": Display only bugs blocking the current release ;; "w": Display all the currently selected bug reports +;; "A": Show all messages from the currently shown bugs ;; When you visit the related bug messages in Gnus or Rmail, you could ;; also send or make control messages by keystroke "C" or "E" in the @@ -490,14 +491,14 @@ depend on PHRASE being a string, or nil. See Info node severities (completing-read-multiple "Enter severities: " debbugs-gnu-all-severities nil t - (mapconcat #'identity debbugs-gnu-default-severities ",")))) + (string-join debbugs-gnu-default-severities ",")))) ((equal key "package") (setq packages (completing-read-multiple "Enter packages: " debbugs-gnu-all-packages nil t - (mapconcat #'identity debbugs-gnu-default-packages ",")))) + (string-join debbugs-gnu-default-packages ",")))) ((equal key "archive") ;; We simplify, by assuming just archived bugs are requested. @@ -633,12 +634,12 @@ Shall be bound in `debbugs-org-*' functions.") (setq severities (completing-read-multiple "Severities: " debbugs-gnu-all-severities nil t - (mapconcat #'identity debbugs-gnu-default-severities ","))) + (string-join 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 ",")) + (string-join debbugs-gnu-default-packages ",")) debbugs-gnu-default-packages) (when current-prefix-arg (setq archivedp (y-or-n-p "Show archived bugs?"))) @@ -812,8 +813,8 @@ are taken from the cache instead." (setq words (append (mapcar #'number-to-string merged) words))) ;; `words' could contain the same word twice, for example ;; "fixed" from `keywords' and `pending'. - (setq words (mapconcat - #'identity (cl-delete-duplicates words :test #'equal) ",")) + (setq words + (string-join (cl-delete-duplicates words :test #'equal) ",")) (when (or (not merged) (not (let ((found nil)) (dolist (id (if (listp merged) @@ -1376,39 +1377,6 @@ interest to you." (set-buffer-modified-p nil) (special-mode)) -(defun debbugs-gnu-read-emacs-bug-with-rmail (id status merged) - "Read email exchange for debbugs bug ID. -STATUS is the bug's status list. -MERGED is the list of bugs merged with this one." - (let* ((mbox-dir (make-temp-file "debbugs" t)) - (mbox-fname (format "%s/bug_%d.mbox" mbox-dir id))) - (debbugs-get-mbox id 'mboxmaint mbox-fname) - (rmail mbox-fname) - ;; Download messages of all the merged bug reports and append them - ;; to the mailbox of the requested bug. - (when merged - (dolist (bugno merged) - (let ((fn (make-temp-file "url"))) - (debbugs-get-mbox bugno 'mboxmaint fn) - (rmail-get-new-mail fn) - (delete-file fn) - ;; Remove the 'unseen' attribute from all the messages we've - ;; just read, so that all of them appear in the summary with - ;; the same face. - (while (< rmail-current-message rmail-total-messages) - (rmail-show-message (1+ rmail-current-message)))))) - (set (make-local-variable 'debbugs-gnu-bug-number) id) - (set (make-local-variable 'debbugs-gnu-subject) - (format "Re: bug#%d: %s" id (alist-get 'subject status))) - (rmail-summary) - (define-key rmail-summary-mode-map "C" #'debbugs-gnu-send-control-message) - (define-key rmail-summary-mode-map "E" #'debbugs-gnu-make-control-message) - (set-window-text-height nil 10) - (other-window 1) - (define-key rmail-mode-map "C" #'debbugs-gnu-send-control-message) - (define-key rmail-mode-map "E" #'debbugs-gnu-make-control-message) - (rmail-show-message 1))) - (defconst debbugs-gnu-select-bugs-limit-max 50 "Absolute maximum for `debbugs-gnu-select-bugs-limit'.") @@ -1434,51 +1402,73 @@ avoid overloading the server." "Retrieve the mailboxes for all currently shown bugs. Limited by `debbugs-gnu-select-bugs-limit'." (interactive) - (unless (eq debbugs-gnu-mail-backend 'gnus) - (error "This function only works with Gnus.")) - (debbugs-gnu-select-current-bugs-with-gnus)) - -(defun debbugs-gnu-select-current-bugs-with-gnus () - "Create a Gnus group of the messages from the currently shown bugs." (save-excursion - (require 'gnus-group) - (let ((mbox-url - (replace-regexp-in-string - ";mboxstat=yes" "" - (alist-get 'emacs gnus-bug-group-download-format-alist) - nil t)) - ids) + (let (ids) (goto-char (point-min)) (dotimes (_ debbugs-gnu-select-bugs-limit) - (push (debbugs-gnu-current-id t) ids) - (push (alist-get 'mergedwith (debbugs-gnu-current-status)) ids) - (forward-line 1)) + (push (debbugs-gnu-current-id t) ids) + (setq ids + (append (alist-get 'mergedwith (debbugs-gnu-current-status)) ids)) + (forward-line 1)) (setq ids (delq nil (nreverse ids))) - (gnus-read-ephemeral-bug-group ids mbox-url) - (debbugs-gnu-summary-mode 1)))) + (cond + ((not ids) + (message "No bug reports in the current buffer")) + ((eq debbugs-gnu-mail-backend 'rmail) + (debbugs-gnu-select-current-bugs-with-rmail ids)) + ((eq debbugs-gnu-mail-backend 'gnus) + (debbugs-gnu-select-current-bugs-with-gnus ids)) + (t (error "No valid mail backend specified")))))) + +(defun debbugs-gnu-select-current-bugs-with-rmail (ids) + "Read email exchange for debbugs IDS. +IDS is the list of bug IDs." + (let* ((mbox-dir (make-temp-file "debbugs" t)) + (mbox-fname + (format + "%s/bug_%s.mbox" mbox-dir (mapconcat #'number-to-string ids ",")))) + (debbugs-get-mbox (car ids) 'mboxmaint mbox-fname) + (rmail mbox-fname) + (dolist (bugno (cdr ids)) + (let ((fn (make-temp-file "url"))) + (debbugs-get-mbox bugno 'mboxmaint fn) + (rmail-get-new-mail fn) + (delete-file fn) + ;; Remove the 'unseen' attribute from all the messages we've + ;; just read, so that all of them appear in the summary with + ;; the same face. + (while (< rmail-current-message rmail-total-messages) + (rmail-show-message (1+ rmail-current-message))))) + ;; (set (make-local-variable 'debbugs-gnu-bug-number) id) + ;; (set (make-local-variable 'debbugs-gnu-subject) + ;; (format "Re: bug#%d: %s" id (alist-get 'subject status))) + (rmail-summary) + (define-key rmail-summary-mode-map "C" #'debbugs-gnu-send-control-message) + (define-key rmail-summary-mode-map "E" #'debbugs-gnu-make-control-message) + (set-window-text-height nil 10) + (other-window 1) + (define-key rmail-mode-map "C" #'debbugs-gnu-send-control-message) + (define-key rmail-mode-map "E" #'debbugs-gnu-make-control-message) + (rmail-show-message 1))) (defcustom debbugs-gnu-lars-workflow nil "If non-nil, set some Gnus vars as preferred by Lars." :type 'boolean :version "27.1") -(defun debbugs-gnu-read-emacs-bug-with-gnus (id status merged) - "Read email exchange for debbugs bug ID. -STATUS is the bug's status list. -MERGED is the list of bugs merged with this one." - (require 'gnus-dup) +(defun debbugs-gnu-select-current-bugs-with-gnus (ids) + "Create a Gnus group of the messages from the currently shown bugs. +IDS is the list of bug IDs." + (require 'gnus-group) (when debbugs-gnu-lars-workflow (setq gnus-suppress-duplicates t gnus-save-duplicate-list t)) - ;; Use Gnus. - (gnus-read-ephemeral-emacs-bug-group - (cons id (if (listp merged) merged (list merged))) - (cons (current-buffer) - (current-window-configuration))) - (with-current-buffer (window-buffer (selected-window)) - (set (make-local-variable 'debbugs-gnu-bug-number) id) - (set (make-local-variable 'debbugs-gnu-subject) - (format "Re: bug#%d: %s" id (alist-get 'subject status))) + (let ((mbox-url + (replace-regexp-in-string + ";mboxstat=yes" "" + (alist-get 'emacs gnus-bug-group-download-format-alist) + nil t))) + (gnus-read-ephemeral-bug-group ids mbox-url) (debbugs-gnu-summary-mode 1))) (defun debbugs-gnu-select-report () @@ -1499,6 +1489,58 @@ MERGED is the list of bugs merged with this one." (debbugs-gnu-read-emacs-bug-with-gnus id status merged)) (t (error "No valid mail backend specified"))))) +(defun debbugs-gnu-read-emacs-bug-with-rmail (id status merged) + "Read email exchange for debbugs bug ID. +STATUS is the bug's status list. +MERGED is the list of bugs merged with this one." + (let* ((mbox-dir (make-temp-file "debbugs" t)) + (mbox-fname (format "%s/bug_%d.mbox" mbox-dir id))) + (debbugs-get-mbox id 'mboxmaint mbox-fname) + (rmail mbox-fname) + ;; Download messages of all the merged bug reports and append them + ;; to the mailbox of the requested bug. + (when merged + (dolist (bugno merged) + (let ((fn (make-temp-file "url"))) + (debbugs-get-mbox bugno 'mboxmaint fn) + (rmail-get-new-mail fn) + (delete-file fn) + ;; Remove the 'unseen' attribute from all the messages we've + ;; just read, so that all of them appear in the summary with + ;; the same face. + (while (< rmail-current-message rmail-total-messages) + (rmail-show-message (1+ rmail-current-message)))))) + (set (make-local-variable 'debbugs-gnu-bug-number) id) + (set (make-local-variable 'debbugs-gnu-subject) + (format "Re: bug#%d: %s" id (alist-get 'subject status))) + (rmail-summary) + (define-key rmail-summary-mode-map "C" #'debbugs-gnu-send-control-message) + (define-key rmail-summary-mode-map "E" #'debbugs-gnu-make-control-message) + (set-window-text-height nil 10) + (other-window 1) + (define-key rmail-mode-map "C" #'debbugs-gnu-send-control-message) + (define-key rmail-mode-map "E" #'debbugs-gnu-make-control-message) + (rmail-show-message 1))) + +(defun debbugs-gnu-read-emacs-bug-with-gnus (id status merged) + "Read email exchange for debbugs bug ID. +STATUS is the bug's status list. +MERGED is the list of bugs merged with this one." + (require 'gnus-dup) + (when debbugs-gnu-lars-workflow + (setq gnus-suppress-duplicates t + gnus-save-duplicate-list t)) + ;; Use Gnus. + (gnus-read-ephemeral-emacs-bug-group + (cons id (if (listp merged) merged (list merged))) + (cons (current-buffer) + (current-window-configuration))) + (with-current-buffer (window-buffer (selected-window)) + (set (make-local-variable 'debbugs-gnu-bug-number) id) + (set (make-local-variable 'debbugs-gnu-subject) + (format "Re: bug#%d: %s" id (alist-get 'subject status))) + (debbugs-gnu-summary-mode 1))) + (defvar debbugs-gnu-summary-mode-map (let ((map (make-sparse-keymap))) (define-key map "C" #'debbugs-gnu-send-control-message) @@ -1778,8 +1820,7 @@ removed instead." ((member message '("merge" "forcemerge")) (format "%s %d %s\n" message bugid - (mapconcat - #'identity + (string-join (debbugs-gnu-expand-bug-number-list (completing-read-multiple (format "%s with bug(s) #: " (capitalize message)) @@ -1788,8 +1829,7 @@ removed instead." ((member message '("block" "unblock")) (format "%s %d by %s\n" message bugid - (mapconcat - #'identity + (string-join (debbugs-gnu-expand-bug-number-list (completing-read-multiple (format "%s with bug(s) #: " (capitalize message)) @@ -2144,7 +2184,7 @@ successfully sent." (completing-read-multiple "Package name(s) or email address: " (append debbugs-gnu-all-packages (list user-mail-address)) nil nil - (mapconcat #'identity debbugs-gnu-default-packages ",")) + (string-join debbugs-gnu-default-packages ",")) debbugs-gnu-default-packages)) (unwind-protect diff --git a/packages/debbugs/debbugs-org.el b/packages/debbugs/debbugs-org.el index 99defe1..c4c081c 100644 --- a/packages/debbugs/debbugs-org.el +++ b/packages/debbugs/debbugs-org.el @@ -237,7 +237,7 @@ marked as \"client-side filter\"." "* %s [#%s] %s %s\n" (if done "DONE" "TODO") priority subject - (if tags (mapconcat #'identity (append '("") tags '("")) ":") ""))) + (if tags (string-join (append '("") tags '("")) ":") ""))) ;; Submitted. (when date diff --git a/packages/debbugs/debbugs-ug.info b/packages/debbugs/debbugs-ug.info index 2629d91..c590ecc 100644 --- a/packages/debbugs/debbugs-ug.info +++ b/packages/debbugs/debbugs-ug.info @@ -96,37 +96,36 @@ predefined filter. the constant 'debbugs-gnu-all-severities'). If the list is empty, there is no filtering with respect to severities. The keyword '"tagged"', which is also possible, is not a severity in - the GNU Debbugs server but allows to restrict the result to bugs + the GNU Debbugs server but allows restricting the result to bugs with a given user tag. - PACKAGES, also a list of strings, point to the defined software - packages on the GNU Debbugs server which shall be taken into + PACKAGES, also a list of strings, points to the defined software + packages on the GNU Debbugs server which should be taken into account. The existing package names are compiled into the constant 'debbugs-gnu-all-packages'. - ARCHIVEDP, if non-'nil', extends the result also on archived bugs - on the GNU Debbugs server. + ARCHIVEDP, if non-'nil', extends the retrieval to also apply to + archived bugs on the GNU Debbugs server. - SUPPRESS shall also distinct between 'nil' and non-'nil'. When - non-'nil', closed bugs are suppressed from being retrieved from - the Debbugs server. Which bugs are regarded as suppressed is - configured in the user option 'debbugs-gnu-suppress-bugs'. Per - default, bugs marked as '"done"' are suppressed from being - retrieved. + When SUPPRESS is non-'nil', closed bugs are suppressed from being + retrieved from the Debbugs server. Which bugs are regarded as + suppressed is configured via the user option + 'debbugs-gnu-suppress-bugs'. By default bugs marked as '"done"' + are suppressed from being retrieved. When SEVERITIES contains the severity '"tagged"', TAGS is - consulted in order to restrict the result on bugs which are + consulted in order to restrict the result to bugs which are tagged with one of the strings of the list TAGS. This list can - also be empty; in this case locally tagged bugs are included into + also be empty; in this case locally tagged bugs are included in the results. - Called interactively, the commands require just the SEVERITIES - and the TAGS (if SEVERITIES includes '"tagged"'). In order to - provide the other arguments interactively, the commands must be - called with a prefix, like 'C-u M-x debbugs-gnu'. In the - minibuffer, lists must be entered comma-separated. + When called interactively, the commands require just the + SEVERITIES and the TAGS (if SEVERITIES includes '"tagged"'). In + order to provide the other arguments interactively, the commands + must be called with a prefix, like 'C-u M-x debbugs-gnu'. In the + minibuffer, lists must be entered separated by commas. - Default values for interactive use could be configured in the + Default values for interactive use can be configured with the user options 'debbugs-gnu-default-severities' and 'debbugs-gnu-default-packages'. @@ -137,15 +136,15 @@ predefined filter. The commands 'debbugs-gnu-bugs' and 'debbugs-org-bugs' show bugs specified by their bug number. Interactively, the bug numbers - must be entered as comma-separated list of bugs or bug ranges. + must be entered as a comma-separated list of bugs or bug ranges. - A bug range has either the form '12345-21345' or '-123'. In the - former case, all bugs from 12345 until 21345 are presented, and - in the latter case the last 123 bugs are shown, counting from the + A bug range has the form '12345-21345' or '-123'. In the former + case, all bugs from 12345 until 21345 are presented, and in the + latter case the last 123 bugs are shown, counting from the highest bug number in the repository. - A default value for interactive use could be configured in the - user option 'debbugs-gnu-default-bug-number-list'. + A default value for interactive use can be configured in the user + option 'debbugs-gnu-default-bug-number-list'. *note Presenting Bugs:: for the presentation of the results. @@ -155,7 +154,7 @@ predefined filter. The commands 'debbugs-gnu-patches' and 'debbugs-org-patches' show all unarchived bugs of the packages declared in 'debbugs-gnu-default-packages', and tagged with '"patch"'. This - is useful for bug triages. + is useful for bug triaging. *note Presenting Bugs:: for the presentation of the results. @@ -163,15 +162,15 @@ predefined filter. -- Command: debbugs-org-tagged The commands 'debbugs-gnu-tagged' and 'debbugs-org-tagged' show - all bugs tagged locally. This list is useful for keeping bugs - you are currently working on. + all bugs tagged locally. This list is useful for keeping track + of bugs you are currently working on. *note Presenting Bugs:: for the presentation of the results. -- User Option: debbugs-show-progress - If this user option is non-'nil', there is a progress report when - retrieving bugs. + If this user option is non-'nil', a progress report is shown when + retrieving bugs, defaults to t. File: debbugs-ug.info, Node: Searching Bugs, Next: Presenting Bugs, Prev: Retrieving Bugs, Up: Top @@ -179,19 +178,19 @@ File: debbugs-ug.info, Node: Searching Bugs, Next: Presenting Bugs, Prev: Ret 2 Searching in the Debbugs Database *********************************** -The GNU Debbugs server allows text search in the database in the -messages submitted to the bugs. It uses a HyperEstraier based search -engine +The GNU Debbugs server allows searching the text of the messages +submitted to the bugs in the database. It uses a HyperEstraier based +search engine (https://fallabs.com/hyperestraier/uguide-en.html#searchcond)(1). The search engine uses an index over the bug database. This index -is refreshed once a day only; search hits do not include recent -changes of the same day. +is refreshed daily; search hits may not include recent changes made +the same day. -- Command: debbugs-gnu-search -- Command: debbugs-org-search - These both commands are completely interactive. They ask for a + Both these commands are completely interactive. They ask for a '"search phrase"' for the text search. It is just a string which contains the words to be searched for followed by each other. If there are operators like "AND", "ANDNOT" and "OR" between the @@ -209,13 +208,13 @@ changes of the same day. above. While the words to be searched for are case insensitive, the - operators must be specified case sensitive. + operators must be specified in upper case. While the search for the phrase is performed only in the bodies of the messages belonging to a bug report, it is also possible to - discriminate the search to further bug attributes. The commands - ask for such key-value pairs, until an empty key is returned. - Possible attributes are + restrict the search using further bug attributes. The commands + ask for such attribute-value pairs, until an empty attribute is + returned. Possible attributes are 'severity' A comma-separated list of bug severities, *Note Retrieving @@ -232,11 +231,11 @@ changes of the same day. The email address of a message originator. 'date' - A time period the bug has been in which the bug has been - submitted or modified. + A time period during which the bug has been submitted or + modified. 'subject' - Word(s) the subject of the bug report contains. + Word(s) contained in the subject of the bug report. 'status' The status of the bug report. Valid values are "open", @@ -244,15 +243,15 @@ changes of the same day. It is also possible to apply these commands with an empty search phrase. In this case, the GNU Debbugs server is searched only - for bugs which fulfill the given attributes. The attributes to - be applied are the same as already described, plus + for bugs which match the given attributes. The attributes to be + applied are the same as already described, plus 'archive' Whether archived bugs shall be searched (no value to be entered). 'src' - Bugs which belong to a given source, if that attribute has + Bugs which belong to a given source, if that attribute is set. 'tag' @@ -275,10 +274,10 @@ changes of the same day. bug fix. 'unarchived' - The date the bug has been unarchived, if ever. + The date the bug was unarchived, if ever. 'done' - The email address of the worker who has closed the bug (if + The email address of the worker who closed the bug (if done). 'forwarded' @@ -290,13 +289,13 @@ changes of the same day. 'summary' The summary of the bug report. - Not all of these attributes could be queried on the GNU Debbugs + Not all of these attributes can be queried on the GNU Debbugs server via the Debbugs/SOAP backend. In this case, the results - of a query are discriminated on the client side, which is - indicated by the string "(client-side filter)" in the minibuffer - after the attribute name. Note, that client side filters perform - badly, because they could be applied only after all bugs have - been downloaded. + of a query are filtered on the client side, which is indicated by + the string "(client-side filter)" in the minibuffer after the + attribute name. Note, that client side filters perform badly, + because they can be applied only after all bugs have been + downloaded. These commands show also a progress report when 'debbugs-show-progress' is non-'nil'. @@ -316,8 +315,8 @@ File: debbugs-ug.info, Node: Presenting Bugs, Next: Minor Mode, Prev: Searchi ***************** The commands described in the previous chapters generate (a) report -buffer(s) applicable for navigation. 'debbugs-gnu-*' return a -tabulated list, and 'debbugs-org-*' return a list of TODO items in +buffer(s) applicable for navigation. 'debbugs-gnu-*' displays a +tabulated list, and 'debbugs-org-*' displays a list of TODO items in 'org-mode'. * Menu: @@ -334,27 +333,27 @@ File: debbugs-ug.info, Node: Tabulated Lists, Next: TODO Items, Up: Presentin 3.1 Tabulated Lists =================== -A tabulated list of bug reports consist of four columns for every bug -entry: 'Id' (the bug number), 'State' (some bug attributes), +A tabulated list of bug reports consisting of four columns for every +bug entry: 'Id' (the bug number), 'State' (some bug attributes), 'Submitter' (the name of the bug submitter), and 'Title' (the bug -subject). Per default the bugs are sorted descending by 'Id'; this -could be changed by clicking in the headline. +subject). By default the bugs are sorted descending by 'Id'; this can +be changed by clicking in the headline. - Different foreground colours present further information on the bug -report. If the bug number uses a red colour ('debbugs-gnu-tagged'), -the bug has been tagged locally. The same face is used to mark bugs -in the submitter or title column, when the bug has been reported / is -maintained by the user. + Different foreground colors represent further information on the +bug report. If the bug number uses a red color +('debbugs-gnu-tagged'), the bug has been tagged locally. The same +face is used to mark bugs in the submitter or title column, when the +bug has been reported / is maintained by the user. - The bug state could appear in different colours: red -('debbugs-gnu-new', nobody has answered yet to this bug), ForestGreen + The bug state can appear in different colors: red +('debbugs-gnu-new', nobody has answered this bug yet), ForestGreen ('debbugs-gnu-handled', the bug has been modified recently), MidnightBlue ('debbugs-gnu-pending', the bug is pending), orange ('debbugs-gnu-stale', the bug has not been touched for a while), and DarkGrey ('debbugs-gnu-done', the bug is closed). Archived bugs are shown with inverse face ('debbugs-gnu-archived'). - The bug report buffers have enabled the minor 'debbugs-gnu-mode'. + The minor mode 'debbugs-gnu-mode' is active in bug report buffers. This enables the following key strokes: '<RET>' 'debbugs-gnu-select-report' @@ -409,14 +408,14 @@ This enables the following key strokes: *note Control Messages::. 'E' 'debbugs-gnu-make-control-message' - Make (but don't yet send) a control message for this - bug, *note Control Messages::. + Make (but don't send) a control message for this bug, + *note Control Messages::. Tagging a bug locally via 't' is an efficient way to keep bugs visible you are working on. The command 'debbugs-gnu-tagged' shows all locally tagged bugs in a list. - The user option 'debbugs-gnu-suppress-closed' controls, whether + The user option 'debbugs-gnu-suppress-closed' controls whether closed bugs are shown in the initial list. The user option 'debbugs-gnu-mail-backend' controls the @@ -438,7 +437,7 @@ navigation in 'org-mode'. Bug severities are mapped onto org severities, see 'debbugs-org-severity-priority'. - The bug report buffers have enabled the minor 'debbugs-org-mode'. + The minor mode 'debbugs-org-mode' is active in bug report buffers. This enables the following key strokes: '<TAB>' 'org-cycle' @@ -454,7 +453,7 @@ This enables the following key strokes: Send a control message for this bug, *note Control Messages::. 'C-c # E' 'debbugs-gnu-make-control-message' - Make (but don't yet send) a control message for this bug, *note Control Messages::. + Make (but don't send) a control message for this bug, *note Control Messages::. When the bug attributes are shown by 'org-cycle', there is a link 'Messages' which opens the messages for that bug. The user options @@ -542,7 +541,7 @@ meaning of the control messages, *Note Mail Command Index::. 'merge' "forcemerge|merge 12345 54321" - The second bug number is read interactively. It could be also a + The second bug number is read interactively. It can be also a list of comma-separated bug numbers. 'invalid' @@ -625,8 +624,8 @@ command 'C-u M-m'. If the predefined directory does not point to an existing path, it is read from the minibuffer. A further 'M-m' in the corresponding '*vc-diff*' buffer opens the -modified file. Here you can apply 'M-m' the next time. This creates -a ChangeLog entry with all needed information. A final 'M-m' in the +modified file. Here you can apply 'M-m' again. This creates a +ChangeLog entry with all needed information. A final 'M-m' in the 'ChangeLog' buffer commits the patch via '*vc-log*'. @@ -716,8 +715,8 @@ or <https://bugs.gnu.org/54321> will be shown in a bug report buffer, when 'debbugs-browse-mode' is enabled. See user option 'debbugs-browse-url-regexp' for the syntax of supported URLs. - In order to enable it globally, you might add the following forms -to your '~/.emacs': + In order to enable it globally, you can add the following forms to +your '~/.emacs': (add-hook 'bug-reference-mode-hook 'debbugs-browse-mode) (add-hook 'bug-reference-prog-mode-hook 'debbugs-browse-mode) @@ -733,16 +732,16 @@ Command Index * debbugs-browse-mode: Minor Mode. (line 12) * debbugs-gnu: Retrieving Bugs. (line 19) -* debbugs-gnu-bugs: Retrieving Bugs. (line 73) -* debbugs-gnu-patches: Retrieving Bugs. (line 90) +* debbugs-gnu-bugs: Retrieving Bugs. (line 72) +* debbugs-gnu-patches: Retrieving Bugs. (line 89) * debbugs-gnu-pick-commits: Posting Patches. (line 16) * debbugs-gnu-search: Searching Bugs. (line 15) -* debbugs-gnu-tagged: Retrieving Bugs. (line 100) +* debbugs-gnu-tagged: Retrieving Bugs. (line 99) * debbugs-org: Retrieving Bugs. (line 21) -* debbugs-org-bugs: Retrieving Bugs. (line 74) -* debbugs-org-patches: Retrieving Bugs. (line 91) +* debbugs-org-bugs: Retrieving Bugs. (line 73) +* debbugs-org-patches: Retrieving Bugs. (line 90) * debbugs-org-search: Searching Bugs. (line 16) -* debbugs-org-tagged: Retrieving Bugs. (line 101) +* debbugs-org-tagged: Retrieving Bugs. (line 100) File: debbugs-ug.info, Node: Variable Index, Next: Key Index, Prev: Command Index, Up: Top @@ -759,9 +758,9 @@ Variable Index * debbugs-gnu-branch-directory: Applying Patches. (line 18) * debbugs-gnu-commit-description-format: Customizing debbugs-gnu-pick-commits. (line 6) -* debbugs-gnu-default-bug-number-list: Retrieving Bugs. (line 85) -* debbugs-gnu-default-packages: Retrieving Bugs. (line 67) -* debbugs-gnu-default-severities: Retrieving Bugs. (line 67) +* debbugs-gnu-default-bug-number-list: Retrieving Bugs. (line 84) +* debbugs-gnu-default-packages: Retrieving Bugs. (line 66) +* debbugs-gnu-default-severities: Retrieving Bugs. (line 66) * debbugs-gnu-default-suppress-bugs: Retrieving Bugs. (line 48) * debbugs-gnu-git-remote-info-alist: Customizing debbugs-gnu-pick-commits. (line 6) @@ -771,7 +770,7 @@ Variable Index * debbugs-gnu-suppress-closed: Tabulated Lists. (line 88) * debbugs-gnu-trunk-directory: Applying Patches. (line 18) * debbugs-org-severity-priority: TODO Items. (line 10) -* debbugs-show-progress: Retrieving Bugs. (line 109) +* debbugs-show-progress: Retrieving Bugs. (line 108) File: debbugs-ug.info, Node: Key Index, Next: Mail Command Index, Prev: Variable Index, Up: Top @@ -1154,52 +1153,52 @@ Debbugs control mailserver commands Tag Table: Node: Top1097 Node: Retrieving Bugs2704 -Node: Searching Bugs7527 -Ref: Searching Bugs-Footnote-112077 -Ref: Searching Bugs-Footnote-212165 -Node: Presenting Bugs12256 -Node: Tabulated Lists12918 -Node: TODO Items17183 -Node: Control Messages18504 -Node: Applying Patches22021 -Node: Posting Patches23411 -Node: Customizing debbugs-gnu-pick-commits25896 -Node: Minor Mode26596 -Node: Command Index27872 -Node: Variable Index28874 -Node: Key Index30390 -Node: Mail Command Index32169 -Ref: Mail Command Index: reassign32322 -Ref: Mail Command Index: reopen33088 -Ref: Mail Command Index: found34242 -Ref: Mail Command Index: notfound35323 -Ref: Mail Command Index: fixed35732 -Ref: Mail Command Index: notfixed36178 -Ref: Mail Command Index: submitter36801 -Ref: Mail Command Index: forwarded37195 -Ref: Mail Command Index: notforwarded37813 -Ref: Mail Command Index: retitle38014 -Ref: Mail Command Index: severity38398 -Ref: Mail Command Index: clone38729 -Ref: Mail Command Index: merge39493 -Ref: Mail Command Index: forcemerge40880 -Ref: Mail Command Index: unmerge41324 -Ref: Mail Command Index: tags42027 -Ref: Mail Command Index: block43093 -Ref: Mail Command Index: unblock43130 -Ref: Mail Command Index: close43615 -Ref: Mail Command Index: package44265 -Ref: Mail Command Index: owner44877 -Ref: Mail Command Index: noowner45240 -Ref: Mail Command Index: archive45413 -Ref: Mail Command Index: unarchive45554 -Ref: Mail Command Index: #45847 -Ref: Mail Command Index: quit46107 -Ref: Mail Command Index: stop46114 -Ref: Mail Command Index: thank46121 -Ref: Mail Command Index: thanks46129 -Ref: Mail Command Index: thankyou46138 -Ref: Mail Command Index: thank you46149 -Ref: Mail Command Index: --46161 +Node: Searching Bugs7513 +Ref: Searching Bugs-Footnote-112044 +Ref: Searching Bugs-Footnote-212132 +Node: Presenting Bugs12223 +Node: Tabulated Lists12889 +Node: TODO Items17144 +Node: Control Messages18462 +Node: Applying Patches21977 +Node: Posting Patches23359 +Node: Customizing debbugs-gnu-pick-commits25844 +Node: Minor Mode26544 +Node: Command Index27818 +Node: Variable Index28820 +Node: Key Index30336 +Node: Mail Command Index32115 +Ref: Mail Command Index: reassign32268 +Ref: Mail Command Index: reopen33034 +Ref: Mail Command Index: found34188 +Ref: Mail Command Index: notfound35269 +Ref: Mail Command Index: fixed35678 +Ref: Mail Command Index: notfixed36124 +Ref: Mail Command Index: submitter36747 +Ref: Mail Command Index: forwarded37141 +Ref: Mail Command Index: notforwarded37759 +Ref: Mail Command Index: retitle37960 +Ref: Mail Command Index: severity38344 +Ref: Mail Command Index: clone38675 +Ref: Mail Command Index: merge39439 +Ref: Mail Command Index: forcemerge40826 +Ref: Mail Command Index: unmerge41270 +Ref: Mail Command Index: tags41973 +Ref: Mail Command Index: block43039 +Ref: Mail Command Index: unblock43076 +Ref: Mail Command Index: close43561 +Ref: Mail Command Index: package44211 +Ref: Mail Command Index: owner44823 +Ref: Mail Command Index: noowner45186 +Ref: Mail Command Index: archive45359 +Ref: Mail Command Index: unarchive45500 +Ref: Mail Command Index: #45793 +Ref: Mail Command Index: quit46053 +Ref: Mail Command Index: stop46060 +Ref: Mail Command Index: thank46067 +Ref: Mail Command Index: thanks46075 +Ref: Mail Command Index: thankyou46084 +Ref: Mail Command Index: thank you46095 +Ref: Mail Command Index: --46107 End Tag Table diff --git a/packages/debbugs/debbugs.el b/packages/debbugs/debbugs.el index 51b42c7..64fb366 100644 --- a/packages/debbugs/debbugs.el +++ b/packages/debbugs/debbugs.el @@ -33,7 +33,7 @@ ;;; Code: -;(setq soap-debug t message-log-max t) +;(setq soap-debug t url-debug t message-log-max t) (require 'soap-client) (eval-when-compile (require 'cl-lib)) @@ -870,9 +870,7 @@ Examples: (let ((x (pop elt))) (unless (member x val) (setq val (append val (list x)))))) - (setq vec - (vconcat - vec (list key (mapconcat #'identity val " ")))))) + (setq vec (vconcat vec (list key (string-join val " ")))))) (:status ;; It shouldn't happen in a phrase condition. @@ -889,8 +887,7 @@ Examples: (unless (member x val) (setq val (append val (list x)))))) (setq vec - (vconcat - vec (list key (mapconcat #'identity val " ")))))) + (vconcat vec (list key (string-join val " ")))))) ((:subject :package :tags :severity :@title) ;; It shouldn't happen in a phrase condition. @@ -905,8 +902,7 @@ Examples: (unless (member x val) (setq val (append val (list x)))))) (setq vec - (vconcat - vec (list key (mapconcat #'identity val " ")))))) + (vconcat vec (list key (string-join val " ")))))) ((:date :@cdate) ;; It shouldn't happen in a phrase condition.