Don't load AFM files from predefined directories; use [afmdirs]
section in Wine config file instead.
This commit is contained in:
parent
87880c5e23
commit
23e207eebd
|
@ -461,8 +461,9 @@ static void PSDRV_ReadAFMDir(const char* afmdir) {
|
||||||
if (strstr(dent->d_name,".afm")) {
|
if (strstr(dent->d_name,".afm")) {
|
||||||
char *afmfn;
|
char *afmfn;
|
||||||
|
|
||||||
afmfn=(char*)HeapAlloc(GetProcessHeap(),0,strlen(afmdir)+strlen(dent->d_name)+1);
|
afmfn=(char*)HeapAlloc(GetProcessHeap(),0,strlen(afmdir)+strlen(dent->d_name)+2);
|
||||||
strcpy(afmfn,afmdir);
|
strcpy(afmfn,afmdir);
|
||||||
|
strcat(afmfn,"/");
|
||||||
strcat(afmfn,dent->d_name);
|
strcat(afmfn,dent->d_name);
|
||||||
TRACE("loading AFM %s\n",afmfn);
|
TRACE("loading AFM %s\n",afmfn);
|
||||||
afm = PSDRV_AFMParse(afmfn);
|
afm = PSDRV_AFMParse(afmfn);
|
||||||
|
@ -486,55 +487,6 @@ BOOL PSDRV_GetFontMetrics(void)
|
||||||
char key[256];
|
char key[256];
|
||||||
char value[256];
|
char value[256];
|
||||||
|
|
||||||
/* some packages with afm files in that directory */
|
|
||||||
PSDRV_ReadAFMDir("/usr/share/ghostscript/fonts/");
|
|
||||||
PSDRV_ReadAFMDir("/usr/share/a2ps/afm/");
|
|
||||||
PSDRV_ReadAFMDir("/usr/share/enscript/");
|
|
||||||
PSDRV_ReadAFMDir("/usr/X11R6/lib/X11/fonts/Type1/");
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
{
|
|
||||||
/* this takes rather long to load :/ */
|
|
||||||
/* teTeX has a 3level directory storage of afm files */
|
|
||||||
char *path="/opt/teTeX/share/texmf/fonts/afm/";
|
|
||||||
DIR *dir = opendir(path);
|
|
||||||
if (dir) {
|
|
||||||
struct dirent *dent;
|
|
||||||
|
|
||||||
while ((dent=readdir(dir))) {
|
|
||||||
DIR *dir2;
|
|
||||||
char *path2;
|
|
||||||
|
|
||||||
if (dent->d_name[0]=='.')
|
|
||||||
continue;
|
|
||||||
path2=(char*)HeapAlloc(GetProcessHeap(),0,strlen(path)+1+1+strlen(dent->d_name));
|
|
||||||
strcpy(path2,path);
|
|
||||||
strcat(path2,dent->d_name);
|
|
||||||
strcat(path2,"/");
|
|
||||||
dir2 = opendir(path2);
|
|
||||||
if (dir2) {
|
|
||||||
while ((dent=readdir(dir2))) {
|
|
||||||
char *path3;
|
|
||||||
if (dent->d_name[0]=='.')
|
|
||||||
continue;
|
|
||||||
path3=(char*)HeapAlloc(GetProcessHeap(),0,strlen(path2)+1+1+strlen(dent->d_name));
|
|
||||||
strcpy(path3,path2);
|
|
||||||
strcat(path3,dent->d_name);
|
|
||||||
strcat(path3,"/");
|
|
||||||
PSDRV_ReadAFMDir(path3);
|
|
||||||
HeapFree(GetProcessHeap(),0,path3);
|
|
||||||
}
|
|
||||||
closedir(dir2);
|
|
||||||
} else
|
|
||||||
PSDRV_ReadAFMDir(path2);
|
|
||||||
HeapFree(GetProcessHeap(),0,path2);
|
|
||||||
}
|
|
||||||
closedir(dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while (PROFILE_EnumWineIniString( "afmfiles", idx++, key, sizeof(key), value, sizeof(value)))
|
while (PROFILE_EnumWineIniString( "afmfiles", idx++, key, sizeof(key), value, sizeof(value)))
|
||||||
{
|
{
|
||||||
AFM* afm = PSDRV_AFMParse(value);
|
AFM* afm = PSDRV_AFMParse(value);
|
||||||
|
@ -547,6 +499,11 @@ BOOL PSDRV_GetFontMetrics(void)
|
||||||
PSDRV_AddAFMtoList(&PSDRV_AFMFontList, afm);
|
PSDRV_AddAFMtoList(&PSDRV_AFMFontList, afm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (idx = 0; PROFILE_EnumWineIniString ("afmdirs", idx, key, sizeof (key),
|
||||||
|
value, sizeof (value)); ++idx)
|
||||||
|
PSDRV_ReadAFMDir (value);
|
||||||
|
|
||||||
PSDRV_DumpFontList();
|
PSDRV_DumpFontList();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue