Use file:// for local file - 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 bb2be59d780c8ba98921bdd20ea3383a1c87fb93
DIR parent 97537fd28ac1ae938791dcacb09bb51180aaf9b8
HTML Author: Solene Rapenne <solene@perso.pw>
Date: Thu, 1 Feb 2018 19:47:02 +0100
Use file:// for local file
Diffstat:
M clic.lisp | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
---
DIR diff --git a/clic.lisp b/clic.lisp
@@ -111,6 +111,10 @@
"Used to display a line with a color"
(format t "~3A| ~a~a~a~%" (if line-number line-number "") (get-color color) text (get-color 'reset)))
+(defmacro foreach-buffer(&body code)
+ `(progn
+ (loop for line across *buffer* do ,@code)))
+
(defmacro easy-socket(&body code)
"avoid duplicated code used for sockets"
`(progn
@@ -374,9 +378,9 @@
(defun parse-url(url)
"parse a gopher url and return a location"
- (if (probe-file url)
+ (if (= 0 (search "file://" url))
(progn
- (load-file-menu url)
+ (load-file-menu (subseq url 7))
(make-location :host 'local-file
:port nil
:type "1"
@@ -445,9 +449,8 @@
;; dump raw informations
((string= "d" input)
- (loop for c across *buffer*
- do
- (format t "~a~%" c)))
+ (foreach-buffer
+ (format t "~a~%" line)))
;; exit
((or
@@ -482,9 +485,8 @@
(defun display-text-stdout()
"display the buffer to stdout"
- (loop for line across *buffer*
- do
- (format t "~a~%" line)))
+ (foreach-buffer
+ (format t "~a~%" line)))
(defun display-with-pager()
(let* ((uri (location-uri (car *history*)))
@@ -494,9 +496,8 @@
:direction :output
:if-does-not-exist :create
:if-exists :supersede)
- (loop for line across *buffer*
- do
- (format output "~a~%" line)))
+ (foreach-buffer
+ (format output "~a~%" line)))
(uiop:run-program (list (or (uiop:getenv "PAGER") "less") path)
:input :interactive
:output :interactive)))
@@ -545,9 +546,8 @@
(defun pipe-text(host port uri)
(getpage host port uri)
- (loop for line across *buffer*
- do
- (format t "~a~%" line)))
+ (foreach-buffer
+ (format t "~a~%" line)))
(defun pipe-binary(host port uri)
(easy-socket