src/parser/scanner-charbuf-impl.lisp: Use `replace' rather than a loop.
[sod] / src / parser / scanner-charbuf-impl.lisp
index 1919b69..414e1a8 100644 (file)
     (unless end (setf end (length seq)))
     (let ((i start) (n (- end start)))
       (labels ((copy (i buf start end)
-                (do ((j i (1+ j))
-                     (k start (1+ k)))
-                    ((>= k end))
-                  (setf (char seq j) (schar buf k))))
+                (replace seq buf :start1 i :start2 start :end2 end))
               (snarf (buf start end)
                 (let ((m (- end start)))
                   (cond ((< m n)