On Wed, 2 Mar 2005 19:24:33 +0100, Andreas Mohr <[EMAIL PROTECTED]> wrote: > > Do we even have to do anything on "F"? > "far" is long gone, right? As such simply silently ignore "F", right? >
Right now in current CVS, our *printf will handle any strings. For any type numbers (except %n), they are forwarded to libc's printf by first checking the format string for valid specifiers, and rebuilding it for libc. >From line 585 in dlls/msvcrt/wcs.c: else if( pf_is_valid_format( flags.Format ) ) { char fmt[20], number[40], *x = number; if( flags.FieldLength >= sizeof number ) x = HeapAlloc( GetProcessHeap(), 0, flags.FieldLength+1 ); pf_rebuild_format_string( fmt, &flags ); if( pf_is_double_format( flags.Format ) ) sprintf( number, fmt, va_arg(valist, double) ); Both pf_is_valid_format and pf_is_double_format will accept 'F' (tolowerred...) modifiers, and libc will parse it. Based on windows behavior, it probably should be ignored? Jesse