[PATCH v3] ucrtbase: Implement some printf functions
Martin Storsjö
martin at martin.st
Tue Oct 27 14:37:15 CDT 2015
On Tue, 27 Oct 2015, Piotr Caban wrote:
> Hi,
>
> On 10/26/15 16:53, Martin Storsjo wrote:
>> --- a/dlls/msvcrt/printf.h
>> +++ b/dlls/msvcrt/printf.h
>> +static int FUNC_NAME(puts_clbk_str_c99)(void *ctx, int len, const APICHAR
>> *str)
> I think that it would be nicer if this function is added in wcs.c. Other
> callback functions are already added to files that uses them (e.g. file.c
> defines callbacks for functions printing to files).
Ok, that makes sense - will do.
>> /*********************************************************************
>> + * __stdio_common_vsprintf (MSVCRT.@)
>> + */
>> +int CDECL MSVCRT__stdio_common_vsprintf( unsigned __int64 options, char
>> *str, MSVCRT_size_t len, const char *format,
>> + MSVCRT__locale_t locale,
>> __ms_va_list valist )
>> +{
>> + static const char nullbyte = '\0';
>> + struct _str_ctx_a ctx = {len, str};
>> + int ret;
>> +
>> + ret = pf_printf_a(options & 2 ? puts_clbk_str_c99_a : puts_clbk_str_a,
>> + &ctx, format, locale, FALSE, FALSE, arg_clbk_valist, NULL,
>> &valist);
> Is there any guarantee that options can only equal 1 or 2? If not please add
> a FIXME for other values.
It probably can have other values as well - IIRC there are some flags that
alter the way that the conversion specifiers work as well, and passing 0
for options also seems to work for ucrtbase.dll - it kinda seems to behave
like the legacy mode but not quite. (Not sure if that ever actually gets
called somewhere like that, though.)
I'll add a FIXME for that - thanks!
// Martin
More information about the wine-devel
mailing list