/*
- * $RCSId: xc/lib/fontconfig/src/fcname.c,v 1.15 2002/09/26 00:17:28 keithp Exp $
+ * fontconfig/src/fcname.c
*
* Copyright © 2000 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
#include <string.h>
#include <stdio.h>
-/*
+/*
* Please do not change this list, it is used to initialize the object
- * list in this order to match the FC_foo_OBJECT constants. Those
+ * list in this order to match the FC_foo_OBJECT constants. Those
* constants are written into cache files.
*/
{ FC_FONTFORMAT, FcTypeString },
{ FC_EMBOLDEN, FcTypeBool },
{ FC_EMBEDDED_BITMAP, FcTypeBool },
- { FC_DECORATIVE, FcTypeBool }, /* 40 */
+ { FC_DECORATIVE, FcTypeBool },
+ { FC_LCD_FILTER, FcTypeInteger }, /* 41 */
};
#define NUM_OBJECT_TYPES (sizeof _FcBaseObjectTypes / sizeof _FcBaseObjectTypes[0])
* Hook it into the hash chain
*/
b = malloc (sizeof(FcObjectBucket));
- if (!b)
+ if (!b)
return NULL;
object = (const char *) FcStrCopy ((FcChar8 *) object);
if (!object) {
* Hook it into the hash chain
*/
b = malloc (sizeof(FcObjectBucket));
- if (!b)
+ if (!b)
return FcFalse;
if (copy)
{
return 0;
}
+FcObjectSet *
+FcObjectGetSet (void)
+{
+ int i;
+ FcObjectSet *os = NULL;
+
+
+ os = FcObjectSetCreate ();
+ for (i = 0; i < FcObjectsNumber; i++)
+ FcObjectSetAdd (os, FcObjects[i].object);
+
+ return os;
+}
+
FcBool
FcObjectInit (void)
{
{ (FcChar8 *) "expanded", "width", FC_WIDTH_EXPANDED },
{ (FcChar8 *) "extraexpanded", "width", FC_WIDTH_EXTRAEXPANDED },
{ (FcChar8 *) "ultraexpanded", "width", FC_WIDTH_ULTRAEXPANDED },
-
+
{ (FcChar8 *) "proportional", "spacing", FC_PROPORTIONAL, },
{ (FcChar8 *) "dual", "spacing", FC_DUAL, },
{ (FcChar8 *) "mono", "spacing", FC_MONO, },
{ (FcChar8 *) "embolden", "embolden", FcTrue },
{ (FcChar8 *) "embeddedbitmap", "embeddedbitmap", FcTrue },
{ (FcChar8 *) "decorative", "decorative", FcTrue },
+ { (FcChar8 *) "lcdnone", "lcdfilter", FC_LCD_NONE },
+ { (FcChar8 *) "lcddefault", "lcdfilter", FC_LCD_DEFAULT },
+ { (FcChar8 *) "lcdlight", "lcdfilter", FC_LCD_LIGHT },
+ { (FcChar8 *) "lcdlegacy", "lcdfilter", FC_LCD_LEGACY },
};
#define NUM_FC_CONSTANTS (sizeof _FcBaseConstants/sizeof _FcBaseConstants[0])
{
const FcConstantList *l, **prev;
- for (prev = &_FcConstants;
- (l = *prev);
+ for (prev = &_FcConstants;
+ (l = *prev);
prev = (const FcConstantList **) &(l->next))
{
if (l->consts == consts && l->nconsts == nconsts)
break;
case FcTypeString:
v.u.s = FcStrStaticName(string);
+ if (!v.u.s)
+ v.type = FcTypeVoid;
break;
case FcTypeBool:
if (!FcNameBool (string, &v.u.b))
break;
case FcTypeCharSet:
v.u.c = FcNameParseCharSet (string);
+ if (!v.u.c)
+ v.type = FcTypeVoid;
break;
case FcTypeLangSet:
v.u.l = FcNameParseLangSet (string);
+ if (!v.u.l)
+ v.type = FcTypeVoid;
break;
default:
break;
FcNameFindNext (const FcChar8 *cur, const char *delim, FcChar8 *save, FcChar8 *last)
{
FcChar8 c;
-
+
while ((c = *cur))
{
if (c == '\\')
return 0;
}
static FcBool
-FcNameUnparseString (FcStrBuf *buf,
+FcNameUnparseString (FcStrBuf *buf,
const FcChar8 *string,
const FcChar8 *escape)
{
return FcTrue;
}
-static FcBool
+FcBool
FcNameUnparseValue (FcStrBuf *buf,
FcValue *v0,
FcChar8 *escape)
{
FcChar8 temp[1024];
FcValue v = FcValueCanonicalize(v0);
-
+
switch (v.type) {
case FcTypeVoid:
return FcTrue;
case FcTypeBool:
return FcNameUnparseString (buf, v.u.b ? (FcChar8 *) "True" : (FcChar8 *) "False", 0);
case FcTypeMatrix:
- sprintf ((char *) temp, "%g %g %g %g",
+ sprintf ((char *) temp, "%g %g %g %g",
v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy);
return FcNameUnparseString (buf, temp, 0);
case FcTypeCharSet:
return FcFalse;
}
-static FcBool
+FcBool
FcNameUnparseValueList (FcStrBuf *buf,
FcValueListPtr v,
FcChar8 *escape)
for (i = 0; i < l->ntypes; i++)
{
o = &l->types[i];
- if (!strcmp (o->object, FC_FAMILY) ||
+ if (!strcmp (o->object, FC_FAMILY) ||
!strcmp (o->object, FC_SIZE) ||
!strcmp (o->object, FC_FILE))
continue;
-
+
e = FcPatternObjectFindElt (pat, FcObjectFromName (o->object));
if (e)
{
goto bail0;
if (!FcNameUnparseString (&buf, (FcChar8 *) "=", 0))
goto bail0;
- if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ?
+ if (!FcNameUnparseValueList (&buf, FcPatternEltValues(e), escape ?
(FcChar8 *) FC_ESCAPE_VARIABLE : 0))
goto bail0;
}
FcStrBufDestroy (&buf);
return 0;
}
+#define __fcname__
+#include "fcaliastail.h"
+#undef __fcname__