Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv22982
Modified Files: lists.lisp Log Message: Have nthcdr bail out when nil is encountered.
Date: Thu Mar 18 04:24:23 2004 Author: ffjeld
Index: movitz/losp/muerte/lists.lisp diff -u movitz/losp/muerte/lists.lisp:1.3 movitz/losp/muerte/lists.lisp:1.4 --- movitz/losp/muerte/lists.lisp:1.3 Tue Feb 3 04:57:49 2004 +++ movitz/losp/muerte/lists.lisp Thu Mar 18 04:24:23 2004 @@ -9,7 +9,7 @@ ;;;; Created at: Tue Dec 5 18:40:11 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: lists.lisp,v 1.3 2004/02/03 09:57:49 ffjeld Exp $ +;;;; $Id: lists.lisp,v 1.4 2004/03/18 09:24:23 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -133,7 +133,7 @@
(defun nthcdr (n list) (do () - ((= 0 n) list) + ((or (null list) (not (plusp n))) list) (decf n) (setf list (cdr list))))
@@ -200,10 +200,10 @@ (defun copy-list (list) (if (null list) nil - (do* ((new-list (cons (pop list) nil)) - (new-tail new-list (cdr new-tail))) - ((null list) new-list) - (setf (cdr new-tail) (cons (pop list) nil))))) + (let ((new-list (cons (pop list) nil))) + (do ((new-tail new-list (cdr new-tail))) + ((null list) new-list) + (setf (cdr new-tail) (cons (pop list) nil))))))
(defun list (&rest objects) (numargs-case