Commit 8ec077f2 authored by Keith Packard's avatar Keith Packard

Expression parsing in fonts.conf file mis-freed elements. Constant identity

    matrix was accidentally freed. Add ability to comare FTFace pattern
    elements (not that its all that useful)
parent be094850
/*
* $XFree86: xc/lib/fontconfig/src/fccfg.c,v 1.6 2002/05/21 17:06:22 keithp Exp $
* $XFree86: xc/lib/fontconfig/src/fccfg.c,v 1.7 2002/05/29 08:21:33 keithp Exp $
*
* Copyright 2000 Keith Packard, member of The XFree86 Project, Inc.
*
......@@ -471,8 +471,9 @@ FcConfigPromote (FcValue v, FcValue u)
}
else if (v.type == FcTypeVoid && u.type == FcTypeMatrix)
{
v.u.m = (FcMatrix *) &FcIdentityMatrix;
v.type = FcTypeMatrix;
v.u.m = FcMatrixCopy (&FcIdentityMatrix);
if (v.u.m)
v.type = FcTypeMatrix;
}
return v;
}
......@@ -582,6 +583,17 @@ FcConfigCompareValue (FcValue m,
break;
}
break;
case FcTypeFTFace:
switch (op) {
case FcOpEqual:
ret = m.u.f == v.u.f;
break;
case FcOpNotEqual:
ret = m.u.f != v.u.f;
break;
default:
break;
}
}
}
else
......
/*
* $XFree86: xc/lib/fontconfig/src/fcxml.c,v 1.7 2002/05/21 17:06:22 keithp Exp $
* $XFree86: xc/lib/fontconfig/src/fcxml.c,v 1.8 2002/05/22 04:12:35 keithp Exp $
*
* Copyright 2002 Keith Packard, member of The XFree86 Project, Inc.
*
......@@ -1188,6 +1188,7 @@ FcPopExpr (FcConfigParse *parse)
break;
case FcVStackExpr:
expr = vstack->u.expr;
vstack->tag = FcVStackNone;
break;
case FcVStackEdit:
break;
......@@ -1377,7 +1378,7 @@ FcParseEdit (FcConfigParse *parse)
}
mode_string = FcConfigGetAttribute (parse, "mode");
if (!mode_string)
mode = FcOpEqual;
mode = FcOpAssign;
else
{
mode = FcConfigLexMode (mode_string);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment