From: Santino Mazza smazza@codeweavers.com
--- dlls/mlang/mlang.c | 3 ++- dlls/mlang/tests/mlang.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/mlang/mlang.c b/dlls/mlang/mlang.c index 19df817d4fe..91bc1e005ed 100644 --- a/dlls/mlang/mlang.c +++ b/dlls/mlang/mlang.c @@ -3344,7 +3344,8 @@ static HRESULT WINAPI fnIMLangFontLink2_GetStrCodePages( IMLangFontLink2* iface, if (ret != S_OK) return E_FAIL;
if (!cps) cps = cp; - else if ((cps & cp) != 0) cps &= cp; + else if ((cps & cp) != 0 && + ((priority_cp & cps) || !(priority_cp & cp))) cps &= cp; else { i--; diff --git a/dlls/mlang/tests/mlang.c b/dlls/mlang/tests/mlang.c index 97097d9da34..91f77dbc562 100644 --- a/dlls/mlang/tests/mlang.c +++ b/dlls/mlang/tests/mlang.c @@ -1333,7 +1333,7 @@ static void IMLangFontLink_Test(IMLangFontLink* iMLFL) ret = IMLangFontLink_GetStrCodePages(iMLFL, L"\uff90a", 2, FS_LATIN1, &dwCodePages, &processed); ok(ret == S_OK, "IMLangFontLink_GetStrCodePages error %lx\n", ret); ok(dwCodePages == dwCmpCodePages, "expected %lx, got %lx\n", dwCmpCodePages, dwCodePages); - todo_wine ok(processed == 1, "expected 1, got %ld\n", processed); + ok(processed == 1, "expected 1, got %ld\n", processed);
dwCodePages = 0xffff; processed = -1;