X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flate-format.lisp;h=8c5c0c5c4dcb2b356e12e4dbb5b7ace4133d5182;hb=4b13aa3a7f0f4c6249e2787f4171e3c362d634c1;hp=4e262c063b7aee48ca43316155143cb13e52a64c;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/src/code/late-format.lisp b/src/code/late-format.lisp index 4e262c0..8c5c0c5 100644 --- a/src/code/late-format.lisp +++ b/src/code/late-format.lisp @@ -78,7 +78,11 @@ ((and block (char= char #\;) (format-directive-colonp directive)) (setf semicolon directive)) ((char= char #\>) - (aver block) + (unless block + (error 'format-error + :complaint "~~> without a matching ~~<" + :control-string string + :offset next-directive)) (cond ((format-directive-colonp directive) (unless pprint @@ -233,11 +237,13 @@ :offset ,(cdr arg))) args)) (return `(lambda (stream &optional ,@args &rest args) + (declare (ignorable stream)) ,guts args)))) (let ((*orig-args-available* t) (*only-simple-args* nil)) `(lambda (stream &rest orig-args) + (declare (ignorable stream)) (let ((args orig-args)) ,(expand-control-string control-string) args))))) @@ -477,8 +483,10 @@ `(format-print-integer stream ,(expand-next-arg) ,colonp ,atsignp ,base ,mincol ,padchar ,commachar ,commainterval)) - `(write ,(expand-next-arg) :stream stream :base ,base :radix nil - :escape nil))) + `(let ((*print-base* ,base) + (*print-radix* nil) + (*print-escape* nil)) + (output-object ,(expand-next-arg) stream)))) (def-format-directive #\D (colonp atsignp params) (expand-format-integer 10 colonp atsignp params))