[movitz-cvs] CVS update: movitz/losp/muerte/sequences.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Wed Jan 28 21:06:13 UTC 2004


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv25889

Modified Files:
	sequences.lisp 
Log Message:
Fill might concievably work now.

Date: Wed Jan 28 16:06:11 2004
Author: ffjeld

Index: movitz/losp/muerte/sequences.lisp
diff -u movitz/losp/muerte/sequences.lisp:1.3 movitz/losp/muerte/sequences.lisp:1.4
--- movitz/losp/muerte/sequences.lisp:1.3	Wed Jan 28 15:25:58 2004
+++ movitz/losp/muerte/sequences.lisp	Wed Jan 28 16:06:08 2004
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Sep 11 14:19:23 2001
 ;;;;                
-;;;; $Id: sequences.lisp,v 1.3 2004/01/28 20:25:58 ffjeld Exp $
+;;;; $Id: sequences.lisp,v 1.4 2004/01/28 21:06:08 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -651,19 +651,20 @@
     (apply 'map-for-list function first-sequence more-sequences))
    (t (error "MAP not implemented."))))
 
-(defun fill (sequence item &key (start 0) (end (length sequence)))
+(defun fill (sequence item &key (start 0) end)
   "=> sequence"
   (sequence-dispatch sequence
     (list
-     (do ((p (nthcdr start sequence))
+     (do ((p (nthcdr start sequence) (cdr p))
 	  (i start (1+ i)))
-	 ((and end (>= i end)))
+	 ((or (null p) (and end (>= i end))))
        (setf (car p) item)))
     (vector
-     (with-subvector-accessor (sequence-ref sequence start end)
-       (do ((i start (1+ i)))
-	   ((>= i end))
-	 (setf (sequence-ref i) item)))))
+     (let ((end (or end (length sequence))))
+       (with-subvector-accessor (sequence-ref sequence start end)
+	 (do ((i start (1+ i)))
+	     ((>= i end))
+	   (setf (sequence-ref i) item))))))
   sequence)
 
 (defun replace (sequence-1 sequence-2 &key (start1 0) end1 (start2 0) end2)





More information about the Movitz-cvs mailing list