]> git.wh0rd.org - fontconfig.git/blobdiff - src/fcname.c
Bug 44826 - <alias> must contain only a single <family>
[fontconfig.git] / src / fcname.c
index 51544de0bab692779beea12893de2877c15f6ba7..d77eff6f7518d2785d8c634aae13525229f0796f 100644 (file)
@@ -7,15 +7,15 @@
  * documentation for any purpose is hereby granted without fee, provided that
  * the above copyright notice appear in all copies and that both that
  * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
+ * documentation, and that the name of the author(s) not be used in
  * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
+ * specific, written prior permission.  The authors make no
  * 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 <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.
  */
 
@@ -169,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) {
@@ -212,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)
     {
@@ -327,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)
 {
@@ -407,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, },
@@ -481,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)
@@ -606,7 +620,7 @@ static const FcChar8 *
 FcNameFindNext (const FcChar8 *cur, const char *delim, FcChar8 *save, FcChar8 *last)
 {
     FcChar8    c;
-    
+
     while ((c = *cur))
     {
        if (c == '\\')
@@ -751,7 +765,7 @@ bail0:
     return 0;
 }
 static FcBool
-FcNameUnparseString (FcStrBuf      *buf, 
+FcNameUnparseString (FcStrBuf      *buf,
                     const FcChar8  *string,
                     const FcChar8  *escape)
 {
@@ -769,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;
@@ -791,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:
@@ -804,7 +818,7 @@ FcNameUnparseValue (FcStrBuf        *buf,
     return FcFalse;
 }
 
-static FcBool
+FcBool
 FcNameUnparseValueList (FcStrBuf       *buf,
                        FcValueListPtr  v,
                        FcChar8         *escape)
@@ -859,11 +873,10 @@ FcNameUnparseEscaped (FcPattern *pat, FcBool escape)
        for (i = 0; i < l->ntypes; i++)
        {
            o = &l->types[i];
-           if (!strcmp (o->object, FC_FAMILY) || 
-               !strcmp (o->object, FC_SIZE) ||
-               !strcmp (o->object, FC_FILE))
+           if (!strcmp (o->object, FC_FAMILY) ||
+               !strcmp (o->object, FC_SIZE))
                continue;
-           
+       
            e = FcPatternObjectFindElt (pat, FcObjectFromName (o->object));
            if (e)
            {
@@ -873,7 +886,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;
            }