branch: master commit d968b5f5bafc70d86e602fc2ffe848d8cdbf96a0 Author: Michael Albinus <michael.albi...@gmx.de> Commit: Michael Albinus <michael.albi...@gmx.de>
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'. --- packages/debbugs/debbugs-reference.el | 22 ++++++++++++++++------ 1 files changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/debbugs/debbugs-reference.el b/packages/debbugs/debbugs-reference.el index 12664a0..e7dd6b6 100644 --- a/packages/debbugs/debbugs-reference.el +++ b/packages/debbugs/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