branch: externals/debbugs commit 8e529f90b1cb82f48bf269bd77dcf8066efd3ce4 Author: Michael Albinus <michael.albi...@gmx.de> Commit: Michael Albinus <michael.albi...@gmx.de>
Code cleanup, adapt copyright years * debbugs-gnu.el; Use #' read syntax where appropriate. (vc-git-log-view-mode): Declare. (debbugs-gnu-post-patch): Fix docstring. (debbugs-gnu-usertags): Avoid useless `unwind-protect'. * debbugs.el (debbugs-url-display-message-or-percentage-function): New variable. (debbugs-url-display-message-or-percentage): Rename from `debbugs-url-display-percentage'. (debbugs-get-bugs, debbugs-get-status, debbugs-search-est): Use them. --- Debbugs.wsdl | 2 +- debbugs-browse.el | 2 +- debbugs-compat.el | 2 +- debbugs-gnu.el | 141 +++++++++++++++++++++++++++--------------------------- debbugs-guix.el | 6 ++- debbugs-org.el | 2 +- debbugs-ug.texi | 2 +- debbugs.el | 52 ++++++++++++-------- debbugs.texi | 2 +- 9 files changed, 112 insertions(+), 99 deletions(-) diff --git a/Debbugs.wsdl b/Debbugs.wsdl index a0ff28d280..899f452877 100644 --- a/Debbugs.wsdl +++ b/Debbugs.wsdl @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2011-2022 Free Software Foundation, Inc. +<!-- Copyright (C) 2011-2023 Free Software Foundation, Inc. This file is not part of GNU Emacs. diff --git a/debbugs-browse.el b/debbugs-browse.el index 324baac174..839ca3eb3c 100644 --- a/debbugs-browse.el +++ b/debbugs-browse.el @@ -1,6 +1,6 @@ ;; debbugs-browse.el --- browse bug URLs with debbugs-gnu or debbugs-org -;; Copyright (C) 2015-2022 Free Software Foundation, Inc. +;; Copyright (C) 2015-2023 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albi...@gmx.de> ;; Keywords: comm, hypermedia, maint diff --git a/debbugs-compat.el b/debbugs-compat.el index 5ea13fbeab..8f9740333b 100644 --- a/debbugs-compat.el +++ b/debbugs-compat.el @@ -1,6 +1,6 @@ ;;; debbugs-compat.el --- Compatibility library for debbugs -*- lexical-binding:t -*- -;; Copyright (C) 2022 Free Software Foundation, Inc. +;; Copyright (C) 2022-2023 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albi...@gmx.de> ;; Keywords: comm, hypermedia diff --git a/debbugs-gnu.el b/debbugs-gnu.el index 337c7cbb9a..3feca518f6 100644 --- a/debbugs-gnu.el +++ b/debbugs-gnu.el @@ -1,6 +1,6 @@ ;;; debbugs-gnu.el --- interface for the GNU bug tracker -*- lexical-binding:t -*- -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. +;; Copyright (C) 2011-2023 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen <la...@gnus.org> ;; Michael Albinus <michael.albi...@gmx.de> @@ -210,6 +210,7 @@ (autoload 'rmail-summary "rmailsum") (autoload 'vc-dir-hide-up-to-date "vc-dir") (autoload 'vc-dir-mark "vc-dir") +(autoload 'vc-git-log-view-mode "vc-git") (autoload 'vc-git--call "vc-git") (declare-function log-view-current-entry "log-view" (&optional pos move)) @@ -631,7 +632,7 @@ depend on PHRASE being a string, or nil. See Info node ((not (zerop (length key))) (setq val1 (funcall - (if phrase 'read-string 'read-regexp) + (if phrase #'read-string #'read-regexp) (format "Enter %s%s: " key (if phrase "" " (client-side filter)")))) (when (not (zerop (length val1))) @@ -1016,8 +1017,7 @@ are taken from the cache instead." ((< age (* week 12)) 'debbugs-gnu-stale-2) ((< age (* week 26)) 'debbugs-gnu-stale-3) ((< age (* week 52)) 'debbugs-gnu-stale-4) - (t - 'debbugs-gnu-stale-5))) + (t 'debbugs-gnu-stale-5))) (propertize ;; Prefer the name over the address. (or (cdr address) @@ -1174,7 +1174,7 @@ Used instead of `tabulated-list-print-entry'." (define-key-after menu-map [debbugs-gnu-select-current] '(menu-item "Show Reports For All" debbugs-gnu-select-current-bugs :help "Show reports for all currently shown bugs") - 'debbugs-gnu-select-report) + #'debbugs-gnu-select-report) (define-key-after menu-map [debbugs-gnu-rescan] '(menu-item "Refresh Bugs" debbugs-gnu-rescan :help "Refresh bug list") @@ -1184,21 +1184,21 @@ Used instead of `tabulated-list-print-entry'." debbugs-gnu-show-all-blocking-reports :enable (debbugs-gnu-menu-map-emacs-enabled) :help "Show all bugs blocking next Emacs release") - 'debbugs-gnu-rescan) + #'debbugs-gnu-rescan) (define-key-after menu-map [debbugs-gnu-send-control-message] '(menu-item "Send Control Message" debbugs-gnu-send-control-message :help "Send control message to debbugs.gnu.org") - 'debbugs-gnu-show-all-blocking-reports) + #'debbugs-gnu-show-all-blocking-reports) (define-key-after menu-map [debbugs-gnu-make-control-message] '(menu-item "Make Control Message" debbugs-gnu-make-control-message :help (concat "Make (but don't yet send) " "a control message to debbugs.gnu.org")) - 'debbugs-gnu-send-control-message) + #'debbugs-gnu-send-control-message) (define-key-after menu-map [debbugs-gnu-separator1] - '(menu-item "--") 'debbugs-gnu-make-control-message) + '(menu-item "--") #'debbugs-gnu-make-control-message) (define-key-after menu-map [debbugs-gnu-search] '(menu-item "Search Bugs" debbugs-gnu-search :help "Search bugs on debbugs.gnu.org") @@ -1206,14 +1206,14 @@ Used instead of `tabulated-list-print-entry'." (define-key-after menu-map [debbugs-gnu] '(menu-item "Retrieve Bugs" debbugs-gnu :help "Retrieve bugs from debbugs.gnu.org") - 'debbugs-gnu-search) + #'debbugs-gnu-search) (define-key-after menu-map [debbugs-gnu-bugs] '(menu-item "Retrieve Bugs by Number" debbugs-gnu-bugs :help "Retrieve selected bugs from debbugs.gnu.org") - 'debbugs-gnu) + #'debbugs-gnu) (define-key-after menu-map [debbugs-gnu-separator2] - '(menu-item "--") 'debbugs-gnu-bugs) + '(menu-item "--") #'debbugs-gnu-bugs) (define-key-after menu-map [debbugs-gnu-manual] '(menu-item "Debbugs Manual" debbugs-gnu-manual :help "Show Debbugs Manual") @@ -1223,7 +1223,7 @@ Used instead of `tabulated-list-print-entry'." debbugs-gnu-view-bug-triage :enable (debbugs-gnu-menu-map-bug-triage-enabled) :help "Show procedure of triaging bugs") - 'debbugs-gnu-manual) + #'debbugs-gnu-manual) map)) (defun debbugs-gnu-rescan (&optional nocache) @@ -1570,8 +1570,8 @@ interesting to you." (defun debbugs-gnu-current-status () ;; FIXME: `debbugs-org-mode' shouldn't be mentioned here. - (when (or (derived-mode-p 'debbugs-gnu-mode) - (derived-mode-p 'debbugs-gnu-usertags-mode) + (when (or (derived-mode-p #'debbugs-gnu-mode) + (derived-mode-p #'debbugs-gnu-usertags-mode) (bound-and-true-p debbugs-org-mode)) (get-text-property (line-beginning-position) 'tabulated-list-id))) @@ -1921,7 +1921,7 @@ removed instead." (debbugs-gnu-guess-current-id) (let ((bugnum-re "\\([0-9]+\\)\\(?:-done\\)?@debbugs.gnu.org")) - (when (derived-mode-p 'message-mode) + (when (derived-mode-p #'message-mode) (save-excursion (save-restriction (message-narrow-to-headers) @@ -1966,7 +1966,7 @@ removed instead." (lambda (s) (string-match-p "\\`[0-9]+\\'" s)) nil nil nil (car implicit-ids)))) current-prefix-arg - (when (derived-mode-p 'message-mode) + (when (derived-mode-p #'message-mode) (current-buffer))))) (let* ((status (or (debbugs-gnu-current-status) (car (debbugs-get-status bugid)))) @@ -2007,7 +2007,7 @@ removed instead." (format "Subject: control message for bug #%d\n" bugid) mail-header-separator "\n")) - (unless (or (derived-mode-p 'message-mode) + (unless (or (derived-mode-p #'message-mode) ;; `message-mode' associates buffer with file, we ;; don't want to do that for temp buffers. (eq (aref (buffer-name) 0) ?\s)) @@ -2118,7 +2118,7 @@ Use `gnus-read-ephemeral-emacs-bug-group' instead if there is no such buffer." for mode in preferred-modes thereis (and (derived-mode-p mode) ;; Don't choose sent message buffers. - (or (not (eq mode 'message-mode)) + (or (not (eq mode #'message-mode)) (not message-sent-message-via)) mode)))) (setq preferred-modes (cdr (memq mode preferred-modes))) @@ -2237,7 +2237,7 @@ Optionally call `debbugs-gnu-make-control-message' to close BUGNUM." (defun debbugs-gnu-post-patch (commit-range bugnum &optional format-patch-args) "Attach COMMIT-RANGE as patches into current message. -Optionally call `debbugs-gnu-make-control-message'' to tag BUGNUM +Optionally call `debbugs-gnu-make-control-message' to tag BUGNUM with `patch'." (letrec ((disposition (completing-read "disposition: " '("inline" "attachment"))) @@ -2277,7 +2277,7 @@ nil to let the next function try.") Return commit at point, or commit range in region if it is active. This function is suitable for use in `debbugs-gnu-read-commit-range-hook'." - (when (derived-mode-p 'vc-git-log-view-mode) + (when (derived-mode-p #'vc-git-log-view-mode) (list (if (use-region-p) (let ((beg (log-view-current-entry (region-beginning))) (end (log-view-current-entry (region-end)))) @@ -2326,7 +2326,7 @@ for user to call `debbugs-gnu-maybe-use-picked-commits'." (push read-bugnum bugnum))) (push (list bugnum repo-dir commit-range) debbugs-gnu-picked-commits) - (if (derived-mode-p 'message-mode) + (if (derived-mode-p #'message-mode) (debbugs-gnu-maybe-use-picked-commits) (message "Reply to a message to continue")))) @@ -2337,7 +2337,7 @@ on an entry with a matching bug number from `debbugs-gnu-picked-commits'. Remove entry after message is successfully sent." (interactive) - (when (derived-mode-p 'message-mode) + (when (derived-mode-p #'message-mode) (cl-loop with id = (car (debbugs-gnu-implicit-ids)) for pcomm-entry in debbugs-gnu-picked-commits for (bugnum repo-dir commit-range) = pcomm-entry @@ -2405,55 +2405,54 @@ successfully sent." (string-join debbugs-gnu-default-packages ",")) debbugs-gnu-default-packages)) - (unwind-protect - (let ((inhibit-read-only t) - (debbugs-port "gnu.org") - (buffer-name "*Emacs User Tags*") - (user-tab-length - (1+ (apply #'max (length "User") (mapcar #'length users))))) - - ;; Initialize variables. - (when (and (file-exists-p debbugs-gnu-persistency-file) - (not debbugs-gnu-local-tags)) - (with-temp-buffer - (insert-file-contents debbugs-gnu-persistency-file) - (eval (read (current-buffer)) t))) - - ;; Create buffer. - (when (get-buffer buffer-name) - (kill-buffer buffer-name)) - (switch-to-buffer (get-buffer-create buffer-name)) - (debbugs-gnu-usertags-mode) - (setq tabulated-list-format `[("User" ,user-tab-length t) - ("Tag" 10 t)]) - (setq tabulated-list-sort-key (cons "User" nil)) - ;(setq tabulated-list-printer #'debbugs-gnu-print-entry) - - ;; Retrieve user tags. - (dolist (user users) - (dolist (tag (sort (debbugs-get-usertag :user user) #'string<)) - (add-to-list - 'tabulated-list-entries - ;; `tabulated-list-id' is the parameter list for `debbugs-gnu'. - `((("tagged") (,user) nil nil (,tag)) - ,(vector (propertize user 'mouse-face 'highlight) - (propertize tag 'mouse-face 'highlight))) - 'append))) - - ;; Add local tags. - (when debbugs-gnu-local-tags - (add-to-list - 'tabulated-list-entries - `((("tagged")) - ,(vector - "" (propertize "(local tags)" 'mouse-face 'highlight))))) + (let ((inhibit-read-only t) + (debbugs-port "gnu.org") + (buffer-name "*Emacs User Tags*") + (user-tab-length + (1+ (apply #'max (length "User") (mapcar #'length users))))) + + ;; Initialize variables. + (when (and (file-exists-p debbugs-gnu-persistency-file) + (not debbugs-gnu-local-tags)) + (with-temp-buffer + (insert-file-contents debbugs-gnu-persistency-file) + (eval (read (current-buffer)) t))) - ;; Show them. - (tabulated-list-init-header) - (tabulated-list-print) + ;; Create buffer. + (when (get-buffer buffer-name) + (kill-buffer buffer-name)) + (switch-to-buffer (get-buffer-create buffer-name)) + (debbugs-gnu-usertags-mode) + (setq tabulated-list-format `[("User" ,user-tab-length t) + ("Tag" 10 t)]) + (setq tabulated-list-sort-key (cons "User" nil)) + ;(setq tabulated-list-printer #'debbugs-gnu-print-entry) + + ;; Retrieve user tags. + (dolist (user users) + (dolist (tag (sort (debbugs-get-usertag :user user) #'string<)) + (add-to-list + 'tabulated-list-entries + ;; `tabulated-list-id' is the parameter list for `debbugs-gnu'. + `((("tagged") (,user) nil nil (,tag)) + ,(vector (propertize user 'mouse-face 'highlight) + (propertize tag 'mouse-face 'highlight))) + 'append))) + + ;; Add local tags. + (when debbugs-gnu-local-tags + (add-to-list + 'tabulated-list-entries + `((("tagged")) + ,(vector + "" (propertize "(local tags)" 'mouse-face 'highlight))))) + + ;; Show them. + (tabulated-list-init-header) + (tabulated-list-print) - (set-buffer-modified-p nil) - (goto-char (point-min))))) + (set-buffer-modified-p nil) + (goto-char (point-min)))) (defun debbugs-gnu-select-usertag () "Select the user tag on the current line." @@ -2486,7 +2485,7 @@ or bug ranges, with default to `debbugs-gnu-default-bug-number-list'." debbugs-gnu-completion-table) (split-string debbugs-gnu-default-bug-number-list "," t))))) (dolist (elt bugs) - (unless (natnump elt) (signal 'wrong-type-argument (list 'natnump elt)))) + (unless (natnump elt) (signal 'wrong-type-argument (list #'natnump elt)))) (add-to-list 'debbugs-gnu-current-query (cons 'bugs bugs)) ;; We do not suppress bugs requested explicitly. (setq debbugs-gnu-current-suppress nil) diff --git a/debbugs-guix.el b/debbugs-guix.el index fac9600225..66b2e394e2 100644 --- a/debbugs-guix.el +++ b/debbugs-guix.el @@ -1,6 +1,6 @@ ;;; debbugs-guix.el --- guix specific debbugs functions -*- lexical-binding: t; -*- ;; -;; Copyright (C) 2022 Free Software Foundation, Inc. +;; Copyright (C) 2022-2023 Free Software Foundation, Inc. ;; Author: Joshua Branson <jbra...@dismail.de> ;; Keywords: comm, hypermedia, maint @@ -31,6 +31,10 @@ ;;; Code: +(declare-function debbugs-gnu-search "debbugs-gnu") +(declare-function debbugs-org-show-reports "debbugs-org") +(defvar debbugs-gnu-show-reports-function) + ;;;###autoload (defun debbugs-gnu-guix-search () "Search for open guix bugs and patches." diff --git a/debbugs-org.el b/debbugs-org.el index 3d353c81e4..be6af04a8e 100644 --- a/debbugs-org.el +++ b/debbugs-org.el @@ -1,6 +1,6 @@ ;;; debbugs-org.el --- Org-mode interface for the GNU bug tracker -*- lexical-binding:t -*- -;; Copyright (C) 2013-2022 Free Software Foundation, Inc. +;; Copyright (C) 2013-2023 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albi...@gmx.de> ;; Keywords: comm, hypermedia, maint, outlines diff --git a/debbugs-ug.texi b/debbugs-ug.texi index f320b0fcf4..9ae619623d 100644 --- a/debbugs-ug.texi +++ b/debbugs-ug.texi @@ -8,7 +8,7 @@ @end direntry @copying -Copyright @copyright{} 2015-2022 Free Software Foundation, Inc. +Copyright @copyright{} 2015-2023 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document diff --git a/debbugs.el b/debbugs.el index 4000dc5f3c..f327744d72 100644 --- a/debbugs.el +++ b/debbugs.el @@ -1,6 +1,6 @@ ;;; debbugs.el --- SOAP library to access debbugs servers -*- lexical-binding:t -*- -;; Copyright (C) 2011-2022 Free Software Foundation, Inc. +;; Copyright (C) 2011-2023 Free Software Foundation, Inc. ;; Author: Michael Albinus <michael.albi...@gmx.de> ;; Keywords: comm, hypermedia @@ -141,15 +141,25 @@ Don't set this globally, it shall be let-bound.") "An alist keeping the progress percentage per buffer. Don't set this globally, it shall be let-bound.") -(defun debbugs-url-display-percentage (&rest args) +;; Since Emacs 29.1, `url-display-percentage' is obsolete and replaced +;; by `url-display-message'. However, `url-display-message' isn't +;; such good in providing percentage numbers. +(defvar debbugs-url-display-message-or-percentage-function + (if (fboundp 'url-display-percentage) + 'url-display-percentage 'url-display-message) + "The used function from url-util.el.") + +(defun debbugs-url-display-message-or-percentage (&rest args) "Update progress reporter." (ignore-errors (when (and debbugs-show-progress debbugs-progress-reporter) ;; The fingerprint of `url-display-percentage' is FMT PERC &REST - ;; ARGS. However, there are calls which have a nil argument - ;; before the other arguments, whyever. In order to be backward - ;; compatible, we scan the arguments for the first number, and - ;; regard it as the percentage. + ;; ARGS. Since Emacs 29.1, this is obsolete and replaced by + ;; `url-display-message', which should also carry the percentage + ;; in its ARGS. However, there are calls which have a nil + ;; argument before the other arguments, whyever. In order to be + ;; backward compatible, we scan the arguments for the first + ;; number, and regard it as the percentage. (while (and args (not (natnump (car args)))) (setq args (cdr args))) (progress-reporter-update @@ -249,9 +259,9 @@ patch: debbugs-progress-reporter-buffers url-show-status vec kw key val) (when debbugs-show-progress (add-function - :override (symbol-function #'url-display-percentage) - #'debbugs-url-display-percentage - '((name . "debbugs-url-display-percentage")))) + :override (symbol-function debbugs-url-display-message-or-percentage-function) + #'debbugs-url-display-message-or-percentage + '((name . "debbugs-url-display-message-or-percentage")))) ;; Check query. (while (and (consp query) (<= 2 (length query))) @@ -294,8 +304,8 @@ patch: (sort (car (soap-invoke debbugs-wsdl debbugs-port "get_bugs" vec)) #'<) (when debbugs-show-progress (remove-function - (symbol-function #'url-display-percentage) - "debbugs-url-display-percentage") + (symbol-function debbugs-url-display-message-or-percentage-function) + "debbugs-url-display-message-or-percentage") (progress-reporter-done debbugs-progress-reporter))))) (defun debbugs-newest-bugs (amount) @@ -478,9 +488,9 @@ Example: debbugs-progress-reporter-buffers url-show-status results res) (when debbugs-show-progress (add-function - :override (symbol-function #'url-display-percentage) - #'debbugs-url-display-percentage - '((name . "debbugs-url-display-percentage")))) + :override (symbol-function debbugs-url-display-message-or-percentage-function) + #'debbugs-url-display-message-or-percentage + '((name . "debbugs-url-display-message-or-percentage")))) (while bug-ids (setq results @@ -513,8 +523,8 @@ Example: (when debbugs-show-progress (remove-function - (symbol-function #'url-display-percentage) - "debbugs-url-display-percentage") + (symbol-function debbugs-url-display-message-or-percentage-function) + "debbugs-url-display-message-or-percentage") (progress-reporter-done debbugs-progress-reporter)))) (append @@ -795,9 +805,9 @@ Examples: (when debbugs-create-progress-reporter (setq debbugs-progress-reporter (make-progress-reporter "Query bugs...")) (add-function - :override (symbol-function #'url-display-percentage) - #'debbugs-url-display-percentage - '((name . "debbugs-url-display-percentage")))) + :override (symbol-function debbugs-url-display-message-or-percentage-function) + #'debbugs-url-display-message-or-percentage + '((name . "debbugs-url-display-message-or-percentage")))) (if (and phrase (not (member :skip phrase)) (not (member :max phrase))) ;; We loop, until we have all results. @@ -951,8 +961,8 @@ Examples: (when debbugs-create-progress-reporter (remove-function - (symbol-function #'url-display-percentage) - "debbugs-url-display-percentage") + (symbol-function debbugs-url-display-message-or-percentage-function) + "debbugs-url-display-message-or-percentage") (progress-reporter-done debbugs-progress-reporter)) result)) diff --git a/debbugs.texi b/debbugs.texi index be82f4349d..12b1b0108c 100644 --- a/debbugs.texi +++ b/debbugs.texi @@ -8,7 +8,7 @@ @end direntry @copying -Copyright @copyright{} 2011-2022 Free Software Foundation, Inc. +Copyright @copyright{} 2011-2023 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document