/*
- * $RCSId: xc/lib/fontconfig/src/fcinit.c,v 1.7 2002/08/22 07:36:44 keithp Exp $
+ * fontconfig/src/fcinit.c
*
* Copyright © 2001 Keith Packard
*
* representations about the suitability of this software for any purpose. It
* is provided "as is" without express or implied warranty.
*
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-#include <stdlib.h>
#include "fcint.h"
+#include <stdlib.h>
static FcConfig *
FcInitFallbackConfig (void)
goto bail0;
if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
goto bail1;
+ if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR))
+ goto bail1;
return config;
bail1:
{
FcConfig *config;
+ FcInitDebug ();
config = FcConfigCreate ();
if (!config)
return FcFalse;
FcConfigDestroy (config);
return FcInitFallbackConfig ();
}
+
+ if (config->cacheDirs && config->cacheDirs->num == 0)
+ {
+ fprintf (stderr,
+ "Fontconfig warning: no <cachedir> elements found. Check configuration.\n");
+ fprintf (stderr,
+ "Fontconfig warning: adding <cachedir>%s</cachedir>\n",
+ FC_CACHEDIR);
+ fprintf (stderr,
+ "Fontconfig warning: adding <cachedir>~/.fontconfig</cachedir>\n");
+ if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR) ||
+ !FcConfigAddCacheDir (config, (FcChar8 *) "~/.fontconfig"))
+ {
+ fprintf (stderr,
+ "Fontconfig error: out of memory");
+ FcConfigDestroy (config);
+ return FcInitFallbackConfig ();
+ }
+ }
return config;
}
{
FcConfig *config = FcInitLoadConfig ();
+ FcInitDebug ();
if (!config)
return 0;
if (!FcConfigBuildFonts (config))
return FcTrue;
config = FcInitLoadConfigAndFonts ();
if (!config)
- return FcTrue;
+ return FcFalse;
FcConfigSetCurrent (config);
if (FcDebug() & FC_DBG_MEMORY)
FcMemReport ();
if (_fcConfig)
FcConfigDestroy (_fcConfig);
- FcPatternThawAll ();
- FcCharSetThawAll ();
+ FcPatternFini ();
+ FcCacheFini ();
+ if (FcDebug() & FC_DBG_MEMORY)
+ FcMemReport ();
}
/*
}
static struct {
- char *name;
+ char name[16];
int alloc_count;
int alloc_mem;
int free_count;
static int FcAllocNotify, FcFreeNotify;
-void
-FcValueListReport (void);
-
void
FcMemReport (void)
{
FcAllocMem - FcFreeMem);
FcAllocNotify = 0;
FcFreeNotify = 0;
- FcValueListReport ();
}
void
FcMemReport ();
}
}
+#define __fcinit__
+#include "fcaliastail.h"
+#undef __fcinit__