menu/text files were truncated when > 200 lines - 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 26a0eee532a51e2d82d31e7b8e791c34b1cc7cde DIR parent 8e4fb9b8579b02bd71c70cc83492ce2a39f18f54 HTML Author: Solene Rapenne <solene@perso.pw> Date: Thu, 31 May 2018 13:36:15 +0200 menu/text files were truncated when > 200 lines Diffstat: M clic.lisp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- DIR diff --git a/clic.lisp b/clic.lisp @@ -96,7 +96,7 @@ (defun copy-array(from) "return a new array containing the same elements as the parameter" - (let ((dest (make-array 200 + (let ((dest (make-array (length from) :fill-pointer 0 :initial-element nil :adjustable t))) @@ -297,8 +297,12 @@ ;; not binary ;; for each line we receive we store it in *buffer* (loop for line = (read-line stream nil nil) + count line into lines while line do + ;; increase array size if needed + (when (= lines (- (array-total-size *buffer*) 1)) + (adjust-array *buffer* (+ 200 (array-total-size *buffer*)))) (vector-push line *buffer*))) ;; we store the duration of the connection @@ -322,7 +326,7 @@ (defun filter-line(text) "display only lines containg text" (setf *previous-buffer* (copy-array *buffer*)) - (setf *buffer* (make-array 200 + (setf *buffer* (make-array 400 :fill-pointer 0 :initial-element nil :adjustable t))