Imported Upstream version 2.13.0
[platform/upstream/fontconfig.git] / src / fcname.c
index 8be36c7..79e413e 100644 (file)
@@ -258,6 +258,11 @@ FcNameBool (const FcChar8 *v, FcBool *result)
        *result = FcFalse;
        return FcTrue;
     }
+    if (c0 == 'd' || c0 == 'x' || c0 == '2')
+    {
+       *result = FcDontCare;
+       return FcTrue;
+    }
     if (c0 == 'o')
     {
        c1 = v[1];
@@ -272,6 +277,11 @@ FcNameBool (const FcChar8 *v, FcBool *result)
            *result = FcFalse;
            return FcTrue;
        }
+       if (c1 == 'r')
+       {
+           *result = FcDontCare;
+           return FcTrue;
+       }
     }
     return FcFalse;
 }
@@ -318,7 +328,7 @@ FcNameConvert (FcType type, FcChar8 *string)
            v.type = FcTypeVoid;
        break;
     case FcTypeRange:
-       if (sscanf ((char *) string, "[%lg %lg)", &b, &e) != 2)
+       if (sscanf ((char *) string, "[%lg %lg]", &b, &e) != 2)
        {
            v.u.d = strtod ((char *) string, &p);
            if (p != NULL && p[0] != 0)
@@ -514,7 +524,10 @@ FcNameUnparseValue (FcStrBuf       *buf,
     case FcTypeString:
        return FcNameUnparseString (buf, v.u.s, escape);
     case FcTypeBool:
-       return FcNameUnparseString (buf, v.u.b ? (FcChar8 *) "True" : (FcChar8 *) "False", 0);
+       return FcNameUnparseString (buf,
+                                   v.u.b == FcTrue  ? (FcChar8 *) "True" :
+                                   v.u.b == FcFalse ? (FcChar8 *) "False" :
+                                                      (FcChar8 *) "DontCare", 0);
     case FcTypeMatrix:
        sprintf ((char *) temp, "%g %g %g %g",
                 v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy);
@@ -526,7 +539,7 @@ FcNameUnparseValue (FcStrBuf        *buf,
     case FcTypeFTFace:
        return FcTrue;
     case FcTypeRange:
-       sprintf ((char *) temp, "[%g %g)", v.u.r->begin, v.u.r->end);
+       sprintf ((char *) temp, "[%g %g]", v.u.r->begin, v.u.r->end);
        return FcNameUnparseString (buf, temp, 0);
     }
     return FcFalse;