Fixed hole in gemini URL parsing.
[elpher.git] / elpher.el
index a17c403..19e78ef 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -987,7 +987,9 @@ For instance, the filename /a/b/../c/./d will reduce to /a/c/d"
   (let ((address (url-generic-parse-url url)))
     (unless (and (url-type address) (not (url-fullness address))) ;avoid mangling mailto: urls
       (setf (url-fullness address) t)
-      (unless (url-host address) ;if there is an explicit host, filenames are absolute
+      (if (url-host address) ;if there is an explicit host, filenames are absolute
+          (if (string-empty-p (url-filename address))
+              (setf (url-filename address) "/")) ;ensure empty filename is marked as absolute
         (setf (url-host address) (url-host (elpher-node-address elpher-current-node)))
         (unless (string-prefix-p "/" (url-filename address)) ;deal with relative links
           (setf (url-filename address)
@@ -1132,12 +1134,23 @@ For instance, the filename /a/b/../c/./d will reduce to /a/c/d"
                  (address (elpher-address-from-url (elpher-bookmark-url bookmark))))
              (elpher-insert-index-record display-string address)))
        (insert "No bookmarks found.\n")))
-   (insert "\n-----------------------\n\n"
+   (insert "\n-----------------------\n"
+           "\n"
            "- u: return to previous page\n"
            "- x: delete selected bookmark\n"
-           "- a: rename selected bookmark\n\n"
-           "Bookmarks are stored in the file "
-           (locate-user-emacs-file "elpher-bookmarks"))
+           "- a: rename selected bookmark\n"
+           "\n"
+           "Bookmarks are stored in the file ")
+   (let ((filename (locate-user-emacs-file "elpher-bookmarks"))
+         (help-string "RET,mouse-1: Open bookmarks file in new buffer for editing."))
+     (insert-text-button filename
+                         'face 'link
+                         'action (lambda (_)
+                                   (interactive)
+                                   (find-file filename))
+                         'follow-link t
+                         'help-echo help-string))
+   (insert "\n")
    (elpher-restore-pos)))