(setf pointer (nthcdr (1- start) pointer)))
(if pointer
(pop pointer)
- (oops))
- (if end
- (let ((n (- end start)))
- (declare (integer n))
- (when (minusp n)
- (oops))
- (when (plusp n)
- (loop repeat n
- do (rplaca pointer item))))
- (loop while pointer
- do (setf pointer (cdr (rplaca pointer item)))))))))
+ (oops)))
+ (if end
+ (let ((n (- end start)))
+ (declare (integer n))
+ (when (minusp n)
+ (oops))
+ (when (plusp n)
+ (loop repeat n
+ do (setf pointer (cdr (rplaca pointer item))))))
+ (loop while pointer
+ do (setf pointer (cdr (rplaca pointer item)))))))
+ sequence)
(defun vector-fill* (sequence item start end)
(with-array-data ((data sequence)
(frob sequence t)
(frob sequence nil))))
(typecase sequence
- (simple-vector (frob2))
- (simple-base-string (frob2))
+ #!+sb-unicode
+ ((simple-array character (*)) (frob2))
+ ((simple-array base-char (*)) (frob2))
(t (vector*-frob sequence))))
(declare (type (or index null) p))
(values f (and p (the index (- p offset)))))))))