The maxnames parameter of XListFonts can take values that exceed 32767
(the hardcoded value) on platforms where sizeof(int) is greater than 2
bytes. The patch supplied eliminates the problem. It was made for
XFree-4.5.0, not x.org for two reasons:

1. source code of old utilities doesn't differ too much between the
two distributions;
2. I don't have x.org sources handy.

---- patch BEGIN ----
diff -ur xc.orig/programs/xfontsel/xfontsel.c xc/programs/xfontsel/xfontsel.c
--- xc.orig/programs/xfontsel/xfontsel.c        2004-04-04 02:38:55.000000000 
+0400
+++ xc/programs/xfontsel/xfontsel.c     2006-02-28 17:51:11.000000000 +0300
@@ -505,7 +505,7 @@
     int work_priority = 0;

     fontNames = parseRec->fontNames =
-       XListFonts(dpy, AppRes.pattern, 32767, &numFonts);
+       XListFonts(dpy, AppRes.pattern, (int) ((((long) ((unsigned) -1)) +
1) / 2 - 1), &numFonts);

     fonts = (FontValues*)XtMalloc( numFonts*sizeof(FontValues) );
     fontInSet = (Boolean*)XtMalloc( numFonts*sizeof(Boolean) );
---- patch END ----

Reply via email to