emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/osm d3f1340a16: Add geo: support to the osm command


From: ELPA Syncer
Subject: [elpa] externals/osm d3f1340a16: Add geo: support to the osm command
Date: Sat, 14 Jan 2023 17:58:02 -0500 (EST)

branch: externals/osm
commit d3f1340a160c539e0c7370545d417fc7a0402659
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Add geo: support to the osm command
    
    osm is a universal link jumper command
---
 osm.el | 35 ++++++++++++++---------------------
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/osm.el b/osm.el
index 51f8b2bbd6..0c82a515c0 100644
--- a/osm.el
+++ b/osm.el
@@ -1314,8 +1314,19 @@ When called interactively, call the function `osm-home'."
      (setq server (car server))
      (unless (and server (symbolp server)) (setq server nil)) ;; Ignore comment
      (osm--goto lat lon zoom server 'osm-link "Elisp Link"))
-    ((and `(,search) (guard (stringp search)))
-     (osm-search search))
+    ((and `(,url . ,_) (guard (stringp url)))
+       (if (string-match
+            
"\\`geo:\\([0-9.-]+\\),\\([0-9.-]+\\)\\(?:,[0-9.-]+\\)?\\(;.+\\'\\|\\'\\)" url)
+           (let* ((lat (string-to-number (match-string 1 url)))
+                  (lon (string-to-number (match-string 2 url)))
+                  (args (url-parse-args (match-string 3 url) ""))
+                  (zoom (cdr (assoc "z" args)))
+                  (server (cdr (assoc "s" args))))
+             (osm--goto lat lon
+                        (and zoom (string-to-number zoom))
+                        (and server (intern-soft server))
+                        'osm-link "Geo Link"))
+         (osm-search (string-remove-prefix "geo:" url))))
     (_ (error "Invalid osm link"))))
 
 ;;;###autoload
@@ -1573,25 +1584,7 @@ If the prefix argument LUCKY is non-nil take the first 
result and jump there."
     (message "Stored in the kill ring: %s" link)))
 
 ;;;###autoload
-(defun osm-browse-url (url &rest _)
-  "Open geo: URL with `osm-mode'."
-  (setq url (string-remove-prefix "geo:" url))
-  (cond
-   ((string-match
-     "\\`\\([0-9.-]+\\),\\([0-9.-]+\\)\\(?:,[0-9.-]+\\)?\\(;.+\\'\\|\\'\\)" 
url)
-    (let* ((lat (string-to-number (match-string 1 url)))
-           (lon (string-to-number (match-string 2 url)))
-           (args (url-parse-args (match-string 3 url) ""))
-           (zoom (cdr (assoc "z" args)))
-           (server (cdr (assoc "s" args))))
-      (osm--goto lat lon
-                 (and zoom (string-to-number zoom))
-                 (and server (intern-soft server))
-                 'osm-link "Geo Link")))
-   (t (osm-search url))))
-
-;;;###autoload
-(add-to-list 'browse-url-default-handlers '("\\`geo:" . osm-browse-url))
+(add-to-list 'browse-url-default-handlers '("\\`geo:" . osm))
 
 (dolist (sym (list #'osm-center #'osm-up #'osm-down #'osm-left #'osm-right
                    #'osm-up-up #'osm-down-down #'osm-left-left 
#'osm-right-right



reply via email to

[Prev in Thread] Current Thread [Next in Thread]