X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=buff-input.lisp;h=4868ba1690e293a9ab036b85159c5c11228239fd;hp=d5b54be534f13e0847d24bb20492e63c65b17c5d;hb=90225d9ba12f7a9116bcc923afdaf6e76a8c6728;hpb=d11d6cc43fd9227a8aeed28dc2cfecdbc587ec4a diff --git a/buff-input.lisp b/buff-input.lisp index d5b54be..4868ba1 100644 --- a/buff-input.lisp +++ b/buff-input.lisp @@ -167,13 +167,16 @@ (if (eql c +eof-char+) eof linebuffer))) (declare (character c)) (cond - ((char= c #\Newline) - (unless (zerop pos) - (setf (fill-pointer linebuffer) (1- pos))) - (setf done t)) - ((char= +eof-char+) - (setf done t)) - (t - (setf (char linebuffer pos) c) - (incf pos))))))) + ((>= pos +max-line+) + (warn "Line overflow") + (setf done t)) + ((char= c #\Newline) + (when (plusp pos) + (setf (fill-pointer linebuffer) (1- pos))) + (setf done t)) + ((char= +eof-char+) + (setf done t)) + (t + (setf (char linebuffer pos) c) + (incf pos)))))))