0.8.18.10:
authorChristophe Rhodes <csr21@cam.ac.uk>
Sat, 1 Jan 2005 21:34:34 +0000 (21:34 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sat, 1 Jan 2005 21:34:34 +0000 (21:34 +0000)
Fix FORMATTER.COND.7 and similar;
... ~V[ uses only one argument to determine which clause (unless
the argument is NIL, of course)

NEWS
src/code/late-format.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index cc8769e..b788a54 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,9 @@ changes in sbcl-0.8.19 relative to sbcl-0.8.18:
     produces an error.  (thanks to Vincent Arkesteijn)
   * bug fix: NAMESTRING on pathnames with :WILD components in their
     directories works correctly.  (thanks to Artem V. Andreev)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** the FORMATTER-generated functions for ~V[ conditionals require
+       the correct number of arguments.
 
 changes in sbcl-0.8.18 relative to sbcl-0.8.17:
   * new feature: reloading changed shared object files with
index d758b0d..88ff777 100644 (file)
                 (error 'format-error
                        :complaint
                        "must specify exactly two sections"))
-            (expand-bind-defaults ((index (expand-next-arg))) params
+            (expand-bind-defaults ((index nil)) params
               (setf *only-simple-args* nil)
-              (let ((clauses nil))
+              (let ((clauses nil)
+                     (case `(or ,index ,(expand-next-arg))))
                 (when last-semi-with-colon-p
                   (push `(t ,@(expand-directive-list (pop sublists)))
                         clauses))
                     (push `(,(decf count)
                             ,@(expand-directive-list sublist))
                           clauses)))
-                `(case ,index ,@clauses)))))
+                `(case ,case ,@clauses)))))
      remaining)))
 
 (defun parse-conditional-directive (directives)
index 58be0a4..177d582 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.18.9"
+"0.8.18.10"