imake history displaying a browseable gopher menu - clic - Clic is an command line interactive client for gopher written in Common LISP Err bitreich.org 70 hgit clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ URL:git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ bitreich.org 70 1Log /scm/clic/log.gph bitreich.org 70 1Files /scm/clic/files.gph bitreich.org 70 1Refs /scm/clic/refs.gph bitreich.org 70 1Tags /scm/clic/tag bitreich.org 70 1README /scm/clic/file/README.md.gph bitreich.org 70 1LICENSE /scm/clic/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 90c19265b9f782d0106bae0e2172a4e7d6f65477 /scm/clic/commit/90c19265b9f782d0106bae0e2172a4e7d6f65477.gph bitreich.org 70 1parent f79c520e1489d0c5a69ec274057e562db47d8369 /scm/clic/commit/f79c520e1489d0c5a69ec274057e562db47d8369.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Wed, 13 Nov 2019 19:20:43 +0100 Err bitreich.org 70 i Err bitreich.org 70 imake history displaying a browseable gopher menu Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M clic.1 | 2 +- Err bitreich.org 70 i M clic.lisp | 31 ++++++++++++++++++++++--------- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 23 insertions(+), 10 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/clic.1 b/clic.1 /scm/clic/file/clic.1.gph bitreich.org 70 i@@ -53,7 +53,7 @@ Follows the link numbered Err bitreich.org 70 i .It Cm p | / | cd .. Err bitreich.org 70 i Go to previous page. Err bitreich.org 70 i .It Cm h Err bitreich.org 70 i-Display the history. Err bitreich.org 70 i+Display the history as a browseable menu. Err bitreich.org 70 i .It Cm sNUMBER Err bitreich.org 70 i Show the full URL of link numbered Err bitreich.org 70 i .Cm NUMBER . Err bitreich.org 70 1diff --git a/clic.lisp b/clic.lisp /scm/clic/file/clic.lisp.gph bitreich.org 70 i@@ -40,7 +40,7 @@ Err bitreich.org 70 i ;;;; END C binding Err bitreich.org 70 i Err bitreich.org 70 i ;; structure to store links Err bitreich.org 70 i-(defstruct location host port type uri tls Err bitreich.org 70 i+(defstruct location host port type uri tls text Err bitreich.org 70 i :predicate) Err bitreich.org 70 i Err bitreich.org 70 i ;;;; kiosk mode Err bitreich.org 70 i@@ -207,13 +207,13 @@ Err bitreich.org 70 i ;; 0 text file Err bitreich.org 70 i (check "0" Err bitreich.org 70 i (setf (gethash line-number *links*) Err bitreich.org 70 i- (make-location :host host :port port :uri uri :type line-type )) Err bitreich.org 70 i+ (make-location :host host :port port :uri uri :type line-type :text text)) Err bitreich.org 70 i (print-with-color text 'file line-number)) Err bitreich.org 70 i Err bitreich.org 70 i ;; 1 directory Err bitreich.org 70 i (check "1" Err bitreich.org 70 i (setf (gethash line-number *links*) Err bitreich.org 70 i- (make-location :host host :port port :uri uri :type line-type )) Err bitreich.org 70 i+ (make-location :host host :port port :uri uri :type line-type :text text)) Err bitreich.org 70 i (print-with-color text 'folder line-number)) Err bitreich.org 70 i Err bitreich.org 70 i ;; 2 CSO phone-book Err bitreich.org 70 i@@ -239,7 +239,7 @@ Err bitreich.org 70 i ;; 7 Index search server Err bitreich.org 70 i (check "7" Err bitreich.org 70 i (setf (gethash line-number *links*) Err bitreich.org 70 i- (make-location :host host :port port :uri uri :type line-type )) Err bitreich.org 70 i+ (make-location :host host :port port :uri uri :type line-type :text text)) Err bitreich.org 70 i (print-with-color text 'red line-number)) Err bitreich.org 70 i Err bitreich.org 70 i ;; 8 Telnet session Err bitreich.org 70 i@@ -249,7 +249,7 @@ Err bitreich.org 70 i ;; 9 Binary Err bitreich.org 70 i (check "9" Err bitreich.org 70 i (setf (gethash line-number *links*) Err bitreich.org 70 i- (make-location :host host :port port :uri uri :type line-type )) Err bitreich.org 70 i+ (make-location :host host :port port :uri uri :type line-type :text text)) Err bitreich.org 70 i (print-with-color text 'red line-number)) Err bitreich.org 70 i Err bitreich.org 70 i ;; + redundant server Err bitreich.org 70 i@@ -263,13 +263,13 @@ Err bitreich.org 70 i ;; g GIF file Err bitreich.org 70 i (check "g" Err bitreich.org 70 i (setf (gethash line-number *links*) Err bitreich.org 70 i- (make-location :host host :port port :uri uri :type line-type)) Err bitreich.org 70 i+ (make-location :host host :port port :uri uri :type line-type :text text)) Err bitreich.org 70 i (print-with-color text 'red line-number)) Err bitreich.org 70 i Err bitreich.org 70 i ;; I image Err bitreich.org 70 i (check "I" Err bitreich.org 70 i (setf (gethash line-number *links*) Err bitreich.org 70 i- (make-location :host host :port port :uri uri :type line-type )) Err bitreich.org 70 i+ (make-location :host host :port port :uri uri :type line-type :text text)) Err bitreich.org 70 i (print-with-color text 'red line-number)) Err bitreich.org 70 i Err bitreich.org 70 i ;; h http link Err bitreich.org 70 i@@ -444,6 +444,7 @@ Err bitreich.org 70 i ((= 0 (or (search "file://" url) 1)) Err bitreich.org 70 i (load-file-menu (subseq url 7)) Err bitreich.org 70 i (make-location :host 'local-file Err bitreich.org 70 i+ :text url Err bitreich.org 70 i :port nil Err bitreich.org 70 i :type "1" Err bitreich.org 70 i :uri url)) Err bitreich.org 70 i@@ -465,6 +466,8 @@ Err bitreich.org 70 i (parse-integer (car host-port)) Err bitreich.org 70 i 70) Err bitreich.org 70 i Err bitreich.org 70 i+ :text url Err bitreich.org 70 i+ Err bitreich.org 70 i ;; if type is empty we default to "1" Err bitreich.org 70 i :type (let ((type (pop infos))) Err bitreich.org 70 i (if (< 0 (length type)) type "1")) Err bitreich.org 70 i@@ -528,7 +531,17 @@ Err bitreich.org 70 i Err bitreich.org 70 i ;; show history Err bitreich.org 70 i ((string= "h" input) Err bitreich.org 70 i- (format t "~{~a~%~}" *history*)) Err bitreich.org 70 i+ (setf *links* (make-hash-table)) Err bitreich.org 70 i+ (loop for element in *history* Err bitreich.org 70 i+ do Err bitreich.org 70 i+ (formatted-output Err bitreich.org 70 i+ (format nil "~a~a ~a ~a ~a~%" Err bitreich.org 70 i+ (location-type element) Err bitreich.org 70 i+ (location-text element) Err bitreich.org 70 i+ (location-uri element) Err bitreich.org 70 i+ (location-host element) Err bitreich.org 70 i+ (location-port element))))) Err bitreich.org 70 i+ Err bitreich.org 70 i Err bitreich.org 70 i ;; follow a link Err bitreich.org 70 i (t Err bitreich.org 70 i@@ -782,7 +795,7 @@ Err bitreich.org 70 i Err bitreich.org 70 i ;; if we didn't passed a url as parameter, use a default Err bitreich.org 70 i (if (not (location-p destination)) Err bitreich.org 70 i- (setf destination (make-location :host "gopherproject.org" :port 70 :uri "/" :type "1"))) Err bitreich.org 70 i+ (setf destination (make-location :host "gopherproject.org" :port 70 :uri "/" :type "1" :text "gopherproject"))) Err bitreich.org 70 i Err bitreich.org 70 i ;; is there an output redirection ? Err bitreich.org 70 i (if (ttyp) Err bitreich.org 70 .