kernel32: GetLocaleInfoA() doesn't support LOCALE_SSHORTTIME.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
beeeb2a528
commit
982c3ede72
|
@ -1295,7 +1295,8 @@ INT WINAPI GetLocaleInfoA( LCID lcid, LCTYPE lctype, LPSTR buffer, INT len )
|
|||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return 0;
|
||||
}
|
||||
if (lctype & LOCALE_RETURN_GENITIVE_NAMES )
|
||||
if (((lctype & ~LOCALE_LOCALEINFOFLAGSMASK) == LOCALE_SSHORTTIME) ||
|
||||
(lctype & LOCALE_RETURN_GENITIVE_NAMES))
|
||||
{
|
||||
SetLastError( ERROR_INVALID_FLAGS );
|
||||
return 0;
|
||||
|
|
|
@ -3358,6 +3358,7 @@ static void test_EnumUILanguageA(void)
|
|||
}
|
||||
|
||||
static char date_fmt_buf[1024];
|
||||
static WCHAR date_fmt_bufW[1024];
|
||||
|
||||
static BOOL CALLBACK enum_datetime_procA(LPSTR fmt)
|
||||
{
|
||||
|
@ -3366,6 +3367,12 @@ static BOOL CALLBACK enum_datetime_procA(LPSTR fmt)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK enum_datetime_procW(WCHAR *fmt)
|
||||
{
|
||||
lstrcatW(date_fmt_bufW, fmt);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void test_EnumDateFormatsA(void)
|
||||
{
|
||||
char *p, buf[256];
|
||||
|
@ -3473,6 +3480,60 @@ static void test_EnumTimeFormatsA(void)
|
|||
ok(!lstrcmpA(date_fmt_buf, buf), "expected \"%s\" got \"%s\"\n", date_fmt_buf, buf);
|
||||
}
|
||||
|
||||
static void test_EnumTimeFormatsW(void)
|
||||
{
|
||||
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
|
||||
WCHAR bufW[256];
|
||||
BOOL ret;
|
||||
|
||||
date_fmt_bufW[0] = 0;
|
||||
ret = EnumTimeFormatsW(enum_datetime_procW, lcid, 0);
|
||||
ok(ret, "EnumTimeFormatsW(0) error %d\n", GetLastError());
|
||||
ret = GetLocaleInfoW(lcid, LOCALE_STIMEFORMAT, bufW, sizeof(bufW)/sizeof(bufW[0]));
|
||||
ok(ret, "GetLocaleInfoW(LOCALE_STIMEFORMAT) error %d\n", GetLastError());
|
||||
ok(!lstrcmpW(date_fmt_bufW, bufW), "expected \"%s\" got \"%s\"\n", wine_dbgstr_w(date_fmt_bufW),
|
||||
wine_dbgstr_w(bufW));
|
||||
|
||||
date_fmt_bufW[0] = 0;
|
||||
ret = EnumTimeFormatsW(enum_datetime_procW, lcid, LOCALE_USE_CP_ACP);
|
||||
ok(ret, "EnumTimeFormatsW(LOCALE_USE_CP_ACP) error %d\n", GetLastError());
|
||||
ret = GetLocaleInfoW(lcid, LOCALE_STIMEFORMAT, bufW, sizeof(bufW)/sizeof(bufW[0]));
|
||||
ok(ret, "GetLocaleInfoW(LOCALE_STIMEFORMAT) error %d\n", GetLastError());
|
||||
ok(!lstrcmpW(date_fmt_bufW, bufW), "expected \"%s\" got \"%s\"\n", wine_dbgstr_w(date_fmt_bufW),
|
||||
wine_dbgstr_w(bufW));
|
||||
|
||||
/* TIME_NOSECONDS is Win7+ feature */
|
||||
date_fmt_bufW[0] = 0;
|
||||
ret = EnumTimeFormatsW(enum_datetime_procW, lcid, TIME_NOSECONDS);
|
||||
if (!ret && GetLastError() == ERROR_INVALID_FLAGS)
|
||||
skip("EnumTimeFormatsW doesn't support TIME_NOSECONDS\n");
|
||||
else {
|
||||
char buf[256];
|
||||
|
||||
todo_wine
|
||||
ok(ret, "EnumTimeFormatsW(TIME_NOSECONDS) error %d\n", GetLastError());
|
||||
ret = GetLocaleInfoW(lcid, LOCALE_SSHORTTIME, bufW, sizeof(bufW)/sizeof(bufW[0]));
|
||||
ok(ret, "GetLocaleInfoW(LOCALE_SSHORTTIME) error %d\n", GetLastError());
|
||||
todo_wine
|
||||
ok(!lstrcmpW(date_fmt_bufW, bufW), "expected \"%s\" got \"%s\"\n", wine_dbgstr_w(date_fmt_bufW),
|
||||
wine_dbgstr_w(bufW));
|
||||
|
||||
/* EnumTimeFormatsA doesn't support this flag */
|
||||
ret = EnumTimeFormatsA(enum_datetime_procA, lcid, TIME_NOSECONDS);
|
||||
todo_wine {
|
||||
ok(!ret && GetLastError() == ERROR_INVALID_FLAGS, "EnumTimeFormatsA(TIME_NOSECONDS) ret %d, error %d\n", ret,
|
||||
GetLastError());
|
||||
|
||||
ret = EnumTimeFormatsA(NULL, lcid, TIME_NOSECONDS);
|
||||
ok(!ret && GetLastError() == ERROR_INVALID_FLAGS, "EnumTimeFormatsA(TIME_NOSECONDS) ret %d, error %d\n", ret,
|
||||
GetLastError());
|
||||
}
|
||||
/* And it's not supported by GetLocaleInfoA either */
|
||||
ret = GetLocaleInfoA(lcid, LOCALE_SSHORTTIME, buf, sizeof(buf)/sizeof(buf[0]));
|
||||
ok(!ret && GetLastError() == ERROR_INVALID_FLAGS, "GetLocaleInfoA(LOCALE_SSHORTTIME) ret %d, error %d\n", ret,
|
||||
GetLastError());
|
||||
}
|
||||
}
|
||||
static void test_GetCPInfo(void)
|
||||
{
|
||||
BOOL ret;
|
||||
|
@ -4506,6 +4567,7 @@ START_TEST(locale)
|
|||
InitFunctionPointers();
|
||||
|
||||
test_EnumTimeFormatsA();
|
||||
test_EnumTimeFormatsW();
|
||||
test_EnumDateFormatsA();
|
||||
test_GetLocaleInfoA();
|
||||
test_GetLocaleInfoW();
|
||||
|
|
Loading…
Reference in New Issue