mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-13 08:53:20 +00:00
ICU-2256 Deprecate %K and %U. Replace with %C and %S
X-SVN-Rev: 13214
This commit is contained in:
parent
510eec40ad
commit
d200f4a8e5
5 changed files with 96 additions and 161 deletions
|
@ -73,9 +73,9 @@
|
|||
#define UFMT_SPELLOUT {ufmt_double, u_scanf_spellout_handler}
|
||||
/* P */
|
||||
#define UFMT_PERCENT {ufmt_double, u_scanf_percent_handler}
|
||||
/* K */
|
||||
/* C K is old format */
|
||||
#define UFMT_UCHAR {ufmt_uchar, u_scanf_uchar_handler}
|
||||
/* U */
|
||||
/* S U is old format */
|
||||
#define UFMT_USTRING {ufmt_ustring, u_scanf_ustring_handler}
|
||||
|
||||
|
||||
|
@ -889,14 +889,14 @@ static const u_sscanf_info g_u_sscanf_infos[USCANF_NUM_FMT_HANDLERS] = {
|
|||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
/* 0x40 */
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_SCIENTIFIC, UFMT_EMPTY, UFMT_SCIDBL,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_UCHAR,
|
||||
UFMT_EMPTY, UFMT_SCIENTIFIC, UFMT_EMPTY, UFMT_SCIDBL,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_UCHAR/*deprecated*/,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
/* 0x50 */
|
||||
UFMT_PERCENT, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_USTRING, UFMT_SPELLOUT, UFMT_EMPTY,
|
||||
UFMT_PERCENT, UFMT_EMPTY, UFMT_EMPTY, UFMT_USTRING,
|
||||
UFMT_EMPTY, UFMT_USTRING/*deprecated*/,UFMT_SPELLOUT, UFMT_EMPTY,
|
||||
UFMT_HEX, UFMT_EMPTY, UFMT_EMPTY, UFMT_SCANSET,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
|
@ -972,50 +972,23 @@ u_vsscanf_u(const UChar *buffer,
|
|||
if(info > ufmt_simple_percent) {
|
||||
switch(info) {
|
||||
|
||||
case ufmt_char:
|
||||
case ufmt_uchar:
|
||||
case ufmt_int:
|
||||
case ufmt_string:
|
||||
case ufmt_ustring:
|
||||
case ufmt_pointer:
|
||||
case ufmt_float:
|
||||
case ufmt_double:
|
||||
args.ptrValue = va_arg(ap, void*);
|
||||
break;
|
||||
|
||||
case ufmt_count:
|
||||
args.intValue = va_arg(ap, int);
|
||||
/* set the spec's width to the # of items converted */
|
||||
spec.fInfo.fWidth = converted;
|
||||
break;
|
||||
|
||||
case ufmt_char:
|
||||
case ufmt_uchar:
|
||||
case ufmt_int:
|
||||
args.ptrValue = va_arg(ap, int*);
|
||||
break;
|
||||
|
||||
case ufmt_wchar:
|
||||
args.ptrValue = va_arg(ap, wchar_t*);
|
||||
break;
|
||||
|
||||
case ufmt_string:
|
||||
args.ptrValue = va_arg(ap, char*);
|
||||
break;
|
||||
|
||||
case ufmt_wstring:
|
||||
args.ptrValue = va_arg(ap, wchar_t*);
|
||||
break;
|
||||
|
||||
case ufmt_pointer:
|
||||
args.ptrValue = va_arg(ap, void*);
|
||||
break;
|
||||
|
||||
case ufmt_float:
|
||||
args.ptrValue = va_arg(ap, float*);
|
||||
break;
|
||||
|
||||
case ufmt_double:
|
||||
args.ptrValue = va_arg(ap, double*);
|
||||
break;
|
||||
|
||||
case ufmt_date:
|
||||
args.ptrValue = va_arg(ap, UDate*);
|
||||
break;
|
||||
|
||||
case ufmt_ustring:
|
||||
args.ptrValue = va_arg(ap, UChar*);
|
||||
break;
|
||||
|
||||
default:
|
||||
break; /* Should never get here */
|
||||
}
|
||||
|
@ -1052,3 +1025,4 @@ u_vsscanf_u(const UChar *buffer,
|
|||
}
|
||||
|
||||
#endif /* #if !UCONFIG_NO_FORMATTING */
|
||||
|
||||
|
|
|
@ -31,21 +31,21 @@
|
|||
*/
|
||||
enum ufmt_type_info
|
||||
{
|
||||
ufmt_empty = 0,
|
||||
ufmt_simple_percent, /* %% do nothing */
|
||||
ufmt_count, /* special flag for count */
|
||||
ufmt_int, /* int */
|
||||
ufmt_char, /* int, cast to char */
|
||||
ufmt_wchar, /* wchar_t */
|
||||
ufmt_string, /* char* */
|
||||
ufmt_wstring, /* wchar_t* */
|
||||
ufmt_pointer, /* void* */
|
||||
ufmt_float, /* float */
|
||||
ufmt_double, /* double */
|
||||
ufmt_date, /* Date */
|
||||
ufmt_uchar, /* int, cast to UChar */
|
||||
ufmt_ustring, /* UChar* */
|
||||
ufmt_last
|
||||
ufmt_empty = 0,
|
||||
ufmt_simple_percent, /* %% do nothing */
|
||||
ufmt_count, /* special flag for count */
|
||||
ufmt_int, /* int */
|
||||
ufmt_char, /* int, cast to char */
|
||||
ufmt_string, /* char* */
|
||||
ufmt_pointer, /* void* */
|
||||
ufmt_float, /* float */
|
||||
ufmt_double, /* double */
|
||||
ufmt_uchar, /* int, cast to UChar */
|
||||
ufmt_ustring, /* UChar* */
|
||||
/*ufmt_wchar,*/ /* wchar_t */
|
||||
/*ufmt_wstring,*/ /* wchar_t* */
|
||||
/*ufmt_date,*/ /* Date */
|
||||
ufmt_last
|
||||
};
|
||||
typedef enum ufmt_type_info ufmt_type_info;
|
||||
|
||||
|
@ -53,12 +53,12 @@ typedef enum ufmt_type_info ufmt_type_info;
|
|||
* Union representing a uprintf/uscanf argument
|
||||
*/
|
||||
union ufmt_args {
|
||||
signed int intValue; /* int, UChar */ /* TODO: Should int32_t be used instead of int? */
|
||||
float floatValue; /* float */
|
||||
double doubleValue; /* double */
|
||||
void *ptrValue; /* any pointer - void*, char*, wchar_t*, UChar* */
|
||||
wchar_t wcharValue; /* wchar_t */ /* TODO: Should wchar_t be used? */
|
||||
UDate dateValue; /* Date */
|
||||
signed int intValue; /* int, UChar */ /* TODO: Should int32_t be used instead of int? */
|
||||
float floatValue; /* float */
|
||||
double doubleValue; /* double */
|
||||
void *ptrValue; /* any pointer - void*, char*, wchar_t*, UChar* */
|
||||
/*wchar_t wcharValue;*/ /* wchar_t */ /* TODO: Should wchar_t be used? */
|
||||
/*UDate dateValue;*/ /* Date */
|
||||
};
|
||||
typedef union ufmt_args ufmt_args;
|
||||
|
||||
|
|
|
@ -62,9 +62,9 @@
|
|||
#define UFMT_SPELLOUT {ufmt_double, u_printf_spellout_handler}
|
||||
/* P */
|
||||
#define UFMT_PERCENT {ufmt_double, u_printf_percent_handler}
|
||||
/* K */
|
||||
/* C K is old format */
|
||||
#define UFMT_UCHAR {ufmt_uchar, u_printf_uchar_handler}
|
||||
/* U */
|
||||
/* S U is old format */
|
||||
#define UFMT_USTRING {ufmt_ustring, u_printf_ustring_handler}
|
||||
|
||||
|
||||
|
@ -897,14 +897,14 @@ static const u_printf_info g_u_printf_infos[UPRINTF_NUM_FMT_HANDLERS] = {
|
|||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
/* 0x40 */
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_SCIENTIFIC, UFMT_EMPTY, UFMT_SCIDBL,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_UCHAR,
|
||||
UFMT_EMPTY, UFMT_SCIENTIFIC, UFMT_EMPTY, UFMT_SCIDBL,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_UCHAR/*deprecated*/,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
/* 0x50 */
|
||||
UFMT_PERCENT, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_USTRING, UFMT_SPELLOUT, UFMT_EMPTY,
|
||||
UFMT_PERCENT, UFMT_EMPTY, UFMT_EMPTY, UFMT_USTRING,
|
||||
UFMT_EMPTY, UFMT_USTRING/*deprecated*/,UFMT_SPELLOUT, UFMT_EMPTY,
|
||||
UFMT_HEX, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
|
@ -1250,39 +1250,26 @@ u_printf_print_spec(const u_printf_stream_handler *streamHandler,
|
|||
argType = g_u_printf_infos[ handlerNum ].info;
|
||||
if(argType > ufmt_simple_percent) {
|
||||
switch(argType) {
|
||||
case ufmt_char:
|
||||
case ufmt_uchar:
|
||||
case ufmt_int:
|
||||
args.intValue = va_arg(*ap, int);
|
||||
break;
|
||||
case ufmt_wchar:
|
||||
args.wcharValue = va_arg(*ap, wchar_t);
|
||||
break;
|
||||
case ufmt_string:
|
||||
args.ptrValue = va_arg(*ap, char*);
|
||||
break;
|
||||
case ufmt_wstring:
|
||||
args.ptrValue = va_arg(*ap, wchar_t*);
|
||||
break;
|
||||
case ufmt_ustring:
|
||||
args.ptrValue = va_arg(*ap, UChar*);
|
||||
break;
|
||||
case ufmt_count:
|
||||
/* set the spec's width to the # of chars written */
|
||||
info->fWidth = *written;
|
||||
/* fall through to set the pointer */
|
||||
case ufmt_string:
|
||||
case ufmt_ustring:
|
||||
case ufmt_pointer:
|
||||
args.ptrValue = va_arg(*ap, void*);
|
||||
break;
|
||||
case ufmt_char:
|
||||
case ufmt_uchar:
|
||||
case ufmt_int:
|
||||
args.intValue = va_arg(*ap, int);
|
||||
break;
|
||||
case ufmt_float:
|
||||
args.floatValue = (float) va_arg(*ap, double);
|
||||
break;
|
||||
case ufmt_double:
|
||||
args.doubleValue = va_arg(*ap, double);
|
||||
break;
|
||||
case ufmt_date:
|
||||
args.dateValue = va_arg(*ap, UDate);
|
||||
break;
|
||||
default:
|
||||
break; /* Should never get here */
|
||||
}
|
||||
|
|
|
@ -75,9 +75,9 @@
|
|||
#define UFMT_SPELLOUT {ufmt_double, u_scanf_spellout_handler}
|
||||
/* P */
|
||||
#define UFMT_PERCENT {ufmt_double, u_scanf_percent_handler}
|
||||
/* K */
|
||||
/* C K is old format */
|
||||
#define UFMT_UCHAR {ufmt_uchar, u_scanf_uchar_handler}
|
||||
/* U */
|
||||
/* S U is old format */
|
||||
#define UFMT_USTRING {ufmt_ustring, u_scanf_ustring_handler}
|
||||
|
||||
|
||||
|
@ -916,14 +916,14 @@ static const u_scanf_info g_u_scanf_infos[USCANF_NUM_FMT_HANDLERS] = {
|
|||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
/* 0x40 */
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_SCIENTIFIC, UFMT_EMPTY, UFMT_SCIDBL,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_UCHAR,
|
||||
UFMT_EMPTY, UFMT_SCIENTIFIC, UFMT_EMPTY, UFMT_SCIDBL,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_UCHAR/*deprecated*/,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
/* 0x50 */
|
||||
UFMT_PERCENT, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
UFMT_EMPTY, UFMT_USTRING, UFMT_SPELLOUT, UFMT_EMPTY,
|
||||
UFMT_PERCENT, UFMT_EMPTY, UFMT_EMPTY, UFMT_USTRING,
|
||||
UFMT_EMPTY, UFMT_USTRING/*deprecated*/,UFMT_SPELLOUT, UFMT_EMPTY,
|
||||
UFMT_HEX, UFMT_EMPTY, UFMT_EMPTY, UFMT_SCANSET,
|
||||
UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY, UFMT_EMPTY,
|
||||
|
||||
|
@ -989,50 +989,23 @@ u_vfscanf_u(UFILE *f,
|
|||
if(info > ufmt_simple_percent) {
|
||||
switch(info) {
|
||||
|
||||
case ufmt_char:
|
||||
case ufmt_uchar:
|
||||
case ufmt_int:
|
||||
case ufmt_string:
|
||||
case ufmt_ustring:
|
||||
case ufmt_pointer:
|
||||
case ufmt_float:
|
||||
case ufmt_double:
|
||||
args.ptrValue = va_arg(ap, void*);
|
||||
break;
|
||||
|
||||
case ufmt_count:
|
||||
args.intValue = va_arg(ap, int);
|
||||
/* set the spec's width to the # of items converted */
|
||||
spec.fInfo.fWidth = converted;
|
||||
break;
|
||||
|
||||
case ufmt_char:
|
||||
case ufmt_uchar:
|
||||
case ufmt_int:
|
||||
args.ptrValue = va_arg(ap, int*);
|
||||
break;
|
||||
|
||||
case ufmt_wchar:
|
||||
args.ptrValue = va_arg(ap, wchar_t*);
|
||||
break;
|
||||
|
||||
case ufmt_string:
|
||||
args.ptrValue = va_arg(ap, char*);
|
||||
break;
|
||||
|
||||
case ufmt_wstring:
|
||||
args.ptrValue = va_arg(ap, wchar_t*);
|
||||
break;
|
||||
|
||||
case ufmt_pointer:
|
||||
args.ptrValue = va_arg(ap, void*);
|
||||
break;
|
||||
|
||||
case ufmt_float:
|
||||
args.ptrValue = va_arg(ap, float*);
|
||||
break;
|
||||
|
||||
case ufmt_double:
|
||||
args.ptrValue = va_arg(ap, double*);
|
||||
break;
|
||||
|
||||
case ufmt_date:
|
||||
args.ptrValue = va_arg(ap, UDate*);
|
||||
break;
|
||||
|
||||
case ufmt_ustring:
|
||||
args.ptrValue = va_arg(ap, UChar*);
|
||||
break;
|
||||
|
||||
default:
|
||||
break; /* Should never get here */
|
||||
}
|
||||
|
@ -1069,3 +1042,4 @@ u_vfscanf_u(UFILE *f,
|
|||
}
|
||||
|
||||
#endif /* #if !UCONFIG_NO_FORMATTING */
|
||||
|
||||
|
|
|
@ -83,11 +83,11 @@ static void TestFileFromICU(UFILE *myFile) {
|
|||
u_fprintf(myFile, "Uppercase float %%G: %G\n", myFloat);
|
||||
// u_fprintf(myFile, "Pointer %%p: %p\n", myFile);
|
||||
u_fprintf(myFile, "Char %%c: %c\n", 'A');
|
||||
u_fprintf(myFile, "UChar %%K (non-ANSI, should be %%C for Microsoft?): %K\n", L'A');
|
||||
u_fprintf(myFile, "UChar %%C: %C\n", L'A');
|
||||
u_fprintf(myFile, "String %%s: %s\n", "My-String");
|
||||
u_fprintf(myFile, "NULL String %%s: %s\n", NULL);
|
||||
u_fprintf(myFile, "Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U\n", L"My-String");
|
||||
u_fprintf(myFile, "NULL Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U\n", NULL);
|
||||
u_fprintf(myFile, "Unicode String %%S: %S\n", L"My-String");
|
||||
u_fprintf(myFile, "NULL Unicode String %%S: %S\n", NULL);
|
||||
u_fprintf(myFile, "Percent %%P (non-ANSI): %P\n", myFloat);
|
||||
u_fprintf(myFile, "Spell Out %%V (non-ANSI): %V\n", myFloat);
|
||||
|
||||
|
@ -185,7 +185,7 @@ static void TestFileFromICU(UFILE *myFile) {
|
|||
if (*myString != 'A') {
|
||||
log_err("%%c Got: %c, Expected: A\n", *myString);
|
||||
}
|
||||
u_fscanf(myFile, "UChar %%K (non-ANSI, should be %%C for Microsoft?): %K\n", myUString);
|
||||
u_fscanf(myFile, "UChar %%C: %C\n", myUString);
|
||||
if (*myUString != L'A') {
|
||||
log_err("%%C Got: %C, Expected: A\n", *myUString);
|
||||
}
|
||||
|
@ -197,12 +197,12 @@ static void TestFileFromICU(UFILE *myFile) {
|
|||
if (strcmp(myString, "(null)")) {
|
||||
log_err("%%s Got: %s, Expected: My String\n", myString);
|
||||
}
|
||||
u_fscanf(myFile, "Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U\n", myUString);
|
||||
u_fscanf(myFile, "Unicode String %%S: %S\n", myUString);
|
||||
u_austrncpy(myString, myUString, sizeof(myUString)/sizeof(*myUString));
|
||||
if (strcmp(myString, "My-String")) {
|
||||
log_err("%%S Got: %S, Expected: My String\n", myUString);
|
||||
}
|
||||
u_fscanf(myFile, "NULL Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U\n", myUString);
|
||||
u_fscanf(myFile, "NULL Unicode String %%S: %S\n", myUString);
|
||||
u_austrncpy(myString, myUString, sizeof(myUString)/sizeof(*myUString));
|
||||
if (strcmp(myString, "(null)")) {
|
||||
log_err("%%S Got: %S, Expected: My String\n", myUString);
|
||||
|
@ -1021,8 +1021,8 @@ static void TestString() {
|
|||
log_err("%%c Got: %c, Expected: A\n", *myString);
|
||||
}
|
||||
|
||||
u_sprintf(uStringBuf, NULL, "UChar %%K (non-ANSI, should be %%C for Microsoft?): %K", L'A');
|
||||
u_sscanf(uStringBuf, NULL, "UChar %%K (non-ANSI, should be %%C for Microsoft?): %K", myUString);
|
||||
u_sprintf(uStringBuf, NULL, "UChar %%C: %C", L'A');
|
||||
u_sscanf(uStringBuf, NULL, "UChar %%C: %C", myUString);
|
||||
if (*myUString != L'A') {
|
||||
log_err("%%C Got: %C, Expected: A\n", *myUString);
|
||||
}
|
||||
|
@ -1041,18 +1041,18 @@ static void TestString() {
|
|||
log_err("%%s Got: %s, Expected: My-String\n", myString);
|
||||
}
|
||||
|
||||
u_sprintf(uStringBuf, NULL, "Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U", L"My-String");
|
||||
u_sscanf(uStringBuf, NULL, "Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U", myUString);
|
||||
u_sprintf(uStringBuf, NULL, "Unicode String %%S: %S", L"My-String");
|
||||
u_sscanf(uStringBuf, NULL, "Unicode String %%S: %S", myUString);
|
||||
u_austrncpy(myString, myUString, sizeof(myString)/sizeof(*myString));
|
||||
if (strcmp(myString, "My-String")) {
|
||||
log_err("%%U Got: %s, Expected: My String\n", myString);
|
||||
log_err("%%S Got: %s, Expected: My String\n", myString);
|
||||
}
|
||||
|
||||
u_sprintf(uStringBuf, NULL, "NULL Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U", NULL);
|
||||
u_sscanf(uStringBuf, NULL, "NULL Unicode String %%U (non-ANSI, should be %%S for Microsoft?): %U", myUString);
|
||||
u_sprintf(uStringBuf, NULL, "NULL Unicode String %%S: %S", NULL);
|
||||
u_sscanf(uStringBuf, NULL, "NULL Unicode String %%S: %S", myUString);
|
||||
u_austrncpy(myString, myUString, sizeof(myString)/sizeof(*myString));
|
||||
if (strcmp(myString, "(null)")) {
|
||||
log_err("%%U Got: %s, Expected: (null)\n", myString);
|
||||
log_err("%%S Got: %s, Expected: (null)\n", myString);
|
||||
}
|
||||
|
||||
u_sprintf(uStringBuf, NULL, "Percent %%P (non-ANSI): %P", myFloat);
|
||||
|
@ -1075,10 +1075,10 @@ static void TestString() {
|
|||
log_err("%%V Got: %f, Expected: %f\n", *newDoubleValuePtr, myFloat);
|
||||
}
|
||||
|
||||
u_sprintf(myUString, NULL, "This is a long test123456789012345678901234567890123456789012345678901234567890");
|
||||
u_sprintf(myUString, NULL, "This is a long test1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
|
||||
u_austrncpy(myString, myUString, sizeof(myString)/sizeof(*myString));
|
||||
if (strcmp(myString, "This is a long test123456789012345678901234567890123456789012345678901234567890")) {
|
||||
log_err("%%U Got: %s, Expected: My String\n", myString);
|
||||
if (strcmp(myString, "This is a long test1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890")) {
|
||||
log_err("%%S Got: %s, Expected: My String\n", myString);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1405,11 +1405,11 @@ static void TestSScanf() {
|
|||
int32_t uNumScanned;
|
||||
int32_t cNumScanned;
|
||||
|
||||
TestSScanSetFormat("%[bc]U", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[cb]U", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[bc]S", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[cb]S", abcUChars, abcChars);
|
||||
|
||||
TestSScanSetFormat("%[ab]U", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[ba]U", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[ab]S", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[ba]S", abcUChars, abcChars);
|
||||
|
||||
TestSScanSetFormat("%[ab]", abcUChars, abcChars);
|
||||
TestSScanSetFormat("%[ba]", abcUChars, abcChars);
|
||||
|
@ -1452,7 +1452,7 @@ static void TestSScanf() {
|
|||
u_memset(uBuffer, 0x2a, sizeof(uBuffer)/sizeof(*uBuffer));\
|
||||
memset(buffer, 0x2a, sizeof(buffer)/sizeof(*buffer));\
|
||||
\
|
||||
u_fprintf(myFile, "%U", uValue);\
|
||||
u_fprintf(myFile, "%S", uValue);\
|
||||
u_fclose(myFile);\
|
||||
myFile = u_fopen(STANDARD_TEST_FILE, "r", "en_US_POSIX", NULL);\
|
||||
uNumScanned = u_fscanf(myFile, format, uBuffer);\
|
||||
|
@ -1480,11 +1480,11 @@ static void TestFScanf() {
|
|||
int32_t uNumScanned;
|
||||
int32_t cNumScanned;
|
||||
|
||||
TestFScanSetFormat("%[bc]U", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[cb]U", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[bc]S", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[cb]S", abcUChars, abcChars);
|
||||
|
||||
TestFScanSetFormat("%[ab]U", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[ba]U", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[ab]S", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[ba]S", abcUChars, abcChars);
|
||||
|
||||
TestFScanSetFormat("%[ab]", abcUChars, abcChars);
|
||||
TestFScanSetFormat("%[ba]", abcUChars, abcChars);
|
||||
|
|
Loading…
Add table
Reference in a new issue