Initialize fontconfig library in fc-cat to avoid segfault.

reviewed by: plam
This commit is contained in:
Patrick Lam 2006-02-21 14:12:41 +00:00
parent 530e66b008
commit 9769b43d4a
2 changed files with 17 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2006-02-21 Mike Fabian <mfabian@suse.de>
reviewed by: plam
* fc-cat/fc-cat.c (main):
Initialize fontconfig library in fc-cat to avoid segfault.
2006-02-18 Patrick Lam <plam@mit.edu> 2006-02-18 Patrick Lam <plam@mit.edu>
* fc-cache/fc-cache.c (scanDirs): * fc-cache/fc-cache.c (scanDirs):
* src/fccache.c (FcCacheReadDirs): * src/fccache.c (FcCacheReadDirs):

View File

@ -396,6 +396,7 @@ main (int argc, char **argv)
FcFontSet *fs = FcFontSetCreate(); FcFontSet *fs = FcFontSetCreate();
FcStrSet *dirs = FcStrSetCreate(); FcStrSet *dirs = FcStrSetCreate();
char *name_buf; char *name_buf;
FcConfig *config;
#if HAVE_GETOPT_LONG #if HAVE_GETOPT_LONG
while ((c = getopt_long (argc, argv, "fsVv?", longopts, NULL)) != -1) while ((c = getopt_long (argc, argv, "fsVv?", longopts, NULL)) != -1)
@ -417,6 +418,14 @@ main (int argc, char **argv)
i = 1; i = 1;
#endif #endif
config = FcInitLoadConfig ();
if (!config)
{
fprintf (stderr, "%s: Can't init font config library\n", argv[0]);
return 1;
}
FcConfigSetCurrent (config);
if (i >= argc) if (i >= argc)
usage (argv[0]); usage (argv[0]);
@ -425,7 +434,7 @@ main (int argc, char **argv)
char * dummy_name = (char *)FcStrPlus ((FcChar8 *)argv[i], char * dummy_name = (char *)FcStrPlus ((FcChar8 *)argv[i],
(FcChar8 *)"/dummy"); (FcChar8 *)"/dummy");
if (!FcDirScanConfig (fs, dirs, 0, 0, if (!FcDirScanConfig (fs, dirs, 0, 0,
(const FcChar8 *)argv[i], FcFalse, 0)) (const FcChar8 *)argv[i], FcFalse, config))
fprintf (stderr, "couldn't load font dir %s\n", argv[i]); fprintf (stderr, "couldn't load font dir %s\n", argv[i]);
else else
{ {