r10985: actually apply diff
[kmrcl.git] / buff-input.lisp
index d5b54be534f13e0847d24bb20492e63c65b17c5d..4868ba1690e293a9ab036b85159c5c11228239fd 100644 (file)
                  (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)))))))