diff src/objects-xlike-inc.c @ 4757:a23ac8f90a49

Improve warning and error messages from Xft. Default debug-level messages off. Cast away Xft warnings from C compiler.
author Stephen J. Turnbull <stephen@xemacs.org>
date Wed, 18 Nov 2009 15:25:00 +0900
parents 5d67242595a8
children 75975fd0b7fc
line wrap: on
line diff
--- a/src/objects-xlike-inc.c	Wed Nov 18 11:28:58 2009 +0900
+++ b/src/objects-xlike-inc.c	Wed Nov 18 15:25:00 2009 +0900
@@ -447,8 +447,18 @@
 	PRINT_XFT_PATTERN (3, "FcDefaultSubstitute'ed name is %s\n", p);
 	/* #### check fcresult of following match? */
 	fontxft = FcFontMatch (fcc, p, &fcresult);
-	/* this prints the long fontconfig name */
-	PRINT_XFT_PATTERN (1, "FcFontMatch'ed name is %s\n", fontxft);
+	switch (fcresult)
+	  {
+	  /* case FcResultOutOfMemory: */
+	  case FcResultNoMatch:
+	  case FcResultTypeMismatch:
+	  case FcResultNoId:
+	    break;
+	  case FcResultMatch:
+	    /* this prints the long fontconfig name */
+	    PRINT_XFT_PATTERN (1, "FcFontMatch'ed name is %s\n", fontxft);
+	    break;
+	  }
 	FcPatternDestroy (p);
       }
 
@@ -464,7 +474,9 @@
 
 	/* full name, including language coverage and repertoire */
 	name = FcNameUnparse (p);
-	eicpy_ext (eistr_fullname, (Extbyte *) name, Qfc_font_name_encoding);
+	eicpy_ext (eistr_fullname,
+		   (Extbyte *) (name ? name : "NOT FOUND"),
+		   Qfc_font_name_encoding);
 	free (name);
 
 	/* long name, omitting coverage and repertoire, plus a number
@@ -483,7 +495,9 @@
 	FcPatternDel (p, FC_SCALE);
 	FcPatternDel (p, FC_FONTVERSION);
 	name = FcNameUnparse (p);
-	eicpy_ext (eistr_longname, (Extbyte *) name, Qfc_font_name_encoding);
+	eicpy_ext (eistr_longname,
+		   (Extbyte *) (name ? name : "NOT FOUND"),
+		   Qfc_font_name_encoding);
 	free (name);
 
 	/* nickname, just family and size, but
@@ -497,7 +511,9 @@
 	FcPatternDel (p, FC_SCALABLE);
 	FcPatternDel (p, FC_DPI);
 	name = FcNameUnparse (p);
-	eicpy_ext (eistr_shortname, (Extbyte *) name, Qfc_font_name_encoding);
+	eicpy_ext (eistr_shortname,
+		   (Extbyte *) (name ? name : "NOT FOUND"),
+		   Qfc_font_name_encoding);
 	free (name);
 
 	FcPatternDestroy (p);