return 1;
}
if (argv[i])
- pat = FcNameParse ((const FcChar8 *)argv[i]);
+ pat = FcNameParse ((FcChar8 *) argv[i]);
else
pat = FcPatternCreate ();
/*
- * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.2 2002/02/15 06:01:27 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.3 2002/02/19 07:50:43 keithp Exp $
*
* Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
*
FcObjectSet *
FcObjectSetBuild (const char *first, ...);
+FcFontSet *
+FcFontSetList (FcConfig *config,
+ FcFontSet **sets,
+ int nsets,
+ FcPattern *p,
+ FcObjectSet *os);
+
FcFontSet *
FcFontList (FcConfig *config,
FcPattern *p,
FcObjectSet *os);
/* fcmatch.c */
+FcPattern *
+FcFontSetMatch (FcConfig *config,
+ FcFontSet **sets,
+ int nsets,
+ FcPattern *p,
+ FcResult *result);
+
FcPattern *
FcFontMatch (FcConfig *config,
FcPattern *p,
}
FcFontSet *
-FcFontList (FcConfig *config,
- FcPattern *p,
- FcObjectSet *os)
+FcFontSetList (FcConfig *config,
+ FcFontSet **sets,
+ int nsets,
+ FcPattern *p,
+ FcObjectSet *os)
{
FcFontSet *ret;
FcFontSet *s;
int f;
- FcSetName set;
+ int set;
FcListHashTable table;
int i;
FcListBucket *bucket;
* Walk all available fonts adding those that
* match to the hash table
*/
- for (set = FcSetSystem; set <= FcSetApplication; set++)
+ for (set = 0; set < nsets; set++)
{
- s = config->fonts[set];
+ s = sets[set];
if (!s)
continue;
for (f = 0; f < s->nfont; f++)
bail0:
return 0;
}
+
+FcFontSet *
+FcFontList (FcConfig *config,
+ FcPattern *p,
+ FcObjectSet *os)
+{
+ FcFontSet *sets[2];
+ int nsets;
+
+ if (!config)
+ {
+ config = FcConfigGetCurrent ();
+ if (!config)
+ return 0;
+ }
+ nsets = 0;
+ if (config->fonts[FcSetSystem])
+ sets[nsets++] = config->fonts[FcSetSystem];
+ if (config->fonts[FcSetApplication])
+ sets[nsets++] = config->fonts[FcSetApplication];
+ return FcFontSetList (config, sets, nsets, p, os);
+}
/*
- * $XFree86: $
+ * $XFree86: xc/lib/fontconfig/src/fcmatch.c,v 1.2 2002/02/15 06:01:28 keithp Exp $
*
* Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
*
}
FcPattern *
-FcFontMatch (FcConfig *config,
- FcPattern *p,
- FcResult *result)
+FcFontSetMatch (FcConfig *config,
+ FcFontSet **sets,
+ int nsets,
+ FcPattern *p,
+ FcResult *result)
{
double score[NUM_MATCHER], bestscore[NUM_MATCHER];
int f;
FcFontSet *s;
FcPattern *best;
FcPattern *new;
- FcPatternElt *fe, *pe;
+ FcPatternElt *fe, *pe;
FcValue v;
int i;
FcSetName set;
if (!config)
return 0;
}
- for (set = FcSetSystem; set <= FcSetApplication; set++)
+ for (set = 0; set < nsets; set++)
{
- s = config->fonts[set];
+ s = sets[set];
if (!s)
continue;
for (f = 0; f < s->nfont; f++)
FcConfigSubstitute (config, new, FcMatchFont);
return new;
}
+
+FcPattern *
+FcFontMatch (FcConfig *config,
+ FcPattern *p,
+ FcResult *result)
+{
+ FcFontSet *sets[2];
+ int nsets;
+
+ if (!config)
+ {
+ config = FcConfigGetCurrent ();
+ if (!config)
+ return 0;
+ }
+ nsets = 0;
+ if (config->fonts[FcSetSystem])
+ sets[nsets++] = config->fonts[FcSetSystem];
+ if (config->fonts[FcSetApplication])
+ sets[nsets++] = config->fonts[FcSetApplication];
+ return FcFontSetMatch (config, sets, nsets, p, result);
+}
/*
- * $XFree86: xc/lib/fontconfig/src/fcxml.c,v 1.4 2002/02/20 00:32:30 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/src/fcxml.c,v 1.5 2002/02/22 18:54:07 keithp Exp $
*
* Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
*
do {
buf = XML_GetBuffer (p, BUFSIZ);
if (!buf)
+ {
+ FcConfigError (&parse, "cannot get parse buffer");
goto bail3;
+ }
len = fread (buf, 1, BUFSIZ, f);
if (len < 0)
+ {
+ FcConfigError (&parse, "failed reading config file");
goto bail3;
+ }
if (!XML_ParseBuffer (p, len, len == 0))
+ {
+ FcConfigError (&parse, "%s",
+ XML_ErrorString (XML_GetErrorCode (p)));
goto bail3;
+ }
} while (len != 0);
error = parse.error;
bail3: