((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
: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)))))
`(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))