Moved AFM dirs configuration to a single AFMPath key under
HKCU\Software\Wine\Fonts.
This commit is contained in:
parent
ab3d0794ae
commit
7894c1e879
|
@ -1172,35 +1172,41 @@ static BOOL ReadAFMDir(LPCSTR dirname)
|
||||||
*/
|
*/
|
||||||
BOOL PSDRV_GetType1Metrics(void)
|
BOOL PSDRV_GetType1Metrics(void)
|
||||||
{
|
{
|
||||||
CHAR name_buf[256], value_buf[256];
|
static const WCHAR pathW[] = {'A','F','M','P','a','t','h',0};
|
||||||
INT i = 0;
|
|
||||||
HKEY hkey;
|
HKEY hkey;
|
||||||
DWORD type, name_len, value_len;
|
DWORD len;
|
||||||
|
LPWSTR valueW;
|
||||||
|
LPSTR valueA, ptr;
|
||||||
|
|
||||||
/* @@ Wine registry key: HKLM\Software\Wine\Wine\Config\afmdirs */
|
/* @@ Wine registry key: HKCU\Software\Wine\Fonts */
|
||||||
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE,
|
if (RegOpenKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Fonts", &hkey) != ERROR_SUCCESS)
|
||||||
"Software\\Wine\\Wine\\Config\\afmdirs",
|
|
||||||
0, KEY_READ, &hkey) != ERROR_SUCCESS)
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
name_len = sizeof(name_buf);
|
if (RegQueryValueExW( hkey, pathW, NULL, NULL, NULL, &len ) == ERROR_SUCCESS)
|
||||||
value_len = sizeof(value_buf);
|
|
||||||
|
|
||||||
while (RegEnumValueA(hkey, i++, name_buf, &name_len, NULL, &type, value_buf,
|
|
||||||
&value_len) == ERROR_SUCCESS)
|
|
||||||
{
|
{
|
||||||
value_buf[sizeof(value_buf) - 1] = '\0';
|
len += sizeof(WCHAR);
|
||||||
|
valueW = HeapAlloc( PSDRV_Heap, 0, len );
|
||||||
if (ReadAFMDir(value_buf) == FALSE)
|
if (RegQueryValueExW( hkey, pathW, NULL, NULL, (LPBYTE)valueW, &len ) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
len = WideCharToMultiByte( CP_UNIXCP, 0, valueW, -1, NULL, 0, NULL, NULL );
|
||||||
|
valueA = HeapAlloc( PSDRV_Heap, 0, len );
|
||||||
|
WideCharToMultiByte( CP_UNIXCP, 0, valueW, -1, valueA, len, NULL, NULL );
|
||||||
|
TRACE( "got AFM font path %s\n", debugstr_a(valueA) );
|
||||||
|
ptr = valueA;
|
||||||
|
while (ptr)
|
||||||
|
{
|
||||||
|
LPSTR next = strchr( ptr, ':' );
|
||||||
|
if (next) *next++ = 0;
|
||||||
|
if (!ReadAFMDir( ptr ))
|
||||||
{
|
{
|
||||||
RegCloseKey(hkey);
|
RegCloseKey(hkey);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
ptr = next;
|
||||||
/* initialize lengths for new iteration */
|
}
|
||||||
|
HeapFree( PSDRV_Heap, 0, valueA );
|
||||||
name_len = sizeof(name_buf);
|
}
|
||||||
value_len = sizeof(value_buf);
|
HeapFree( PSDRV_Heap, 0, valueW );
|
||||||
}
|
}
|
||||||
|
|
||||||
RegCloseKey(hkey);
|
RegCloseKey(hkey);
|
||||||
|
|
Loading…
Reference in New Issue