[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Tue May 1 04:23:25 PDT 2012


 src/fccfg.c |    2 -
 src/fcdbg.c |   79 ++++++++++++++++++++++++++++++++++++++++++------------------
 src/fcint.h |    8 +++++-
 3 files changed, 64 insertions(+), 25 deletions(-)

New commits:
commit d2718257f9aa3e6071f649296a52a22684c43e96
Author: Akira TAGOH <akira at tagoh.org>
Date:   Tue May 1 20:18:41 2012 +0900

    Output more verbose debugging log to show where to insert the element into the value list

diff --git a/src/fccfg.c b/src/fccfg.c
index 0d0b778..f9cdaaf 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -1302,7 +1302,7 @@ FcConfigAdd (FcValueListPtr *head,
     if (FcDebug () & FC_DBG_EDIT)
     {
 	printf ("%s list before ", append ? "Append" : "Prepend");
-	FcValueListPrint (*head);
+	FcValueListPrintWithPosition (*head, *prev);
 	printf ("\n");
     }
 
diff --git a/src/fcdbg.c b/src/fcdbg.c
index cf2ff08..10f3cc9 100644
--- a/src/fcdbg.c
+++ b/src/fcdbg.c
@@ -26,59 +26,92 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-void
-FcValuePrint (const FcValue v)
+static void
+_FcValuePrint (const FcValue v)
 {
     switch (v.type) {
     case FcTypeVoid:
-	printf (" <void>");
+	printf ("<void>");
 	break;
     case FcTypeInteger:
-	printf (" %d(i)", v.u.i);
+	printf ("%d(i)", v.u.i);
 	break;
     case FcTypeDouble:
-	printf (" %g(f)", v.u.d);
+	printf ("%g(f)", v.u.d);
 	break;
     case FcTypeString:
-	printf (" \"%s\"", v.u.s);
+	printf ("\"%s\"", v.u.s);
 	break;
     case FcTypeBool:
-	printf (" %s", v.u.b ? "FcTrue" : "FcFalse");
+	printf ("%s", v.u.b ? "FcTrue" : "FcFalse");
 	break;
     case FcTypeMatrix:
-	printf (" (%f %f; %f %f)", v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy);
+	printf ("(%f %f; %f %f)", v.u.m->xx, v.u.m->xy, v.u.m->yx, v.u.m->yy);
 	break;
     case FcTypeCharSet:	/* XXX */
-	printf (" ");
 	FcCharSetPrint (v.u.c);
 	break;
     case FcTypeLangSet:
-	printf (" ");
 	FcLangSetPrint (v.u.l);
 	break;
     case FcTypeFTFace:
-	printf (" face");
+	printf ("face");
 	break;
     }
 }
 
 void
+FcValuePrint (const FcValue v)
+{
+    printf (" ");
+    _FcValuePrint (v);
+}
+
+void
+FcValuePrintWithPosition (const FcValue v, FcBool show_pos_mark)
+{
+    if (show_pos_mark)
+	printf (" [insert here] ");
+    else
+	printf (" ");
+    _FcValuePrint (v);
+}
+
+static void
+FcValueBindingPrint (const FcValueListPtr l)
+{
+    switch (l->binding) {
+    case FcValueBindingWeak:
+	printf ("(w)");
+	break;
+    case FcValueBindingStrong:
+	printf ("(s)");
+	break;
+    case FcValueBindingSame:
+	printf ("(=)");
+	break;
+    }
+}
+
+void
+FcValueListPrintWithPosition (FcValueListPtr l, const FcValueListPtr pos)
+{
+    for (; l != NULL; l = FcValueListNext(l))
+    {
+	FcValuePrintWithPosition (FcValueCanonicalize (&l->value), pos != NULL && l == pos);
+	FcValueBindingPrint (l);
+    }
+    if (!pos)
+	printf (" [insert here]");
+}
+
+void
 FcValueListPrint (FcValueListPtr l)
 {
     for (; l != NULL; l = FcValueListNext(l))
     {
-	FcValuePrint (FcValueCanonicalize(&l->value));
-	switch (l->binding) {
-	case FcValueBindingWeak:
-	    printf ("(w)");
-	    break;
-	case FcValueBindingStrong:
-	    printf ("(s)");
-	    break;
-	case FcValueBindingSame:
-	    printf ("(=)");
-	    break;
-	}
+	FcValuePrint (FcValueCanonicalize (&l->value));
+	FcValueBindingPrint (l);
     }
 }
 
diff --git a/src/fcint.h b/src/fcint.h
index fb4a64b..a982b77 100644
--- a/src/fcint.h
+++ b/src/fcint.h
@@ -701,7 +701,13 @@ FcCharSetGetNumbers(const FcCharSet *c);
 
 /* fcdbg.c */
 FcPrivate void
-FcValueListPrint (const FcValueListPtr l);
+FcValuePrintWithPosition (const FcValue v, FcBool show_pos_mark);
+
+FcPrivate void
+FcValueListPrintWithPosition (FcValueListPtr l, const FcValueListPtr pos);
+
+FcPrivate void
+FcValueListPrint (FcValueListPtr l);
 
 FcPrivate void
 FcLangSetPrint (const FcLangSet *ls);


More information about the Fontconfig mailing list