X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=buff-input.lisp;h=4868ba1690e293a9ab036b85159c5c11228239fd;hp=d5b54be534f13e0847d24bb20492e63c65b17c5d;hb=28891eb28376f84c2d588aaffa7aff5100063c6b;hpb=a25eafbf8e7a0511e6f5d09f82b139db9efebfb4 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)))))))