[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/debbugs e7d2d81 118/311: * debbugs-org.el (debbugs-org-
From: |
Stefan Monnier |
Subject: |
[elpa] externals/debbugs e7d2d81 118/311: * debbugs-org.el (debbugs-org-ids): Declare it buffer-local. |
Date: |
Sun, 29 Nov 2020 18:41:53 -0500 (EST) |
branch: externals/debbugs
commit e7d2d81e67301bd635fece994895d35df86515e0
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>
* debbugs-org.el (debbugs-org-ids): Declare it buffer-local.
(debbugs-org-show-buffer-name): New defun. Apply it everywhere the
respective variable has been used.
(debbugs-org): Protect the whole code.
(debbugs-org-show-reports): Let `debbugs-org-ids' survive mode
setting. Do not insert header line. Do not format buffer.
(debbugs-org-show-next-reports): Add file local variables.
---
debbugs-org.el | 107 +++++++++++++++++++++++++++++++++------------------------
1 file changed, 62 insertions(+), 45 deletions(-)
diff --git a/debbugs-org.el b/debbugs-org.el
index a85cbbc..343308e 100644
--- a/debbugs-org.el
+++ b/debbugs-org.el
@@ -125,13 +125,19 @@
;; We do not add the bug numbers list to the elisp:link, because this
;; would be much too long. Instead, this variable shall keep the bug
;; numbers.
-(defvar debbugs-org-ids nil
+(defvar-local debbugs-org-ids nil
"The list of bug ids to be shown following the elisp link.")
(defvar debbugs-org-show-buffer-name "*Org Bugs*"
"The buffer name we present the bug reports.
This could be a temporary buffer, or a buffer linked with a file.")
+(defvar debbugs-org-mode) ;; Silence compiler.
+(defun debbugs-org-show-buffer-name ()
+ "The buffer name we present the bug reports.
+This could be a temporary buffer, or a buffer linked with a file."
+ (if debbugs-org-mode (buffer-name) debbugs-org-show-buffer-name))
+
;;;###autoload
(defun debbugs-org-search ()
"Search for bugs interactively.
@@ -250,44 +256,42 @@ returned."
(when (not (zerop (length tag)))
(add-to-list 'debbugs-gnu-current-query (cons 'tag tag))))
- (with-current-buffer (get-buffer-create debbugs-org-show-buffer-name)
- (erase-buffer))
+ (unwind-protect
+ (with-current-buffer (get-buffer-create (debbugs-org-show-buffer-name))
+ (erase-buffer)
- (unwind-protect
- (let ((hits debbugs-gnu-default-hits-per-page))
- (setq debbugs-org-ids (debbugs-gnu-get-bugs debbugs-gnu-current-query))
-
- (when (> (length debbugs-org-ids) hits)
- (let ((cursor-in-echo-area nil))
- (setq hits
- (string-to-number
- (read-string
- (format
- "How many reports (available %d, default %d): "
- (length debbugs-org-ids) hits)
- nil
- nil
- (number-to-string hits))))))
-
- (debbugs-org-show-next-reports hits))
-
- ;; Reset query.
- (setq debbugs-gnu-current-query nil)))
+ (let ((hits debbugs-gnu-default-hits-per-page))
+ (setq debbugs-org-ids
+ (debbugs-gnu-get-bugs debbugs-gnu-current-query))
+
+ (when (> (length debbugs-org-ids) hits)
+ (let ((cursor-in-echo-area nil))
+ (setq hits
+ (string-to-number
+ (read-string
+ (format
+ "How many reports (available %d, default %d): "
+ (length debbugs-org-ids) hits)
+ nil
+ nil
+ (number-to-string hits))))))
+
+ (debbugs-org-show-next-reports hits)))
+
+ ;; Reset query.
+ (setq debbugs-gnu-current-query nil)))
(defun debbugs-org-show-reports (bug-numbers)
"Show bug reports as given in BUG-NUMBERS."
- (pop-to-buffer (get-buffer-create debbugs-org-show-buffer-name))
- (org-mode)
- (debbugs-org-mode 1)
- ;; FIXME: Does not show any effect.
- (set (make-local-variable 'org-priority-faces) debbugs-org-priority-faces)
+ (pop-to-buffer (get-buffer-create (debbugs-org-show-buffer-name)))
+ ;; Local variable `debbugs-org-ids' must survive.
+ (let ((doi debbugs-org-ids))
+ (org-mode)
+ (debbugs-org-mode 1)
+ (setq debbugs-org-ids doi))
(let ((inhibit-read-only t)
(debbugs-port "gnu.org"))
-
- (when (= (point) (point-min))
- (insert "# -*- eval: (debbugs-org-mode 1); -*-\n\n"))
-
(dolist (status
(sort
(apply 'debbugs-get-status bug-numbers)
@@ -366,11 +370,7 @@ returned."
(seconds-to-time last-modified))))
;; Add text properties.
- (add-text-properties beg (point) `(tabulated-list-id ,status))))
-
- (goto-char (point-min))
- (org-overview)
- (set-buffer-modified-p nil)))
+ (add-text-properties beg (point) `(tabulated-list-id ,status))))))
(defun debbugs-org-regenerate-status ()
"Regenerate the `tabulated-list-id' text property.
@@ -391,21 +391,38 @@ the corresponding buffer (e.g. by closing Emacs)."
(defun debbugs-org-show-next-reports (hits)
"Show next HITS of bug reports."
- (with-current-buffer (get-buffer-create debbugs-org-show-buffer-name)
+ (with-current-buffer (get-buffer-create (debbugs-org-show-buffer-name))
(save-excursion
(goto-char (point-max))
- (forward-line -1)
- (delete-region (point) (point-max))
+ (when (re-search-backward
+ "^* COMMENT \\[\\[elisp:(debbugs-org-show-next-reports" nil t)
+ (forward-line -1)
+ (delete-region (point) (point-max)))
(debbugs-org-show-reports
(butlast debbugs-org-ids (- (length debbugs-org-ids) hits)))
(setq debbugs-org-ids
(last debbugs-org-ids (- (length debbugs-org-ids) hits)))
+ (goto-char (point-max))
(when debbugs-org-ids
- (goto-char (point-max))
(insert
(format
- "* [[elisp:(debbugs-org-show-next-reports %s)][Next bugs]]\n"
- hits))))))
+ "* COMMENT [[elisp:(debbugs-org-show-next-reports %s)][Next
bugs]]\n\n"
+ hits)))
+ (insert "* COMMENT Local " "Variables\n")
+ (when debbugs-org-ids
+ (insert "#+NAME: init\n"
+ "#+BEGIN_SRC elisp\n"
+ (format "(setq debbugs-org-ids '%s)\n" debbugs-org-ids)
+ "#+END_SRC\n\n"))
+ (insert "# Local " "Variables:\n"
+ "# mode: org\n"
+ "# eval: (debbugs-org-mode 1)\n")
+ (when debbugs-org-ids
+ (insert "# eval: (sbe \"init\")\n"))
+ (insert "# End:\n")
+ (goto-char (point-min))
+ (org-overview)
+ (set-buffer-modified-p nil))))
(defconst debbugs-org-mode-map
(let ((map (make-sparse-keymap)))
@@ -424,8 +441,8 @@ the corresponding buffer (e.g. by closing Emacs)."
\\{debbugs-org-mode-map}"
:lighter " Debbugs" :keymap debbugs-org-mode-map
- (set (make-local-variable 'debbugs-org-show-buffer-name)
- (if buffer-file-name (buffer-name) debbugs-org-show-buffer-name))
+ ;; FIXME: Does not show any effect.
+ (set (make-local-variable 'org-priority-faces) debbugs-org-priority-faces)
(set (make-local-variable 'gnus-posting-styles)
`((".*"
(eval
- [elpa] externals/debbugs 2e4ea48 098/311: * debbugs-gnu.el (debbugs-gnu-usertags): Rename argument to USERS, (continued)
- [elpa] externals/debbugs 2e4ea48 098/311: * debbugs-gnu.el (debbugs-gnu-usertags): Rename argument to USERS, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs d80d972 099/311: * debbugs.el:, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 7693594 101/311: Fix the copyright section to point out that it's not part of Emacs., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 294b51c 102/311: Don't explicitly bind mouse-1., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 9896d90 103/311: Revert the previous copyright change., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 6a96eb7 109/311: * debbugs-gnu.el (debbugs-gnu-default-packages): Add packages., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 9668e1f 110/311: Fix typo., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 799bc0e 111/311: * debbugs-org.el: New file., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs d710aff 114/311: * debbugs-org.el (debbugs-org-show-reports): Add a minor mode header line., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 99fd49a 115/311: * debbugs-gnu.el (debbugs-gnu): Handle SUPPRESS properly., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs e7d2d81 118/311: * debbugs-org.el (debbugs-org-ids): Declare it buffer-local.,
Stefan Monnier <=
- [elpa] externals/debbugs 9b62ae8 119/311: * debbugs-org.el (debbugs-org-show-next-reports): Use `org-sbe' if available., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs c0648d6 121/311: * README: Fix command invocation., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 394f5ff 122/311: * debbugs/debbugs-gnu.el (debbugs-gnu-default-packages): Remove w32, ns., Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 2e43897 127/311: Also suppress all locally tagged bug reports, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs cfb0bdb 128/311: Really allow narrowing to subject fields, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 3cf7c83 129/311: Make an empty `/' command display all the bugs, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs a0b4b2e 131/311: Require compile before using variables from that package, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs c9989ec 133/311: New manual debbugs-ug.texi, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 9ba8dcc 139/311: Minor improvements to debbugs-reference.el, Stefan Monnier, 2020/11/29
- [elpa] externals/debbugs 8de636e 140/311: Rename debbugs-reference.el to debbugs-browse.el, Stefan Monnier, 2020/11/29