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.

Reply via email to