branch: externals/debbugs
commit 9ba8dcc5460af534b5d2dcaea2f4d4893521a29d
Author: Michael Albinus <[email protected]>
Commit: Michael Albinus <[email protected]>
Minor improvements to debbugs-reference.el
* debbugs-reference.el (debbugs-browse-url): Check URL pointing to
debbugs.gnu.org.
(debbugs-reference-mode, debbugs-reference-prog-mode):
Use `add-function' and `remove-function'.
---
debbugs-reference.el | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/debbugs-reference.el b/debbugs-reference.el
index 12664a0..e7dd6b6 100644
--- a/debbugs-reference.el
+++ b/debbugs-reference.el
@@ -32,8 +32,16 @@
;;;###autoload
(defun debbugs-browse-url (url &optional _new-window)
- (when (and (stringp url) (string-match "[[:digit:]]+$" url))
- (debbugs-gnu-bugs (string-to-number (match-string 0 url)))))
+ (when (and (stringp url)
+ (string-match
+ (format
+ "^%s\\(%s\\)?\\([[:digit:]]+\\)$"
+ (regexp-quote "http://debbugs.gnu.org/")
+ (regexp-quote "cgi/bugreport.cgi?bug="))
+ url))
+ (debbugs-gnu-bugs (string-to-number (match-string 2 url)))
+ ;; Return t for add-function mechanery.
+ t))
;;;###autoload
(define-minor-mode debbugs-reference-mode
@@ -45,8 +53,9 @@ the mode if ARG is omitted or nil."
""
nil
(if debbugs-reference-mode
- (setq-local browse-url-browser-function 'debbugs-browse-url)
- (kill-local-variable 'browse-url-browser-function)))
+ (add-function
+ :before-until (local 'browse-url-browser-function) 'debbugs-browse-url)
+ (remove-function (local 'browse-url-browser-function)
'debbugs-browse-url)))
;;;###autoload
(define-minor-mode debbugs-reference-prog-mode
@@ -55,8 +64,9 @@ the mode if ARG is omitted or nil."
""
nil
(if debbugs-reference-prog-mode
- (setq-local browse-url-browser-function 'debbugs-browse-url)
- (kill-local-variable 'browse-url-browser-function)))
+ (add-function
+ :before-until (local 'browse-url-browser-function) 'debbugs-browse-url)
+ (remove-function (local 'browse-url-browser-function)
'debbugs-browse-url)))
(provide 'debbugs-reference)
;;; debbugs-reference.el ends here