X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=src%2Ffcname.c;h=5b0a9320e6f3f6951b32a5cf7e55324ff7fa932b;hb=594dcef0f30ca27e27b95a9174087e8c61327e5f;hp=cfc6b31977f46eae0751d7ba894102d1f94def52;hpb=04cedae0d5a720662bdc0de3d4cb97f6c77e7d1a;p=fontconfig.git diff --git a/src/fcname.c b/src/fcname.c index cfc6b31..5b0a932 100644 --- a/src/fcname.c +++ b/src/fcname.c @@ -1,5 +1,5 @@ /* - * $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 * @@ -13,9 +13,9 @@ * 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 @@ -28,9 +28,9 @@ #include #include -/* +/* * 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. */ @@ -74,7 +74,8 @@ static const FcObjectType _FcBaseObjectTypes[] = { { 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]) @@ -168,7 +169,7 @@ FcObjectFindByName (const char *object, FcBool insert) * Hook it into the hash chain */ b = malloc (sizeof(FcObjectBucket)); - if (!b) + if (!b) return NULL; object = (const char *) FcStrCopy ((FcChar8 *) object); if (!object) { @@ -211,7 +212,7 @@ FcObjectHashInsert (const FcObjectType *object, FcBool copy) * Hook it into the hash chain */ b = malloc (sizeof(FcObjectBucket)); - if (!b) + if (!b) return FcFalse; if (copy) { @@ -326,6 +327,20 @@ FcObjectFromName (const char * name) 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) { @@ -406,7 +421,7 @@ static const FcConstant _FcBaseConstants[] = { { (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, }, @@ -435,6 +450,10 @@ static const FcConstant _FcBaseConstants[] = { { (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]) @@ -476,8 +495,8 @@ FcNameUnregisterConstants (const FcConstant *consts, int nconsts) { 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) @@ -601,7 +620,7 @@ static const FcChar8 * FcNameFindNext (const FcChar8 *cur, const char *delim, FcChar8 *save, FcChar8 *last) { FcChar8 c; - + while ((c = *cur)) { if (c == '\\') @@ -746,7 +765,7 @@ bail0: return 0; } static FcBool -FcNameUnparseString (FcStrBuf *buf, +FcNameUnparseString (FcStrBuf *buf, const FcChar8 *string, const FcChar8 *escape) { @@ -764,14 +783,14 @@ FcNameUnparseString (FcStrBuf *buf, 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; @@ -786,7 +805,7 @@ FcNameUnparseValue (FcStrBuf *buf, 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: @@ -799,7 +818,7 @@ FcNameUnparseValue (FcStrBuf *buf, return FcFalse; } -static FcBool +FcBool FcNameUnparseValueList (FcStrBuf *buf, FcValueListPtr v, FcChar8 *escape) @@ -854,11 +873,11 @@ FcNameUnparseEscaped (FcPattern *pat, FcBool 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) { @@ -868,7 +887,7 @@ FcNameUnparseEscaped (FcPattern *pat, FcBool escape) 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; } @@ -879,3 +898,6 @@ bail0: FcStrBufDestroy (&buf); return 0; } +#define __fcname__ +#include "fcaliastail.h" +#undef __fcname__