diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index fc067a57fbf..c591f4ec941 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -1431,7 +1431,7 @@ static UINT32 collection_find_family(struct dwrite_fontcollection *collection, c for (j = 0; j < IDWriteLocalizedStrings_GetCount(family_name); j++) { WCHAR buffer[255]; hr = IDWriteLocalizedStrings_GetString(family_name, j, buffer, 255); - if (SUCCEEDED(hr) && !strcmpW(buffer, name)) + if (SUCCEEDED(hr) && !strcmpiW(buffer, name)) return i; } } diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 65d8bcb5d6c..126fba93f70 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -58,6 +58,8 @@ static inline BOOL heap_free(void *mem) static const WCHAR test_fontfile[] = {'w','i','n','e','_','t','e','s','t','_','f','o','n','t','.','t','t','f',0}; static const WCHAR tahomaW[] = {'T','a','h','o','m','a',0}; +static const WCHAR tahomaUppercaseW[] = {'T','A','H','O','M','A',0}; +static const WCHAR tahomaStrangecaseW[] = {'t','A','h','O','m','A',0}; static const WCHAR blahW[] = {'B','l','a','h','!',0}; static IDWriteFactory *create_factory(void) @@ -1376,6 +1378,20 @@ static void test_system_fontcollection(void) ok(ret, "got %d\n", ret); ok(i != (UINT32)-1, "got %u\n", i); + ret = FALSE; + i = (UINT32)-1; + hr = IDWriteFontCollection_FindFamilyName(collection, tahomaUppercaseW, &i, &ret); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(ret, "got %d\n", ret); + ok(i != (UINT32)-1, "got %u\n", i); + + ret = FALSE; + i = (UINT32)-1; + hr = IDWriteFontCollection_FindFamilyName(collection, tahomaStrangecaseW, &i, &ret); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(ret, "got %d\n", ret); + ok(i != (UINT32)-1, "got %u\n", i); + /* get back local file loader */ hr = IDWriteFontCollection_GetFontFamily(collection, i, &family); ok(hr == S_OK, "got 0x%08x\n", hr);