void FcTestPrint(const FcTest *test) { switch (test->kind) { case FcMatchPattern: printf("pattern "); break; case FcMatchFont: printf("font "); break; case FcMatchScan: printf("scan "); break; } switch (test->qual) { case FcQualAny: printf("any "); break; case FcQualAll: printf("all "); break; case FcQualFirst: printf("first "); break; case FcQualNotFirst: printf("not_first "); break; } printf("%s ", FcObjectName(test->object)); FcOpPrint(test->op); printf(" "); FcExprPrint(test->expr); printf("\n"); }
void FcEditPrint (const FcEdit *edit) { printf ("Edit %s ", edit->field); FcOpPrint (edit->op); printf (" "); FcExprPrint (edit->expr); }
void FcEditPrint (const FcEdit *edit) { printf ("Edit %s ", FcObjectName (edit->object)); FcOpPrint (edit->op); printf (" "); FcExprPrint (edit->expr); }
void FcEditPrint(const FcEdit *edit) { #ifdef _DEBUG printf("Edit %s ", FcObjectName(edit->object)); FcOpPrint(edit->op); printf(" "); FcExprPrint(edit->expr); #endif }
void FcExprPrint(const FcExpr *expr) { if (!expr) printf("none"); 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; case FcOpMatrix: printf("["); FcExprPrint(expr->u.mexpr->xx); printf(" "); FcExprPrint(expr->u.mexpr->xy); printf("; "); FcExprPrint(expr->u.mexpr->yx); printf(" "); FcExprPrint(expr->u.mexpr->yy); printf("]"); break; case FcOpRange: break; case FcOpBool: printf("%s", expr->u.bval ? "true" : "false"); break; case FcOpCharSet: printf("charset\n"); break; case FcOpLangSet: printf("langset:"); FcLangSetPrint(expr->u.lval); printf("\n"); break; case FcOpNil: printf("nil\n"); break; case FcOpField: printf("%s ", FcObjectName(expr->u.name.object)); switch ((int)expr->u.name.kind) { case FcMatchPattern: printf("(pattern) "); break; case FcMatchFont: printf("(font) "); break; } break; case FcOpConst: printf("%s", expr->u.constant); break; case FcOpQuest: FcExprPrint(expr->u.tree.left); printf(" quest "); FcExprPrint(expr->u.tree.right->u.tree.left); printf(" colon "); FcExprPrint(expr->u.tree.right->u.tree.right); break; case FcOpAssign: case FcOpAssignReplace: case FcOpPrependFirst: case FcOpPrepend: case FcOpAppend: case FcOpAppendLast: case FcOpOr: case FcOpAnd: case FcOpEqual: case FcOpNotEqual: case FcOpLess: case FcOpLessEqual: case FcOpMore: case FcOpMoreEqual: case FcOpContains: case FcOpListing: case FcOpNotContains: case FcOpPlus: case FcOpMinus: case FcOpTimes: case FcOpDivide: case FcOpComma: FcExprPrint(expr->u.tree.left); printf(" "); switch (FC_OP_GET_OP(expr->op)) { case FcOpAssign: printf("Assign"); break; case FcOpAssignReplace: printf("AssignReplace"); break; case FcOpPrependFirst: printf("PrependFirst"); break; case FcOpPrepend: printf("Prepend"); break; case FcOpAppend: printf("Append"); break; case FcOpAppendLast: printf("AppendLast"); break; case FcOpOr: printf("Or"); break; case FcOpAnd: printf("And"); 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"); FcOpFlagsPrint(expr->op); break; case FcOpNotContains: printf("NotContains"); break; case FcOpPlus: printf("Plus"); break; case FcOpMinus: printf("Minus"); break; case FcOpTimes: printf("Times"); break; case FcOpDivide: printf("Divide"); break; case FcOpComma: printf("Comma"); break; default: break; } printf(" "); FcExprPrint(expr->u.tree.right); break; case FcOpNot: printf("Not "); FcExprPrint(expr->u.tree.left); break; case FcOpFloor: printf("Floor "); FcExprPrint(expr->u.tree.left); break; case FcOpCeil: printf("Ceil "); FcExprPrint(expr->u.tree.left); break; case FcOpRound: printf("Round "); FcExprPrint(expr->u.tree.left); break; case FcOpTrunc: printf("Trunc "); FcExprPrint(expr->u.tree.left); break; case FcOpInvalid: printf("Invalid"); break; } }
void FcExprPrint (const FcExpr *expr) { if (!expr) printf ("none"); else switch (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; case FcOpMatrix: printf ("[%g %g %g %g]", expr->u.mval->xx, expr->u.mval->xy, expr->u.mval->yx, expr->u.mval->yy); break; case FcOpBool: printf ("%s", expr->u.bval ? "true" : "false"); break; case FcOpCharSet: printf ("charset\n"); break; case FcOpNil: printf ("nil\n"); break; case FcOpField: printf ("%s", expr->u.field); break; case FcOpConst: printf ("%s", expr->u.constant); break; case FcOpQuest: FcExprPrint (expr->u.tree.left); printf (" quest "); FcExprPrint (expr->u.tree.right->u.tree.left); printf (" colon "); FcExprPrint (expr->u.tree.right->u.tree.right); break; case FcOpAssign: case FcOpAssignReplace: case FcOpPrependFirst: case FcOpPrepend: case FcOpAppend: case FcOpAppendLast: case FcOpOr: case FcOpAnd: case FcOpEqual: case FcOpNotEqual: case FcOpLess: case FcOpLessEqual: case FcOpMore: case FcOpMoreEqual: case FcOpContains: case FcOpListing: case FcOpNotContains: case FcOpPlus: case FcOpMinus: case FcOpTimes: case FcOpDivide: case FcOpComma: FcExprPrint (expr->u.tree.left); printf (" "); switch (expr->op) { case FcOpAssign: printf ("Assign"); break; case FcOpAssignReplace: printf ("AssignReplace"); break; case FcOpPrependFirst: printf ("PrependFirst"); break; case FcOpPrepend: printf ("Prepend"); break; case FcOpAppend: printf ("Append"); break; 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 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 FcOpNotContains: printf ("NotContains"); break; case FcOpPlus: printf ("Plus"); break; case FcOpMinus: printf ("Minus"); break; case FcOpTimes: printf ("Times"); break; case FcOpDivide: printf ("Divide"); break; case FcOpComma: printf ("Comma"); break; default: break; } printf (" "); FcExprPrint (expr->u.tree.right); break; case FcOpNot: printf ("Not "); FcExprPrint (expr->u.tree.left); break; case FcOpFloor: printf ("Floor "); FcExprPrint (expr->u.tree.left); break; case FcOpCeil: printf ("Ceil "); FcExprPrint (expr->u.tree.left); break; case FcOpRound: printf ("Round "); FcExprPrint (expr->u.tree.left); break; case FcOpTrunc: printf ("Trunc "); FcExprPrint (expr->u.tree.left); break; case FcOpInvalid: printf ("Invalid"); break; } }