Bugs in printf?



Hi,
I'm having problems with fprint, not behaving as format in Lisp.

1- Tildes can only be printed in some places and not in others:

(%i1) :lisp(format t "~~ ~d" 4);
~ 4
NIL

(%i2) printf(true, "~~ ~d", 4);
printf: arguments exhausted.
 -- an error.  To debug this try debugmode(true);

2- Conditional formatting fails:

(%i3) :lisp(format t "~{~#[~;~d ~;~f ~;~a ~]~}~%" (list "numbers" 4 5));
numbers 4.0 5 
NIL

(%i4) printf(true, "~{~#[~;~d ~;~f ~;~a ~]~}~%", ["numbers", 4, 5]);
printf: argument can't be supplied to d-directive: numbers
 -- an error.  To debug this try debugmode(true);

I'm using a very recent CVS version.

Regards,
Jaime