Moved AFM dirs configuration to a single AFMPath key under

HKCU\Software\Wine\Fonts.
This commit is contained in:
Alexandre Julliard 2005-06-27 18:50:14 +00:00
parent ab3d0794ae
commit 7894c1e879
1 changed files with 32 additions and 26 deletions

View File

@ -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);