- [X] shift history out of node tree and into separate stack
- [ ] make history stack variables buffer-local
- [ ] have elpher-with-clean-buffer select appropriate buffer
-
-** OPEN Remove "redraw" command
-This is only necessary for returning from displaying the raw
-server response. If I can provide a better way of doing that
-then we can get rid of redraw entirely.
** OPEN Replace support for user-specified starting pages
This used to be available, but was removed during a refactor.
The last few will be made infinitely easier if we factor the
gopher "getter" code differently.
+** OPEN Implement Finger support
+
+** OPEN Add history browsing
+
* Bugs
* Completed improvements
This also means that non-gopher URLs will be explicitly represented
as such: no more abusing the "h" type for these.
+** INVALID Remove "redraw" command
+This is only necessary for returning from displaying the raw
+server response. If I can provide a better way of doing that
+then we can get rid of redraw entirely.
+
+Actually, this command can be useful to correct rendering issues that
+occasionally pop up in termal windows. Lets leave it for now.
+
* Closed issues
** CLOSED Org mode faces are not present in recent emacs versions
((gopher ?s) elpher-get-gopher-page elpher-render-download "snd" elpher-binary)
((gopher ?h) elpher-get-gopher-page elpher-render-html "htm" elpher-html)
(gemini elpher-get-gemini-page elpher-render-gemini "gem" elpher-gemini)
+ (finger elpher-get-finger-page elpher-render-text "txt" elpher-text)
(telnet elpher-get-telnet-page nil "tel" elpher-telnet)
(other-url elpher-get-other-url-page nil "url" elpher-other-url)
((special bookmarks) elpher-get-bookmarks-page nil "/" elpher-index)
(elpher-page-address elpher-current-page)
(buffer-string))))
+;; Finger page connection
+
+(defun elpher-get-finger-page (renderer)
+ "Opens a finger connection to the current page address and renders it using RENDERER."
+ (let* ((address (elpher-page-address elpher-current-page))
+ (host (elpher-address-host address))
+ (port (elpher-address-port address))
+ (content (elpher-get-cached-content address)))
+ (if (and content (funcall renderer nil))
+ (elpher-with-clean-buffer
+ (insert content)
+ (elpher-restore-pos))
+ (elpher-with-clean-buffer
+ (insert "LOADING... (use 'u' to cancel)"))
+ (condition-case the-error
+ (elpher-get-selector address renderer)
+ (error
+ (elpher-network-error address the-error))))))
+
+
;; Other URL page opening
(defun elpher-get-other-url-page (renderer)