mlang: Implement codepages priority.
This commit is contained in:
parent
1ccd67cc32
commit
d9fcbf451a
2 changed files with 8 additions and 7 deletions
|
@ -3333,10 +3333,12 @@ static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* iface,
|
|||
|
||||
for (i = 0; i < src_len; i++)
|
||||
{
|
||||
DWORD cp;
|
||||
DWORD cp, next_cp = 0;
|
||||
HRESULT ret;
|
||||
|
||||
ret = IMLangFontLink2_GetCharCodePages(iface, src[i], &cp);
|
||||
if (i + 1 < src_len)
|
||||
ret = IMLangFontLink2_GetCharCodePages(iface, src[i + 1], &next_cp);
|
||||
if (ret != S_OK) return E_FAIL;
|
||||
|
||||
if (!cps) cps = cp;
|
||||
|
@ -3347,8 +3349,7 @@ static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* iface,
|
|||
break;
|
||||
}
|
||||
|
||||
/* FIXME: not tested */
|
||||
if (priority_cp & cps) break;
|
||||
if ((priority_cp & cps) && !(priority_cp & next_cp)) break;
|
||||
}
|
||||
|
||||
if (codepages) *codepages = cps;
|
||||
|
|
|
@ -1298,16 +1298,16 @@ static void IMLangFontLink_Test(IMLangFontLink* iMLFL)
|
|||
processed = 0;
|
||||
ret = IMLangFontLink_GetStrCodePages(iMLFL, str, 4, FS_CYRILLIC, &dwCodePages, &processed);
|
||||
ok(ret == S_OK, "IMLangFontLink_GetStrCodePages error %lx\n", ret);
|
||||
todo_wine ok(dwCodePages == dwCmpCodePages, "expected %lx, got %lx\n", dwCmpCodePages, dwCodePages);
|
||||
todo_wine ok(processed == 2, "expected 2, got %ld\n", processed);
|
||||
ok(dwCodePages == dwCmpCodePages, "expected %lx, got %lx\n", dwCmpCodePages, dwCodePages);
|
||||
ok(processed == 2, "expected 2, got %ld\n", processed);
|
||||
|
||||
dwCmpCodePages = FS_JISJAPAN;
|
||||
dwCodePages = 0;
|
||||
processed = 0;
|
||||
ret = IMLangFontLink_GetStrCodePages(iMLFL, str, 4, FS_JISJAPAN, &dwCodePages, &processed);
|
||||
ok(ret == S_OK, "IMLangFontLink_GetStrCodePages error %lx\n", ret);
|
||||
todo_wine ok(dwCodePages == dwCmpCodePages, "expected %lx, got %lx\n", dwCmpCodePages, dwCodePages);
|
||||
todo_wine ok(processed == 3, "expected 3, got %ld\n", processed);
|
||||
ok(dwCodePages == dwCmpCodePages, "expected %lx, got %lx\n", dwCmpCodePages, dwCodePages);
|
||||
ok(processed == 3, "expected 3, got %ld\n", processed);
|
||||
|
||||
dwCmpCodePages = FS_LATIN1 | FS_LATIN2 | FS_CYRILLIC | FS_GREEK | FS_TURKISH
|
||||
| FS_HEBREW | FS_ARABIC | FS_BALTIC | FS_VIETNAMESE | FS_THAI
|
||||
|
|
Loading…
Add table
Reference in a new issue