diff --git a/asdf.lisp b/asdf.lisp index 84219350080b22b5d8ca7fbe4e59c5ebe118af63..6bf047e4febfea384124c4f22b071f309bbb86ab 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -531,18 +531,19 @@ return a list. If MAX is specified, then no more than max(1,MAX) components will be returned, starting the separation from the end, e.g. when called with arguments \"a.b.c.d.e\" :max 3 :separator \".\" it will return (\"a.b.c\" \"d\" \"e\")." - (let ((list nil) (words 0) (end (length string))) - (flet ((separatorp (char) (find char separator)) - (done () (return-from split (cons (subseq string 0 end) list)))) - (loop - :for start = (if (and max (>= words (1- max))) - (done) - (position-if #'separatorp string :end end :from-end t)) :do - (when (null start) - (done)) - (push (subseq string (1+ start) end) list) - (incf words) - (setf end start))))) + (block nil + (let ((list nil) (words 0) (end (length string))) + (flet ((separatorp (char) (find char separator)) + (done () (return (cons (subseq string 0 end) list)))) + (loop + :for start = (if (and max (>= words (1- max))) + (done) + (position-if #'separatorp string :end end :from-end t)) :do + (when (null start) + (done)) + (push (subseq string (1+ start) end) list) + (incf words) + (setf end start)))))) (defun split-name-type (filename) (destructuring-bind (name &optional type) diff --git a/test/run-tests.sh b/test/run-tests.sh index b9f4cf0a4789c551a3d8e5932dc0d0abf46b42be..f3962c6a35a9656f69de97c0bf62f6232b00337a 100755 --- a/test/run-tests.sh +++ b/test/run-tests.sh @@ -55,8 +55,10 @@ do_tests() { command=$1 eval=$2 fasl_ext=$3 rm -f *.$fasl_ext ~/.cache/common-lisp/"`pwd`"/*.$fasl_ext || true ( cd .. && $command $eval '(load "test/compile-asdf.lisp")' ) - if [ $? -eq 0 ] ; then - echo "Compiled OK" + if [ $? -ne 0 ] ; then + echo "Compilation FAILED" >&2 + else + echo "Compiled OK" >&2 test_count=0 test_pass=0 test_fail=0