X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=blobdiff_plain;f=elpher.el;h=ca3a82a1829014a5180db704109e0a922bebf46a;hb=692b730680ee7b2f4f0b1f7b0b68ac4b84d5d8b1;hp=53905ba5c0cb582fbdfe3e1b4fdc5ecf6751a8a2;hpb=4b21d59a7b8cdea8b311cdb96e014b8c07cc4e9b;p=elpher.git diff --git a/elpher.el b/elpher.el index 53905ba..ca3a82a 100644 --- a/elpher.el +++ b/elpher.el @@ -292,7 +292,9 @@ content and cursor position fields of the node." (defun elpher-insert-index (string) "Insert the index corresponding to STRING into the current buffer." - (dolist (line (split-string string "\r\n")) + ;; Should be able to split directly on CRLF, but some non-conformant + ;; LF-only servers sadly exist, hence the following. + (dolist (line (split-string (replace-regexp-in-string "\r" "" string) "\n")) (unless (= (length line) 0) (elpher-insert-index-record line)))) @@ -333,10 +335,10 @@ content and cursor position fields of the node." 'help-echo (format "mouse-1, RET: open %s on %s port %s" selector host port))) (pcase type - (?i (elpher-insert-margin) ; Information + (?i (elpher-insert-margin) ;; Information (insert (propertize display-string 'face 'elpher-info))) - (?h (elpher-insert-margin "W") ; Web link + (?h (elpher-insert-margin "W") ;; Web link (let ((url (elt (split-string selector "URL:") 1))) (insert-text-button display-string 'face 'elpher-url @@ -344,7 +346,7 @@ content and cursor position fields of the node." 'action #'elpher-click-url 'follow-link t 'help-echo (format "mouse-1, RET: open url %s" url)))) - (?.) ; Occurs at end of index, can safely ignore. + (?.) ;; Occurs at end of index, can safely ignore. (tp (elpher-insert-margin (concat (char-to-string tp) "?")) (insert (propertize display-string 'face 'elpher-unknown-face))))) @@ -679,11 +681,12 @@ The result is stored as a string in the variable ‘elpher-selector-string’." (interactive) (let* ((link-map (elpher-build-link-map))) (if link-map - (let* ((key (let ((completion-ignore-case t)) - (completing-read "Menu item: " link-map nil t))) - (b (cdr (assoc key link-map)))) - (goto-char (button-start b)) - (button-activate b))))) + (let ((key (let ((completion-ignore-case t)) + (completing-read "Directory entry/link (tab to autocomplete): " link-map nil t)))) + (if (and key (> (length key) 0)) + (let ((b (cdr (assoc key link-map)))) + (goto-char (button-start b)) + (button-activate b))))))) ;;; Mode and keymap ;;