display current url in the prompt - clic - Clic is an command line interactive client for gopher written in Common LISP
HTML git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
DIR LICENSE
---
DIR commit a331d51d084fea91b64c85500a458999fbab23a6
DIR parent 25487c3c561873fda304042df02ed8c68575ce20
HTML Author: Solene Rapenne <solene@perso.pw>
Date: Thu, 28 Dec 2017 12:51:39 +0100
display current url in the prompt
Diffstat:
M clic.lisp | 33 +++++++++++++++++++------------
1 file changed, 20 insertions(+), 13 deletions(-)
---
DIR diff --git a/clic.lisp b/clic.lisp
@@ -81,13 +81,14 @@
(format nil "~a[~a;~am" #\Escape type hue)))
(defun get-color(name) (gethash name *colors*))
-(add-color 'red 1 31)
-(add-color 'white 0 70)
-(add-color 'folder 4 34)
-(add-color 'green 1 32)
-(add-color 'file 0 35)
-(add-color 'cyan 0 46)
-(add-color 'http 0 33)
+(add-color 'red 1 31)
+(add-color 'white 0 70)
+(add-color 'bg-black 0 40)
+(add-color 'folder 4 34)
+(add-color 'green 1 32)
+(add-color 'file 0 35)
+(add-color 'cyan 0 46)
+(add-color 'http 0 33)
;;;; END ANSI colors
;;;; is the output interactive or a pipe ?
@@ -429,8 +430,8 @@
(when (= row rows)
(setf row 0)
(format t "~a press enter or a shell command ~a : "
- (get-color 'cyan)
- (get-color 'white))
+ (get-color 'bg-black)
+ (get-color 'white))
(force-output)
(let ((first-input (read-char)))
(when (not (char= #\NewLine first-input))
@@ -486,11 +487,18 @@
(display-buffer (location-type destination)))
+(defun display-prompt()
+ (let ((last-page (car *history*)))
+ (format t "gopher://~a:~a/~a~a : "
+ (location-host last-page)
+ (location-port last-page)
+ (location-type last-page)
+ (location-uri last-page)))
+ (force-output))
(defun shell()
"Shell for user interaction"
- (format t "clic => ")
- (force-output)
+ (display-prompt)
;; we loop until X or Q is typed
(loop for input = (format nil "~a" (read-line nil nil))
@@ -501,8 +509,7 @@
do
(when (eq 'end (user-input input))
(loop-finish))
- (format t "clic => ")
- (force-output)))
+ (display-prompt)))
(defun main()
"fetch argument, display page and go to shell if type is 1"