iKiosk available when starting with a file - 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 3ac40e688ab155925394b223cb1daa934debb72a /scm/clic/commit/3ac40e688ab155925394b223cb1daa934debb72a.gph bitreich.org 70 1parent 610a464b61bb4cec0c22bbf71f667443aa7cfbf4 /scm/clic/commit/610a464b61bb4cec0c22bbf71f667443aa7cfbf4.gph bitreich.org 70 hAuthor: Solene Rapenne URL:mailto:solene@perso.pw bitreich.org 70 iDate: Tue, 10 Apr 2018 08:19:54 +0200 Err bitreich.org 70 i Err bitreich.org 70 iKiosk available when starting with a file Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M clic.lisp | 37 +++++++++++-------------------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 13 insertions(+), 24 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/clic.lisp b/clic.lisp /scm/clic/file/clic.lisp.gph bitreich.org 70 i@@ -335,7 +335,7 @@ Err bitreich.org 70 i (display-interactive-menu)) Err bitreich.org 70 i Err bitreich.org 70 i (defun load-file-menu(path) Err bitreich.org 70 i- Err bitreich.org 70 i+ "load a local file with a gophermap syntax and display it as a menu" Err bitreich.org 70 i ;; we set the buffer Err bitreich.org 70 i (setf *buffer* Err bitreich.org 70 i (make-array 200 Err bitreich.org 70 i@@ -348,8 +348,7 @@ Err bitreich.org 70 i (loop for line = (read-line stream nil nil) Err bitreich.org 70 i while line Err bitreich.org 70 i do Err bitreich.org 70 i- (vector-push line *buffer*))) Err bitreich.org 70 i- (display-interactive-menu)) Err bitreich.org 70 i+ (vector-push line *buffer*)))) Err bitreich.org 70 i Err bitreich.org 70 i (defun p() Err bitreich.org 70 i "browse to the previous link" Err bitreich.org 70 i@@ -375,7 +374,6 @@ Err bitreich.org 70 i Err bitreich.org 70 i (defun parse-url(url) Err bitreich.org 70 i "parse a gopher url and return a location" Err bitreich.org 70 i- Err bitreich.org 70 i (cond ((or Err bitreich.org 70 i (string= "--help" url) Err bitreich.org 70 i (string= "-h" url)) Err bitreich.org 70 i@@ -385,8 +383,14 @@ Err bitreich.org 70 i ((string= "-k" url) Err bitreich.org 70 i (setf *kiosk-mode* t)) Err bitreich.org 70 i Err bitreich.org 70 i- (t 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+ :port nil Err bitreich.org 70 i+ :type "1" Err bitreich.org 70 i+ :uri url)) Err bitreich.org 70 i Err bitreich.org 70 i+ (t Err bitreich.org 70 i (let ((url (if (search "gopher://" url) Err bitreich.org 70 i (subseq url 9) Err bitreich.org 70 i url))) Err bitreich.org 70 i@@ -692,26 +696,11 @@ Err bitreich.org 70 i display it and exit and finally, the redirected case where clic will Err bitreich.org 70 i print to stdout and exit." Err bitreich.org 70 i Err bitreich.org 70 i- (clear) Err bitreich.org 70 i+ ;;(clear) Err bitreich.org 70 i (ignore-errors ;; lisp is magic Err bitreich.org 70 i- (let ((destination Err bitreich.org 70 i- (let ((argv (get-argv))) Err bitreich.org 70 i- ;; parsing command line parameter Err bitreich.org 70 i- ;; if not empty we use it or we will use a default url Err bitreich.org 70 i- (if argv Err bitreich.org 70 i- ;; is it a file ? Err bitreich.org 70 i- (if (= 0 (or (search "file://" argv) 1)) Err bitreich.org 70 i- (progn Err bitreich.org 70 i- (load-file-menu (subseq argv 7)) Err bitreich.org 70 i- (make-location :host 'local-file Err bitreich.org 70 i- :port nil Err bitreich.org 70 i- :type "1" Err bitreich.org 70 i- :uri argv)) Err bitreich.org 70 i- ;; it's not a file, create a location Err bitreich.org 70 i- ;; it's either a list with parameters or a location Err bitreich.org 70 i- (if (listp argv) Err bitreich.org 70 i- (car (last (loop for element in argv collect (parse-url element)))) Err bitreich.org 70 i- (parse-url argv))))))) Err bitreich.org 70 i+ (let ((destination (car (last Err bitreich.org 70 i+ (loop for element in (get-argv) Err bitreich.org 70 i+ collect (parse-url element)))))) 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 .