Aric Stewart (@aricstewart) commented about dlls/gdi32/uniscribe/usp10.c:
DWORD type;
swprintf(value, ARRAY_SIZE(value), L"%x", scriptInformation[scriptid].scriptTag); - if (RegQueryValueExW(hkey, value, 0, &type, (BYTE *)FaceName, &count)) - lstrcpyW(FaceName,scriptInformation[scriptid].fallbackFont); + if (!RegQueryValueExW(hkey, value, 0, &type, (BYTE *)FaceName, &count)) + { + RegCloseKey(hkey); + return;
This `return` would mean if there is not a fallback defined in `Software\\Wine\\Uniscribe\\Fallback` then you cannot have one in `Software\\Wine\\Uniscribe\\SystemFallback` It may be nicer to fall through to the below code so that if a fallback font is not defined we can still use your logic to search for a system one. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10672#note_137976