MSVCRT printf functions
Juan Lang
juan_lang at yahoo.com
Thu Jan 6 15:23:47 CST 2005
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
More information about the wine-devel
mailing list