| New reload command and we can end at anytime properly - clic - Clic is an comma… | |
| git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65… | |
| Log | |
| Files | |
| Refs | |
| Tags | |
| README | |
| LICENSE | |
| --- | |
| commit fdffd2e4d1c02050fcf6f441b6e0029d560c1449 | |
| parent 8ac8cdfbdce8d9159b195f1d1a15d9988033f29f | |
| Author: Solene Rapenne <[email protected]> | |
| Date: Thu, 16 Nov 2017 12:10:40 +0000 | |
| New reload command and we can end at anytime properly | |
| Diffstat: | |
| M clic.lisp | 54 +++++++++++++++++++++--------… | |
| M make-binary.lisp | 6 +++--- | |
| 2 files changed, 40 insertions(+), 20 deletions(-) | |
| --- | |
| diff --git a/clic.lisp b/clic.lisp | |
| @@ -235,6 +235,12 @@ | |
| (pop *history*) | |
| (visit (pop *history*)))) | |
| +(defun r() | |
| + "browse to the previous link" | |
| + (when (<= 1 (length *history*)) | |
| + (visit (pop *history*)))) | |
| + | |
| + | |
| (defun load-bookmark() | |
| "Restore the bookmark from file" | |
| (when (probe-file *bookmark-file*) | |
| @@ -324,28 +330,37 @@ | |
| (defun user-input(input) | |
| (cond | |
| ;; show help | |
| - ((string= "HELP" input) | |
| + ((string= "help" input) | |
| (help-shell)) | |
| ;; bookmark current link | |
| - ((string= "A" input) | |
| + ((string= "a" input) | |
| (add-bookmark)) | |
| ;; show bookmarks | |
| - ((string= "B" input) | |
| + ((string= "b" input) | |
| (show-bookmarks)) | |
| + ((or | |
| + (string= "ls" input) | |
| + (string= "r" input)) | |
| + (r)) | |
| + | |
| ;; go to previous page | |
| - ((string= "P" input) | |
| + ((or | |
| + (string= "cd .." input) | |
| + (string= "p" input)) | |
| (p)) | |
| ;; exit | |
| - ((or (string= "X" input) | |
| - (string= "Q" input)) | |
| - (quit)) | |
| + ((or | |
| + (string= "exit" input) | |
| + (string= "x" input) | |
| + (string= "q" input)) | |
| + 'end) | |
| ;; show history | |
| - ((string= "H" input) | |
| + ((string= "h" input) | |
| (format t "~{~a~%~}" *history*)) | |
| ;; follow a link | |
| @@ -423,12 +438,14 @@ | |
| (force-output) | |
| ;; we loop until X or Q is typed | |
| - (loop for input = (format nil "~a" (read nil nil)) | |
| + (loop for input = (format nil "~a" (read-line nil nil)) | |
| while (not (or | |
| - (string= "X" input) | |
| - (string= "Q" input))) | |
| + (string= "exit" input) | |
| + (string= "x" input) | |
| + (string= "q" input))) | |
| do | |
| - (user-input input) | |
| + (when (eq 'end (user-input input)) | |
| + (loop-finish)) | |
| (format t "clic => ") | |
| (force-output))) | |
| @@ -439,11 +456,14 @@ | |
| (if argv | |
| ;; url as argument | |
| (parse-url argv) | |
| - ;; default url | |
| - (make-location :host "bitreich.org" :port 70 :uri "/" :type "1"))… | |
| - (visit destination) | |
| - (when (string= "1" (location-type destination)) | |
| - (shell)))) | |
| + ;; default url | |
| + (make-location :host "bitreich.org" :port 70 :uri "/" :type "1"… | |
| + | |
| + ;; if user want to drop from first page we need | |
| + ;; to look it here | |
| + (when (not (eq 'end (visit destination))) | |
| + (when (string= "1" (location-type destination)) | |
| + (shell))))) | |
| ;; we allow ecl to use a new kind of argument | |
| ;; not sure how it works but that works | |
| diff --git a/make-binary.lisp b/make-binary.lisp | |
| @@ -1,5 +1,5 @@ | |
| -;; ecl produces a linked binary | |
| -;; while sbcl produces a static binary (but huge ~ 10Mb) | |
| +;; ecl produces a linked binary to ecl shared library | |
| +;; sbcl produces a static binary (~ 10Mb with compression / 70Mb without) | |
| #+ecl | |
| (require 'cmp) | |
| @@ -24,5 +24,5 @@ | |
| :executable t | |
| :toplevel 'main)) | |
| -(format t "INFO => Compilation done (or at least it should)~%") | |
| +(format t "INFO => Compilation done (or at least it should be)~%") | |
| (quit) |