summaryrefslogtreecommitdiff
path: root/src/fcdbg.c
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2012-04-11 19:52:35 +0900
committerAkira TAGOH <akira@tagoh.org>2012-05-14 12:06:12 +0900
commitbc4517d8e5af8f31821ec8d9990765dad2867dd4 (patch)
tree9d597b46f92ffb600fabe1eb4aec656ffedf8ff3 /src/fcdbg.c
parent5ac12c0e94128ea63e3e74b4e602cf0c74661bce (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.c27
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;