branch: externals/debbugs commit 3ca6aba1288caa8ed575b4ae48120ca739fc978a Author: Michael Albinus <michael.albi...@gmx.de> Commit: Michael Albinus <michael.albi...@gmx.de>
Release debbugs 0.41 * debbugs.el: Bump version to 0.41. * debbugs-compat.el (debbugs-gnu-use-threads): Declare. (debbugs-compat-url-http-attempt-keepalives): Fix docstring. (debbugs-compat-debbugs-advice): New defun. (debbugs-compat-add-debbugs-advice) (debbugs-compat-remove-debbugs-advice): Add docstring. Use new function. * debbugs-gnu.el (debbugs-gnu): Propagate an error to main-thread. Rearrange messages. Give the thread a name. (debbugs-gnu-show-last-result): Fix docstring. Don't handle an error, this ia done already in the threa. (debbugs-gnu-display-status): Mark "cache_time" as client-side attribute. * debbugs-org.el (debbugs-org-show-last-result): New defalias. * debbugs-ug.texi (Retrieving Bugs): Add debbugs-org-show-last-result. Fix typo. --- debbugs-compat.el | 29 ++++++++++++++++------------- debbugs-gnu.el | 36 ++++++++++++++++++++++++------------ debbugs-org.el | 1 + debbugs-ug.texi | 5 ++++- debbugs.el | 2 +- 5 files changed, 46 insertions(+), 27 deletions(-) diff --git a/debbugs-compat.el b/debbugs-compat.el index c73110f2aa..0e95d8605b 100644 --- a/debbugs-compat.el +++ b/debbugs-compat.el @@ -41,25 +41,28 @@ ;; `soap-invoke-internal' let-binds `url-http-attempt-keepalives' to ;; t, which is not thread-safe. We override this setting. (defvar url-http-attempt-keepalives) +(defvar debbugs-gnu-use-threads) (defvar debbugs-compat-url-http-attempt-keepalives nil - "Temporary storage for `'.") + "Temporary storage for `url-http-attempt-keepalives'.") + +(defun debbugs-compat-debbugs-advice () + "Set `url-http-attempt-keepalives' to nil." + (setq url-http-attempt-keepalives nil)) + (defun debbugs-compat-add-debbugs-advice () - (with-no-warnings + "Activate advice for Bug#73199." + (when debbugs-gnu-use-threads (setq debbugs-compat-url-http-attempt-keepalives - url-http-attempt-keepalives)) - (advice-add - 'url-http-create-request :around - (lambda (orig-fun) - "Set `url-http-attempt-keepalives' to nil." - (with-no-warnings (setq url-http-attempt-keepalives nil)) - (funcall orig-fun)) - '(name debbugs-advice))) + url-http-attempt-keepalives) + (advice-add + 'url-http-create-request :before #'debbugs-compat-debbugs-advice))) (defun debbugs-compat-remove-debbugs-advice () - (advice-remove 'url-http-create-request 'debbugs-advice) - (with-no-warnings + "Deactivate advice for Bug#73199." + (when debbugs-gnu-use-threads (setq url-http-attempt-keepalives - debbugs-compat-url-http-attempt-keepalives))) + debbugs-compat-url-http-attempt-keepalives) + (advice-remove 'url-http-create-request #'debbugs-compat-debbugs-advice))) (provide 'debbugs-compat) diff --git a/debbugs-gnu.el b/debbugs-gnu.el index d0d1154574..be744d924f 100644 --- a/debbugs-gnu.el +++ b/debbugs-gnu.el @@ -896,18 +896,25 @@ value, like in `debbugs-gnu-get-bugs' or `debbubgs-gnu-tagged'." (lambda () (let (debbugs-show-progress) (unwind-protect - (funcall debbugs-gnu-show-reports-function) + (condition-case err + (funcall debbugs-gnu-show-reports-function) + ;; `thread-signal' exists since Emacs 27.1. This + ;; doesn't matter, because in Emacs 26 we don't use + ;; threads. + (error (apply 'thread-signal main-thread err))) (when debbugs-gnu-current-id (debbugs-gnu-goto debbugs-gnu-current-id)) ;; Indicate result. (if debbugs-gnu-current-message (message + "%s, visit buffer via %s" + debbugs-gnu-current-message (substitute-command-keys - "%s, visit buffer via \\[debbugs-gnu-show-last-result]") - debbugs-gnu-current-message) + "\\[debbugs-gnu-show-last-result]")) (message + "Visit buffer via %s" (substitute-command-keys - "Visit buffer via \\[debbugs-gnu-show-last-result]"))) + "\\[debbugs-gnu-show-last-result]"))) ;; Reset query, filter, suppress and message. (setq debbugs-gnu-current-query nil debbugs-gnu-current-filter nil @@ -916,7 +923,8 @@ value, like in `debbugs-gnu-get-bugs' or `debbubgs-gnu-tagged'." debbugs-gnu-current-message nil debbugs-gnu-current-nocache nil debbugs-gnu-show-reports-function - debbugs-gnu-default-show-reports-function))))) + debbugs-gnu-default-show-reports-function)))) + "debbugs") (unwind-protect (funcall debbugs-gnu-show-reports-function) @@ -943,14 +951,8 @@ This function assumes the variable `user-mail-address' is defined." ;;;###autoload (defun debbugs-gnu-show-last-result () - "Switch to buffer with the recent retrieved bugs" + "Switch to buffer with the recent retrieved bugs." (interactive) - ;; `thread-last-error' has an argument since Emacs 27.1. This - ;; doesn't matter, because in Emacs 26 we don't use threads. - (when-let ((err - (ignore-errors - (with-no-warnings (funcall 'thread-last-error 'cleanup))))) - (message "debbugs-gnu-show-last-result: %S" err)) (when (ignore-errors (get-buffer debbugs-gnu-current-buffer)) (pop-to-buffer-same-window debbugs-gnu-current-buffer))) @@ -1709,6 +1711,16 @@ interesting to you." (put-text-property (match-beginning 1) (match-end 1) 'help-echo (current-time-string (read (match-string 1))))) + (goto-char (point-min)) + (when (re-search-forward + (rx "(" (group "cache_time") " . "(1+ digit) (? "." (1+ digit)) ")") + nil t) + (put-text-property + (match-beginning 0) (match-end 0) + 'face 'debbugs-gnu-marked)) + (put-text-property + (match-beginning 1) (match-end 1) + 'help-echo "Client-side attribute") (goto-char (point-min))) (set-buffer-modified-p nil) (special-mode)) diff --git a/debbugs-org.el b/debbugs-org.el index 629f7247cb..17fa8a39b5 100644 --- a/debbugs-org.el +++ b/debbugs-org.el @@ -137,6 +137,7 @@ (defvar debbugs-gnu-local-filter) (defvaralias 'debbugs-org-use-threads 'debbugs-gnu-use-threads) +(defalias 'debbugs-org-show-last-result #'debbugs-gnu-show-last-result) (defconst debbugs-org-severity-priority (let ((priority ?A)) diff --git a/debbugs-ug.texi b/debbugs-ug.texi index 269b6d3fb5..a5ec0bd25c 100644 --- a/debbugs-ug.texi +++ b/debbugs-ug.texi @@ -97,6 +97,9 @@ function key in your @file{.emacs} file, like @lisp (keymap-global-set "<f5>" 'debbugs-gnu-show-last-result) @end lisp + +@findex debbugs-org-show-last-result +@code{debbugs-org-show-last-result} is an alias of this command. @end deffn @@ -110,7 +113,7 @@ the number of bugs to be retrieved is known in advance, and it is smaller than the user option @code{debbugs-gnu-use-threads-lower-limit}. @vindex debbugs-org-use-threads -@code{debbugs-org-use-threads} an alias of this user option. +@code{debbugs-org-use-threads} is an alias of this user option. @end defopt @section Basic Commands diff --git a/debbugs.el b/debbugs.el index 876443e270..2b3921ef6d 100644 --- a/debbugs.el +++ b/debbugs.el @@ -5,7 +5,7 @@ ;; Author: Michael Albinus <michael.albi...@gmx.de> ;; Keywords: comm, hypermedia ;; Package: debbugs -;; Version: 0.40 +;; Version: 0.41 ;; Package-Requires: ((emacs "26.1") (soap-client "3.1.5")) ;; This file is not part of GNU Emacs.