Hi Aneurin, some style comments on your patch:
+<<<<<<< file.c +=======
This shouldn't be in your patch.
+typedef struct +{ + int flags; + unsigned int width; + __int64 precision; + const MSVCRT_wchar_t *input; + MSVCRT_wchar_t *output; + int HeapAlloced; + union + { + int intIn; + double doubleIn; + }; +} PRINTF_SPECIFIER;
The HeapAlloced flag shouldn't be upper-cased. A BOOL may make more sense too.
+PRINTF_SPECIFIER integertostringw(va_list *args, MSVCRT_wchar_t digits[], PRINTF_SPECIFIER specifier)
This calling convention is a little strange. It's more typical in C not to return "large" things on the stack, but to use pointers instead. Since you use the specifier in the following way:
+ specifier = charprocessw(va_arg(*args, int),specifier);
you may want to make the specifier an in/out parameter passed by pointer instead, e.g.
void integertostringw(va_list *args, MSVCRT_wchar_t digits[], PRINTF_SPECIFIER *specifier)
The calls would then look like:
+ charprocessw(va_arg(*args, int),&specifier);
Finally, your internal functions should be made static.
--Juan
__________________________________ Do you Yahoo!? All your favorites on one personal page � Try My Yahoo! http://my.yahoo.com