X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-extensions.lisp;h=1ae8ae9b200514b13695eff4aa3db18279bf2b97;hb=b1b43e74be3d133bd1edf7d17adb607f8290331f;hp=bcfaafed4f0661e0f36b17689e63637e607c692c;hpb=df217516b1ee2c0d1fa241b97c540f2d8eb9a805;p=sbcl.git diff --git a/src/code/late-extensions.lisp b/src/code/late-extensions.lisp index bcfaafe..1ae8ae9 100644 --- a/src/code/late-extensions.lisp +++ b/src/code/late-extensions.lisp @@ -438,22 +438,15 @@ Works on all CASable places." finally (return (car ,old)))))) (defun split-version-string (string) - (loop - with start = 0 - and end = (length string) - while (and start (< start end)) - for subversion = (multiple-value-bind (subversion next) - (parse-integer string :start start - :junk-allowed t) - (setf start - (and subversion - next - (< next end) - (eql #\. (aref string next)) - (1+ next))) - subversion) - when subversion - collect subversion)) + (loop with subversion and start = 0 + with end = (length string) + when (setf (values subversion start) + (parse-integer string :start start :junk-allowed t)) + collect it + while (and subversion + (< start end) + (char= (char string start) #\.)) + do (incf start))) (defun version>= (x y) (unless (or x y)