fontconfig, at least as used by GIMP and/or PangoFT2 on Windows, crashes
when trying to save the cache if config->cache is NULL, which happens if FcConfigHome() is NULL. Guard against that by using the temp folder in that case.
This commit is contained in:
parent
d3481737be
commit
f4c52909ab
|
@ -1,3 +1,10 @@
|
||||||
|
2004-02-01 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* src/fccfg.c (FcConfigCreate): fontconfig, at least as used by
|
||||||
|
GIMP and/or PangoFT2 on Windows, crashes when trying to save the
|
||||||
|
cache if config->cache is NULL, which happens if FcConfigHome() is
|
||||||
|
NULL. Guard against that by using the temp folder in that case.
|
||||||
|
|
||||||
2004-01-03 Roozbeh Pournader <roozbeh@sharif.edu>
|
2004-01-03 Roozbeh Pournader <roozbeh@sharif.edu>
|
||||||
|
|
||||||
* fc-lang/az_ir.orth:
|
* fc-lang/az_ir.orth:
|
||||||
|
|
25
src/fccfg.c
25
src/fccfg.c
|
@ -72,6 +72,31 @@ FcConfigCreate (void)
|
||||||
if (!FcConfigSetCache (config, (FcChar8 *) ("~/" FC_USER_CACHE_FILE)))
|
if (!FcConfigSetCache (config, (FcChar8 *) ("~/" FC_USER_CACHE_FILE)))
|
||||||
goto bail6;
|
goto bail6;
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
if (config->cache == 0)
|
||||||
|
{
|
||||||
|
/* If no home, use the temp folder. */
|
||||||
|
FcChar8 dummy[1];
|
||||||
|
int templen = GetTempPath (1, dummy);
|
||||||
|
FcChar8 *temp = malloc (templen + 1);
|
||||||
|
|
||||||
|
if (temp)
|
||||||
|
{
|
||||||
|
FcChar8 *cache_dir;
|
||||||
|
|
||||||
|
GetTempPath (templen + 1, temp);
|
||||||
|
cache_dir = FcStrPlus (temp, FC_USER_CACHE_FILE);
|
||||||
|
free (temp);
|
||||||
|
if (!FcConfigSetCache (config, cache_dir))
|
||||||
|
{
|
||||||
|
FcStrFree (cache_dir);
|
||||||
|
goto bail6;
|
||||||
|
}
|
||||||
|
FcStrFree (cache_dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
config->blanks = 0;
|
config->blanks = 0;
|
||||||
|
|
||||||
config->substPattern = 0;
|
config->substPattern = 0;
|
||||||
|
|
Loading…
Reference in New Issue