msvcrt: Use proper flags instead of characters for printf flags.
Port 1a43c5de71
to msvcrt.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a6fb7be678
commit
e20756e9b8
|
@ -32,15 +32,6 @@
|
||||||
#define signbit(x) ((x) < 0)
|
#define signbit(x) ((x) < 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct FUNC_NAME(pf_flags_t)
|
|
||||||
{
|
|
||||||
APICHAR Sign, LeftAlign, Alternate, PadZero;
|
|
||||||
int FieldLength, Precision;
|
|
||||||
APICHAR IntegerLength, IntegerDouble, IntegerNative;
|
|
||||||
APICHAR WideString, NaturalString;
|
|
||||||
APICHAR Format;
|
|
||||||
} FUNC_NAME(pf_flags);
|
|
||||||
|
|
||||||
struct FUNC_NAME(_str_ctx) {
|
struct FUNC_NAME(_str_ctx) {
|
||||||
MSVCRT_size_t len;
|
MSVCRT_size_t len;
|
||||||
APICHAR *buf;
|
APICHAR *buf;
|
||||||
|
@ -80,7 +71,7 @@ static inline const APICHAR* FUNC_NAME(pf_parse_int)(const APICHAR *fmt, int *va
|
||||||
|
|
||||||
/* pf_fill: takes care of signs, alignment, zero and field padding */
|
/* pf_fill: takes care of signs, alignment, zero and field padding */
|
||||||
static inline int FUNC_NAME(pf_fill)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_fill)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
int len, FUNC_NAME(pf_flags) *flags, BOOL left)
|
int len, pf_flags *flags, BOOL left)
|
||||||
{
|
{
|
||||||
int i, r = 0, written;
|
int i, r = 0, written;
|
||||||
|
|
||||||
|
@ -88,9 +79,10 @@ static inline int FUNC_NAME(pf_fill)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ct
|
||||||
flags->Sign = 0;
|
flags->Sign = 0;
|
||||||
|
|
||||||
if(left && flags->Sign) {
|
if(left && flags->Sign) {
|
||||||
|
APICHAR ch = flags->Sign;
|
||||||
flags->FieldLength--;
|
flags->FieldLength--;
|
||||||
if(flags->PadZero)
|
if(flags->PadZero)
|
||||||
r = pf_puts(puts_ctx, 1, &flags->Sign);
|
r = pf_puts(puts_ctx, 1, &ch);
|
||||||
}
|
}
|
||||||
written = r;
|
written = r;
|
||||||
|
|
||||||
|
@ -110,7 +102,8 @@ static inline int FUNC_NAME(pf_fill)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ct
|
||||||
|
|
||||||
|
|
||||||
if(r>=0 && left && flags->Sign && !flags->PadZero) {
|
if(r>=0 && left && flags->Sign && !flags->PadZero) {
|
||||||
r = pf_puts(puts_ctx, 1, &flags->Sign);
|
APICHAR ch = flags->Sign;
|
||||||
|
r = pf_puts(puts_ctx, 1, &ch);
|
||||||
written += r;
|
written += r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +186,7 @@ static inline int FUNC_NAME(pf_output_str)(FUNC_NAME(puts_clbk) pf_puts, void *p
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int FUNC_NAME(pf_output_format_wstr)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_output_format_wstr)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
const MSVCRT_wchar_t *str, int len, FUNC_NAME(pf_flags) *flags, MSVCRT__locale_t locale)
|
const MSVCRT_wchar_t *str, int len, pf_flags *flags, MSVCRT__locale_t locale)
|
||||||
{
|
{
|
||||||
int r, ret;
|
int r, ret;
|
||||||
|
|
||||||
|
@ -223,7 +216,7 @@ static inline int FUNC_NAME(pf_output_format_wstr)(FUNC_NAME(puts_clbk) pf_puts,
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int FUNC_NAME(pf_output_format_str)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_output_format_str)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
const char *str, int len, FUNC_NAME(pf_flags) *flags, MSVCRT__locale_t locale)
|
const char *str, int len, pf_flags *flags, MSVCRT__locale_t locale)
|
||||||
{
|
{
|
||||||
int r, ret;
|
int r, ret;
|
||||||
|
|
||||||
|
@ -253,7 +246,7 @@ static inline int FUNC_NAME(pf_output_format_str)(FUNC_NAME(puts_clbk) pf_puts,
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int FUNC_NAME(pf_handle_string)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_handle_string)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
const void *str, int len, FUNC_NAME(pf_flags) *flags, MSVCRT__locale_t locale, BOOL legacy_wide)
|
const void *str, int len, pf_flags *flags, MSVCRT__locale_t locale, BOOL legacy_wide)
|
||||||
{
|
{
|
||||||
BOOL api_is_wide = sizeof(APICHAR) == sizeof(MSVCRT_wchar_t);
|
BOOL api_is_wide = sizeof(APICHAR) == sizeof(MSVCRT_wchar_t);
|
||||||
BOOL complement_is_narrow = legacy_wide ? api_is_wide : FALSE;
|
BOOL complement_is_narrow = legacy_wide ? api_is_wide : FALSE;
|
||||||
|
@ -267,9 +260,9 @@ static inline int FUNC_NAME(pf_handle_string)(FUNC_NAME(puts_clbk) pf_puts, void
|
||||||
return FUNC_NAME(pf_output_format_str)(pf_puts, puts_ctx, "(null)", 6, flags, locale);
|
return FUNC_NAME(pf_output_format_str)(pf_puts, puts_ctx, "(null)", 6, flags, locale);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if((flags->NaturalString && api_is_wide) || flags->WideString || flags->IntegerLength=='l')
|
if((flags->NaturalString && api_is_wide) || flags->WideString || flags->IntegerLength == LEN_LONG)
|
||||||
return FUNC_NAME(pf_output_format_wstr)(pf_puts, puts_ctx, str, len, flags, locale);
|
return FUNC_NAME(pf_output_format_wstr)(pf_puts, puts_ctx, str, len, flags, locale);
|
||||||
if((flags->NaturalString && !api_is_wide) || flags->IntegerLength == 'h')
|
if((flags->NaturalString && !api_is_wide) || flags->IntegerLength == LEN_SHORT)
|
||||||
return FUNC_NAME(pf_output_format_str)(pf_puts, puts_ctx, str, len, flags, locale);
|
return FUNC_NAME(pf_output_format_str)(pf_puts, puts_ctx, str, len, flags, locale);
|
||||||
|
|
||||||
if((flags->Format=='S' || flags->Format=='C') == complement_is_narrow)
|
if((flags->Format=='S' || flags->Format=='C') == complement_is_narrow)
|
||||||
|
@ -279,7 +272,7 @@ static inline int FUNC_NAME(pf_handle_string)(FUNC_NAME(puts_clbk) pf_puts, void
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int FUNC_NAME(pf_output_special_fp)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_output_special_fp)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
double v, FUNC_NAME(pf_flags) *flags, MSVCRT__locale_t locale,
|
double v, pf_flags *flags, MSVCRT__locale_t locale,
|
||||||
BOOL legacy_msvcrt_compat, BOOL three_digit_exp)
|
BOOL legacy_msvcrt_compat, BOOL three_digit_exp)
|
||||||
{
|
{
|
||||||
APICHAR pfx[16], sfx[8], *p;
|
APICHAR pfx[16], sfx[8], *p;
|
||||||
|
@ -297,7 +290,7 @@ static inline int FUNC_NAME(pf_output_special_fp)(FUNC_NAME(puts_clbk) pf_puts,
|
||||||
}
|
}
|
||||||
|
|
||||||
flags->Precision = -1;
|
flags->Precision = -1;
|
||||||
flags->PadZero = 0;
|
flags->PadZero = FALSE;
|
||||||
return FUNC_NAME(pf_output_format_str)(pf_puts, puts_ctx, str, -1, flags, locale);
|
return FUNC_NAME(pf_output_format_str)(pf_puts, puts_ctx, str, -1, flags, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -393,7 +386,7 @@ static inline int FUNC_NAME(pf_output_special_fp)(FUNC_NAME(puts_clbk) pf_puts,
|
||||||
len += r;
|
len += r;
|
||||||
|
|
||||||
flags->FieldLength = sfx_len;
|
flags->FieldLength = sfx_len;
|
||||||
flags->PadZero = '0';
|
flags->PadZero = TRUE;
|
||||||
flags->Precision = -1;
|
flags->Precision = -1;
|
||||||
flags->Sign = 0;
|
flags->Sign = 0;
|
||||||
#ifdef PRINTF_WIDE
|
#ifdef PRINTF_WIDE
|
||||||
|
@ -408,7 +401,7 @@ static inline int FUNC_NAME(pf_output_special_fp)(FUNC_NAME(puts_clbk) pf_puts,
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int FUNC_NAME(pf_output_hex_fp)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_output_hex_fp)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
double v, FUNC_NAME(pf_flags) *flags, MSVCRT__locale_t locale)
|
double v, pf_flags *flags, MSVCRT__locale_t locale)
|
||||||
{
|
{
|
||||||
const APICHAR digits[2][16] = {
|
const APICHAR digits[2][16] = {
|
||||||
{ '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' },
|
{ '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' },
|
||||||
|
@ -506,7 +499,7 @@ static inline int FUNC_NAME(pf_output_hex_fp)(FUNC_NAME(puts_clbk) pf_puts, void
|
||||||
len += r;
|
len += r;
|
||||||
|
|
||||||
flags->FieldLength = sfx_len;
|
flags->FieldLength = sfx_len;
|
||||||
flags->PadZero = '0';
|
flags->PadZero = TRUE;
|
||||||
flags->Sign = 0;
|
flags->Sign = 0;
|
||||||
#ifdef PRINTF_WIDE
|
#ifdef PRINTF_WIDE
|
||||||
r = FUNC_NAME(pf_output_format_wstr)(pf_puts, puts_ctx, sfx, -1, flags, locale);
|
r = FUNC_NAME(pf_output_format_wstr)(pf_puts, puts_ctx, sfx, -1, flags, locale);
|
||||||
|
@ -522,7 +515,7 @@ static inline int FUNC_NAME(pf_output_hex_fp)(FUNC_NAME(puts_clbk) pf_puts, void
|
||||||
/* pf_integer_conv: prints x to buf, including alternate formats and
|
/* pf_integer_conv: prints x to buf, including alternate formats and
|
||||||
additional precision digits, but not field characters or the sign */
|
additional precision digits, but not field characters or the sign */
|
||||||
static inline void FUNC_NAME(pf_integer_conv)(APICHAR *buf, int buf_len,
|
static inline void FUNC_NAME(pf_integer_conv)(APICHAR *buf, int buf_len,
|
||||||
FUNC_NAME(pf_flags) *flags, LONGLONG x)
|
pf_flags *flags, LONGLONG x)
|
||||||
{
|
{
|
||||||
unsigned int base;
|
unsigned int base;
|
||||||
const char *digits;
|
const char *digits;
|
||||||
|
@ -547,7 +540,7 @@ static inline void FUNC_NAME(pf_integer_conv)(APICHAR *buf, int buf_len,
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
if(x == 0) {
|
if(x == 0) {
|
||||||
flags->Alternate = 0;
|
flags->Alternate = FALSE;
|
||||||
if(flags->Precision)
|
if(flags->Precision)
|
||||||
buf[i++] = '0';
|
buf[i++] = '0';
|
||||||
} else {
|
} else {
|
||||||
|
@ -582,12 +575,12 @@ static inline void FUNC_NAME(pf_integer_conv)(APICHAR *buf, int buf_len,
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int FUNC_NAME(pf_output_fp)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
static inline int FUNC_NAME(pf_output_fp)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx,
|
||||||
double v, FUNC_NAME(pf_flags) *flags, MSVCRT__locale_t locale, BOOL three_digit_exp)
|
double v, pf_flags *flags, MSVCRT__locale_t locale, BOOL three_digit_exp)
|
||||||
{
|
{
|
||||||
int e2, e10 = 0, round_pos, round_limb, radix_pos, first_limb_len, i, len, r, ret;
|
int e2, e10 = 0, round_pos, round_limb, radix_pos, first_limb_len, i, len, r, ret;
|
||||||
APICHAR buf[LIMB_DIGITS + 1];
|
APICHAR buf[LIMB_DIGITS + 1];
|
||||||
BOOL trim_tail = FALSE;
|
BOOL trim_tail = FALSE;
|
||||||
FUNC_NAME(pf_flags) f;
|
pf_flags f;
|
||||||
int limb_len, prec;
|
int limb_len, prec;
|
||||||
struct bnum b;
|
struct bnum b;
|
||||||
ULONGLONG m;
|
ULONGLONG m;
|
||||||
|
@ -768,7 +761,7 @@ static inline int FUNC_NAME(pf_output_fp)(FUNC_NAME(puts_clbk) pf_puts, void *pu
|
||||||
ret = r;
|
ret = r;
|
||||||
|
|
||||||
f.Format = 'd';
|
f.Format = 'd';
|
||||||
f.PadZero = '0';
|
f.PadZero = TRUE;
|
||||||
if(flags->Format=='f' || flags->Format=='F') {
|
if(flags->Format=='f' || flags->Format=='F') {
|
||||||
if(radix_pos <= 0) {
|
if(radix_pos <= 0) {
|
||||||
buf[0] = '0';
|
buf[0] = '0';
|
||||||
|
@ -919,7 +912,7 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
|
||||||
const APICHAR *q, *p = fmt;
|
const APICHAR *q, *p = fmt;
|
||||||
APICHAR buf[32];
|
APICHAR buf[32];
|
||||||
int written = 0, pos, i;
|
int written = 0, pos, i;
|
||||||
FUNC_NAME(pf_flags) flags;
|
pf_flags flags;
|
||||||
BOOL positional_params = options & MSVCRT_PRINTF_POSITIONAL_PARAMS;
|
BOOL positional_params = options & MSVCRT_PRINTF_POSITIONAL_PARAMS;
|
||||||
BOOL invoke_invalid_param_handler = options & MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER;
|
BOOL invoke_invalid_param_handler = options & MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER;
|
||||||
#if _MSVCR_VER >= 140
|
#if _MSVCR_VER >= 140
|
||||||
|
@ -975,11 +968,11 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
|
||||||
if(flags.Sign != '+')
|
if(flags.Sign != '+')
|
||||||
flags.Sign = *p;
|
flags.Sign = *p;
|
||||||
} else if(*p == '-')
|
} else if(*p == '-')
|
||||||
flags.LeftAlign = *p;
|
flags.LeftAlign = TRUE;
|
||||||
else if(*p == '0')
|
else if(*p == '0')
|
||||||
flags.PadZero = *p;
|
flags.PadZero = TRUE;
|
||||||
else if(*p == '#')
|
else if(*p == '#')
|
||||||
flags.Alternate = *p;
|
flags.Alternate = TRUE;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -996,7 +989,7 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
|
||||||
|
|
||||||
flags.FieldLength = pf_args(args_ctx, i, VT_INT, valist).get_int;
|
flags.FieldLength = pf_args(args_ctx, i, VT_INT, valist).get_int;
|
||||||
if(flags.FieldLength < 0) {
|
if(flags.FieldLength < 0) {
|
||||||
flags.LeftAlign = '-';
|
flags.LeftAlign = TRUE;
|
||||||
flags.FieldLength = -flags.FieldLength;
|
flags.FieldLength = -flags.FieldLength;
|
||||||
}
|
}
|
||||||
} else while(isdigit(*p)) {
|
} else while(isdigit(*p)) {
|
||||||
|
@ -1026,39 +1019,37 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
|
||||||
/* parse argument size modifier */
|
/* parse argument size modifier */
|
||||||
while(*p) {
|
while(*p) {
|
||||||
if(*p=='l' && *(p+1)=='l') {
|
if(*p=='l' && *(p+1)=='l') {
|
||||||
flags.IntegerDouble++;
|
flags.IntegerDouble = TRUE;
|
||||||
p += 2;
|
|
||||||
} else if(*p=='h' || *p=='l' || *p=='L') {
|
|
||||||
flags.IntegerLength = *p;
|
|
||||||
p++;
|
p++;
|
||||||
|
} else if(*p=='l') {
|
||||||
|
flags.IntegerLength = LEN_LONG;
|
||||||
|
} else if(*p == 'h') {
|
||||||
|
flags.IntegerLength = LEN_SHORT;
|
||||||
} else if(*p == 'I') {
|
} else if(*p == 'I') {
|
||||||
if(*(p+1)=='6' && *(p+2)=='4') {
|
if(*(p+1)=='6' && *(p+2)=='4') {
|
||||||
flags.IntegerDouble++;
|
flags.IntegerDouble = TRUE;
|
||||||
p += 3;
|
p += 2;
|
||||||
} else if(*(p+1)=='3' && *(p+2)=='2')
|
} else if(*(p+1)=='3' && *(p+2)=='2')
|
||||||
p += 3;
|
p += 2;
|
||||||
else if(p[1] && strchr("diouxX", p[1]))
|
else if(p[1] && strchr("diouxX", p[1]))
|
||||||
flags.IntegerNative = *p++;
|
flags.IntegerNative = TRUE;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
} else if(*p == 'w')
|
} else if(*p == 'w')
|
||||||
flags.WideString = *p++;
|
flags.WideString = TRUE;
|
||||||
#if _MSVCR_VER == 0 || _MSVCR_VER >= 140
|
#if _MSVCR_VER == 0 || _MSVCR_VER >= 140
|
||||||
else if((*p == 'z' || *p == 't') && p[1] && strchr("diouxX", p[1]))
|
else if((*p == 'z' || *p == 't') && p[1] && strchr("diouxX", p[1]))
|
||||||
flags.IntegerNative = *p++;
|
flags.IntegerNative = TRUE;
|
||||||
else if(*p == 'j') {
|
else if(*p == 'j')
|
||||||
flags.IntegerDouble++;
|
flags.IntegerDouble = TRUE;
|
||||||
p++;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#if _MSVCR_VER >= 140
|
#if _MSVCR_VER >= 140
|
||||||
else if(*p == 'T')
|
else if(*p == 'T')
|
||||||
flags.NaturalString = *p++;
|
flags.NaturalString = TRUE;
|
||||||
#endif
|
#endif
|
||||||
else if((*p == 'F' || *p == 'N') && legacy_msvcrt_compat)
|
else if(*p != 'L' && ((*p != 'F' && *p != 'N') || !legacy_msvcrt_compat))
|
||||||
p++; /* ignore */
|
|
||||||
else
|
|
||||||
break;
|
break;
|
||||||
|
p++;
|
||||||
}
|
}
|
||||||
|
|
||||||
flags.Format = *p;
|
flags.Format = *p;
|
||||||
|
@ -1074,12 +1065,12 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
|
||||||
if(i < 0) i = 0; /* ignore conversion error */
|
if(i < 0) i = 0; /* ignore conversion error */
|
||||||
} else if(flags.Format == 'p') {
|
} else if(flags.Format == 'p') {
|
||||||
flags.Format = 'X';
|
flags.Format = 'X';
|
||||||
flags.PadZero = '0';
|
flags.PadZero = TRUE;
|
||||||
i = flags.Precision;
|
i = flags.Precision;
|
||||||
flags.Precision = 2*sizeof(void*);
|
flags.Precision = 2*sizeof(void*);
|
||||||
FUNC_NAME(pf_integer_conv)(buf, ARRAY_SIZE(buf), &flags,
|
FUNC_NAME(pf_integer_conv)(buf, ARRAY_SIZE(buf), &flags,
|
||||||
(ULONG_PTR)pf_args(args_ctx, pos, VT_PTR, valist).get_ptr);
|
(ULONG_PTR)pf_args(args_ctx, pos, VT_PTR, valist).get_ptr);
|
||||||
flags.PadZero = 0;
|
flags.PadZero = FALSE;
|
||||||
flags.Precision = i;
|
flags.Precision = i;
|
||||||
|
|
||||||
#ifdef PRINTF_WIDE
|
#ifdef PRINTF_WIDE
|
||||||
|
@ -1117,11 +1108,13 @@ int FUNC_NAME(pf_printf)(FUNC_NAME(puts_clbk) pf_puts, void *puts_ctx, const API
|
||||||
FUNC_NAME(pf_integer_conv)(tmp, max_len, &flags, pf_args(args_ctx, pos,
|
FUNC_NAME(pf_integer_conv)(tmp, max_len, &flags, pf_args(args_ctx, pos,
|
||||||
VT_I8, valist).get_longlong);
|
VT_I8, valist).get_longlong);
|
||||||
else if(flags.Format=='d' || flags.Format=='i')
|
else if(flags.Format=='d' || flags.Format=='i')
|
||||||
FUNC_NAME(pf_integer_conv)(tmp, max_len, &flags, flags.IntegerLength!='h' ?
|
FUNC_NAME(pf_integer_conv)(tmp, max_len, &flags,
|
||||||
|
flags.IntegerLength != LEN_SHORT ?
|
||||||
pf_args(args_ctx, pos, VT_INT, valist).get_int :
|
pf_args(args_ctx, pos, VT_INT, valist).get_int :
|
||||||
(short)pf_args(args_ctx, pos, VT_INT, valist).get_int);
|
(short)pf_args(args_ctx, pos, VT_INT, valist).get_int);
|
||||||
else
|
else
|
||||||
FUNC_NAME(pf_integer_conv)(tmp, max_len, &flags, flags.IntegerLength!='h' ?
|
FUNC_NAME(pf_integer_conv)(tmp, max_len, &flags,
|
||||||
|
flags.IntegerLength != LEN_SHORT ?
|
||||||
(unsigned)pf_args(args_ctx, pos, VT_INT, valist).get_int :
|
(unsigned)pf_args(args_ctx, pos, VT_INT, valist).get_int :
|
||||||
(unsigned short)pf_args(args_ctx, pos, VT_INT, valist).get_int);
|
(unsigned short)pf_args(args_ctx, pos, VT_INT, valist).get_int);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,15 @@
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
|
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
enum { LEN_DEFAULT, LEN_SHORT, LEN_LONG } IntegerLength;
|
||||||
|
BOOLEAN IntegerDouble, IntegerNative, LeftAlign, Alternate, PadZero;
|
||||||
|
BOOLEAN WideString, NaturalString;
|
||||||
|
int FieldLength, Precision;
|
||||||
|
char Sign, Format;
|
||||||
|
} pf_flags;
|
||||||
|
|
||||||
static BOOL n_format_enabled = TRUE;
|
static BOOL n_format_enabled = TRUE;
|
||||||
|
|
||||||
#include "printf.h"
|
#include "printf.h"
|
||||||
|
|
Loading…
Reference in New Issue