branch: externals/devdocs
commit d32ac6861e7a6d1e1b243bfef1e50af758d98669
Author: Augusto Stoffel <arstof...@gmail.com>
Commit: Augusto Stoffel <arstof...@gmail.com>

    Don't use an alist for browse-url-browser-function
    
    This is deprecated in Emacs 28
---
 devdocs.el | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/devdocs.el b/devdocs.el
index e5d404a..2906be2 100644
--- a/devdocs.el
+++ b/devdocs.el
@@ -199,14 +199,11 @@ This is an alist containing `entries' and `types'."
 
 (define-derived-mode devdocs-mode special-mode "DevDocs"
   "Major mode for viewing DevDocs documents."
-  (setq-local browse-url-browser-function
-              (cons '("\\`[^:]*\\'" . devdocs--browse-url)
-                    (if (functionp browse-url-browser-function)
-                        `(("." . ,browse-url-browser-function))
-                      browse-url-browser-function)))
-  (setq buffer-undo-list t
-        header-line-format devdocs-header-line
-        truncate-lines t))
+  (setq-local
+   browse-url-browser-function 'devdocs--browse-url
+   buffer-undo-list t
+   header-line-format devdocs-header-line
+   truncate-lines t))
 
 (defun devdocs-goto-target ()
   "Go to the original position in a DevDocs buffer."
@@ -305,22 +302,25 @@ fragment part of ENTRY.path."
       (devdocs-goto-target)
       (current-buffer))))
 
-(defun devdocs--browse-url (url &rest _)
+(defun devdocs--browse-url (url &rest args)
   "A suitable `browse-url-browser-function' for `devdocs-mode'.
 URL can be an internal link in a DevDocs document."
-  (let-alist (car devdocs--stack)
-    (let* ((dest (devdocs--path-expand url .path))
-           (file (devdocs--path-file dest))
-           (frag (devdocs--path-fragment dest))
-           (entry (seq-some (lambda (it)
-                              (when (let-alist it
-                                      (or (string= .path dest)
-                                          (string= .path file)))
-                                it))
-                            (alist-get 'entries (devdocs--index .doc)))))
-      (unless entry (error "Can't find `%s'" dest))
-      (when frag (push `(fragment . ,frag) entry))
-      (devdocs--render entry))))
+  (if (string-match-p ":" url)
+      (let ((browse-url-browser-function (default-value 
'browse-url-browser-function)))
+        (apply #'browse-url url args))
+    (let-alist (car devdocs--stack)
+      (let* ((dest (devdocs--path-expand url .path))
+             (file (devdocs--path-file dest))
+             (frag (devdocs--path-fragment dest))
+             (entry (seq-some (lambda (it)
+                                (when (let-alist it
+                                        (or (string= .path dest)
+                                            (string= .path file)))
+                                  it))
+                              (alist-get 'entries (devdocs--index .doc)))))
+        (unless entry (error "Can't find `%s'" dest))
+        (when frag (push `(fragment . ,frag) entry))
+        (devdocs--render entry)))))
 
 ;;; Lookup command
 

Reply via email to