diff options
author | Akira TAGOH <akira@tagoh.org> | 2012-04-11 19:52:35 +0900 |
---|---|---|
committer | Akira TAGOH <akira@tagoh.org> | 2012-05-14 12:06:12 +0900 |
commit | bc4517d8e5af8f31821ec8d9990765dad2867dd4 (patch) | |
tree | 9d597b46f92ffb600fabe1eb4aec656ffedf8ff3 /src/fcdbg.c | |
parent | 5ac12c0e94128ea63e3e74b4e602cf0c74661bce (diff) |
Bug 19128 - Handling whitespace in aliases
Add a new attribute `ignore-blanks' to <test>.
When this is set to "true", any blanks in the string will be ignored
on comparison. This takes effects for compare="eq" or "not_eq" only.
Also changed the behavior of the comparison on <alias> too.
Diffstat (limited to 'src/fcdbg.c')
-rw-r--r-- | src/fcdbg.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/fcdbg.c b/src/fcdbg.c index 10f3cc9a..a1ed2b2d 100644 --- a/src/fcdbg.c +++ b/src/fcdbg.c @@ -185,9 +185,18 @@ FcPatternPrint (const FcPattern *p) printf ("\n"); } +#define FcOpFlagsPrint(_o_) \ + { \ + int f = FC_OP_GET_FLAGS (_o_); \ + if (f & FcOpFlagIgnoreBlanks) \ + printf ("(ignore blanks)"); \ + } + void -FcOpPrint (FcOp op) +FcOpPrint (FcOp op_) { + FcOp op = FC_OP_GET_OP (op_); + switch (op) { case FcOpInteger: printf ("Integer"); break; case FcOpDouble: printf ("Double"); break; @@ -208,8 +217,8 @@ FcOpPrint (FcOp op) case FcOpQuest: printf ("Quest"); break; case FcOpOr: printf ("Or"); break; case FcOpAnd: printf ("And"); break; - case FcOpEqual: printf ("Equal"); break; - case FcOpNotEqual: printf ("NotEqual"); break; + case FcOpEqual: printf ("Equal"); FcOpFlagsPrint (op_); break; + case FcOpNotEqual: printf ("NotEqual"); FcOpFlagsPrint (op_); break; case FcOpLess: printf ("Less"); break; case FcOpLessEqual: printf ("LessEqual"); break; case FcOpMore: printf ("More"); break; @@ -227,7 +236,7 @@ FcOpPrint (FcOp op) case FcOpCeil: printf ("Ceil"); break; case FcOpRound: printf ("Round"); break; case FcOpTrunc: printf ("Trunc"); break; - case FcOpListing: printf ("Listing"); break; + case FcOpListing: printf ("Listing"); FcOpFlagsPrint (op_); break; case FcOpInvalid: printf ("Invalid"); break; } } @@ -236,7 +245,7 @@ void FcExprPrint (const FcExpr *expr) { if (!expr) printf ("none"); - else switch (expr->op) { + else switch (FC_OP_GET_OP (expr->op)) { case FcOpInteger: printf ("%d", expr->u.ival); break; case FcOpDouble: printf ("%g", expr->u.dval); break; case FcOpString: printf ("\"%s\"", expr->u.sval); break; @@ -287,7 +296,7 @@ FcExprPrint (const FcExpr *expr) case FcOpComma: FcExprPrint (expr->u.tree.left); printf (" "); - switch (expr->op) { + switch (FC_OP_GET_OP (expr->op)) { case FcOpAssign: printf ("Assign"); break; case FcOpAssignReplace: printf ("AssignReplace"); break; case FcOpPrependFirst: printf ("PrependFirst"); break; @@ -296,14 +305,14 @@ FcExprPrint (const FcExpr *expr) case FcOpAppendLast: printf ("AppendLast"); break; case FcOpOr: printf ("Or"); break; case FcOpAnd: printf ("And"); break; - case FcOpEqual: printf ("Equal"); break; - case FcOpNotEqual: printf ("NotEqual"); break; + case FcOpEqual: printf ("Equal"); FcOpFlagsPrint (expr->op); break; + case FcOpNotEqual: printf ("NotEqual"); FcOpFlagsPrint (expr->op); break; case FcOpLess: printf ("Less"); break; case FcOpLessEqual: printf ("LessEqual"); break; case FcOpMore: printf ("More"); break; case FcOpMoreEqual: printf ("MoreEqual"); break; case FcOpContains: printf ("Contains"); break; - case FcOpListing: printf ("Listing"); break; + case FcOpListing: printf ("Listing"); FcOpFlagsPrint (expr->op); break; case FcOpNotContains: printf ("NotContains"); break; case FcOpPlus: printf ("Plus"); break; case FcOpMinus: printf ("Minus"); break; |