>>>> "giacomo" == giacomo boffi
<giacomo.boffi(a)polimi.it> writes:
giacomo> i'm going to take a short course in fontconfig, if i find
giacomo> someone to teach me,
Install the XEmacs general-docs package, then C-h i d m fontconfig
RET. Don't believe everything you read, I know for sure that those
docs are out of date etc (my version is more up-to-date than the one
Keith Packard distributes, but it's still only about 90% reality :-).
giacomo> but for now i'm really thinking that
giacomo> most of the font reported above are not in my system
Look in /etc/fonts/fonts.conf. Urk! I have a couple of such
references. So why don't I crash?!? Oh, I see, I must have got lazy
at some point because I've got specific fonts in xrdb. If I clear
them out, I get the crash.
OK, try this patch, please:
Index: src/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.758.2.21
diff -u -U0 -r1.758.2.21 ChangeLog
--- src/ChangeLog 15 Mar 2005 05:23:36 -0000 1.758.2.21
+++ src/ChangeLog 17 Mar 2005 14:07:06 -0000
@@ -0,0 +1,7 @@
+2005-03-17 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * objects-x.c (DEBUG_XFT0):
+ (DEBUG_XFT1):
+ (DEBUG_XFT2):
+ Mule-ize.
+
Index: src/objects-x.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/objects-x.c,v
retrieving revision 1.26.2.15
diff -u -r1.26.2.15 objects-x.c
--- src/objects-x.c 15 Mar 2005 05:24:35 -0000 1.26.2.15
+++ src/objects-x.c 17 Mar 2005 14:07:45 -0000
@@ -1099,17 +1099,39 @@
return fccs;
}
+/* NOTE: formats must be Itext, because stderr_out takes an Itext!!
+ The easiest way to guarantee that is to keep to ASCII (7-bit). */
+
/* print message to stderr: one string argument */
#define DEBUG_XFT0(level,s) \
- if (debug_xft > level) stderr_out (s)
+do { \
+ if (debug_xft > level) { \
+ Ibyte *what_were_you_thinking; \
+ EXTERNAL_TO_C_STRING (s, what_were_you_thinking, Qutf_8); \
+ stderr_out (what_were_you_thinking); \
+ } \
+} while (0)
/* print message to stderr: one formatted string argument */
#define DEBUG_XFT1(level,format,s) \
- if (debug_xft > level) stderr_out (format, s)
+do { \
+ if (debug_xft > level) { \
+ Ibyte *what_were_you_thinking; \
+ EXTERNAL_TO_C_STRING (s, what_were_you_thinking, Qutf_8); \
+ stderr_out (format, what_were_you_thinking); \
+ } \
+} while (0)
/* print message to stderr: two formatted string arguments */
-#define DEBUG_XFT2(level,format,s1,s2) \
- if (debug_xft > level) stderr_out (format, s1, s2)
+#define DEBUG_XFT2(level,format,s1,s2) \
+do { \
+ if (debug_xft > level) { \
+ Ibyte *what_were_you_thinking, *obviously_you_were_not; \
+ EXTERNAL_TO_C_STRING (s1, what_were_you_thinking, Qutf_8); \
+ EXTERNAL_TO_C_STRING (s2, obviously_you_were_not, Qutf_8); \
+ stderr_out (format, what_were_you_thinking, obviously_you_were_not); \
+ } \
+} while (0)
/* print an Xft pattern to stderr
LEVEL is the debug level (to compare to debug_xft)
--
School of Systems and Information Engineering
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.