branch: externals/debbugs commit 993f85df2b6306389cb8d63588a4ae0680e5216a Author: Michael Albinus <michael.albi...@gmx.de> Commit: Michael Albinus <michael.albi...@gmx.de>
Make revert buffer thread-safe * debbugs-gnu.el (debbugs-gnu-current-id): New defvar. (debbugs-gnu): Set it. (debbugs-gnu-rescan): Make it thread-safe. (debbugs-gnu-mode): Reset `tabulated-list-entries'. * debbugs-ug.texi (Searching Bugs): Move items. --- debbugs-gnu.el | 28 +++++++++++++++++++--------- debbugs-ug.texi | 15 ++++++++------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/debbugs-gnu.el b/debbugs-gnu.el index 744ec0bc9c..f15fbb43ee 100644 --- a/debbugs-gnu.el +++ b/debbugs-gnu.el @@ -464,6 +464,9 @@ The specification which bugs shall be suppressed is taken from (defvar debbugs-gnu-current-buffer nil "The current buffer results are presented in.") +(defvar debbugs-gnu-current-id nil + "The saved position in a debbugs buffer.") + (defvar debbugs-gnu-current-message nil "The message to be shown after getting the bugs.") @@ -891,6 +894,8 @@ value, like in `debbugs-gnu-get-bugs' or `debbubgs-gnu-tagged'." (let (debbugs-show-progress) (unwind-protect (funcall debbugs-gnu-show-reports-function) + (when debbugs-gnu-current-id + (debbugs-gnu-goto debbugs-gnu-current-id)) ;; Indicate result. (if debbugs-gnu-current-message (message @@ -904,18 +909,22 @@ value, like in `debbugs-gnu-get-bugs' or `debbubgs-gnu-tagged'." (setq debbugs-gnu-current-query nil debbugs-gnu-current-filter nil debbugs-gnu-current-suppress nil + debbugs-gnu-current-id nil debbugs-gnu-current-message nil debbugs-gnu-show-reports-function debbugs-gnu-default-show-reports-function))))) (unwind-protect (funcall debbugs-gnu-show-reports-function) + (when debbugs-gnu-current-id + (debbugs-gnu-goto debbugs-gnu-current-id)) (when debbugs-gnu-current-message (message "%s" debbugs-gnu-current-message)) ;; Reset query, filter, suppress and message. (setq debbugs-gnu-current-query nil debbugs-gnu-current-filter nil debbugs-gnu-current-suppress nil + debbugs-gnu-current-id nil debbugs-gnu-current-message nil debbugs-gnu-show-reports-function debbugs-gnu-default-show-reports-function)))) @@ -1308,15 +1317,15 @@ If NOCACHE is non-nil, bug information is retrieved from the debbugs server. Interactively, it is non-nil with the prefix argument." (interactive (list current-prefix-arg)) - (let ((id (debbugs-gnu-current-id t)) - (debbugs-gnu-current-query debbugs-gnu-local-query) - (debbugs-gnu-current-filter debbugs-gnu-local-filter) - (debbugs-gnu-current-suppress debbugs-gnu-local-suppress) - (debbugs-gnu-current-print-function debbugs-gnu-local-print-function) - (debbugs-cache-expiry (if nocache t debbugs-cache-expiry))) - (funcall debbugs-gnu-show-reports-function) - (when id - (debbugs-gnu-goto id)))) + (setq debbugs-gnu-current-query debbugs-gnu-local-query + debbugs-gnu-current-filter debbugs-gnu-local-filter + debbugs-gnu-current-suppress debbugs-gnu-local-suppress + debbugs-gnu-current-id (debbugs-gnu-current-id t) + debbugs-gnu-current-print-function debbugs-gnu-local-print-function + debbugs-cache-expiry (if nocache t debbugs-cache-expiry) + debbugs-gnu-current-message "Reverting finished") + (message "Reverting buffer") + (debbugs-gnu nil)) (define-derived-mode debbugs-gnu-mode tabulated-list-mode "Debbugs" "Major mode for listing bug reports. @@ -1335,6 +1344,7 @@ modified on the debbugs server, consider typing \\`C-u g'. debbugs-gnu-current-suppress) (set (make-local-variable 'debbugs-gnu-local-print-function) debbugs-gnu-current-print-function) + (set (make-local-variable 'tabulated-list-entries) nil) (setq tabulated-list-format [("Id" 5 debbugs-gnu-sort-id) ("State" 10 debbugs-gnu-sort-state) ("Submitter" 18 debbugs-gnu-sort-submitter) diff --git a/debbugs-ug.texi b/debbugs-ug.texi index 5dc6ccbfc9..269b6d3fb5 100644 --- a/debbugs-ug.texi +++ b/debbugs-ug.texi @@ -340,12 +340,6 @@ attribute-value pairs, until an empty attribute is returned. Possible attributes are @table @samp -@item skip -How many hits are skipped (default 0). - -@item max -How many maximal hits are returned. - @item severity A comma-separated list of bug severities, @xref{Retrieving Bugs}. @@ -366,10 +360,17 @@ modified. @item subject Word(s) contained in the subject of the bug report. +@c This is queried with the attribute "pending". @item status The status of the bug report. Valid values are "pending", "forwarded", "fixed" and "done". -@c This is queried with the attribute "pending". + +@c The next two items are rather for testing purposes. +@item skip +How many hits are skipped. + +@item max +How many maximal hits are returned. @end table It is also possible to apply these commands with an empty search