[Bug: 21.4.15] list-fonts doesn't list all fonts

Ben Wing ben at xemacs.org
Mon Dec 5 23:29:34 EST 2005


Vin Shelton wrote:

>Mark Purtill <purtill at alum.mit.edu> writes:
>
>  
>
>>================================================================
>>Dear Bug Team!
>>
>>Running xemacs 21.4.15 on a gentoo system, (list-fonts "*") only
>>returns 5000 fonts, although on my system XListFonts returns 12836
>>fonts.  The result is that when I am using a font that doesn't happen
>>to be in the first 5000 according to whatever bizarre order X uses, if
>>I go to the Options menu and click on Font, I get a greyed out "Cannot
>>parse current font" (which is wrong: the font was parsed fine, it just
>>wasn't found in the cache).
>>
>>This is because in src/objects-x.c, we find:
>>
>>/* Unbounded, for sufficiently small values of infinity... */
>>#define MAX_FONT_COUNT 5000
>>
>>and then
>>
>>x_list_fonts (Lisp_Object pattern, Lisp_Object device)
>>{
>>  Extbyte **names;
>>  int count = 0;
>>  Lisp_Object result = Qnil;
>>  const Extbyte *patternext;
>>
>>  LISP_STRING_TO_EXTERNAL (pattern, patternext, Qx_font_name_encoding);
>>
>>  names = XListFonts (DEVICE_X_DISPLAY (XDEVICE (device)),
>>		      patternext, MAX_FONT_COUNT, &count);
>>  while (count--)
>>    result = Fcons (build_ext_string (names[count], Qx_font_name_encoding),
>>		    result);
>>  if (names)
>>    XFreeFontNames (names);
>>  return result;
>>}
>>
>>Could 5000 be replaced with a number that is unbounded for a somewhat
>>larger value of infinity?  (I replaced it with 32768 and recompiled,
>>and the problem went away).  Also, it would be nice if when this limit
>>is exceeded a more useful error message was given (since it took me a
>>couple of hours to track this down).
>>    
>>
>
>Do any of our font experts have an opinion on this?  What would be the
>downside of my bumping this 5000 up to 32,768?
>  
>
this number should be replaced with INT_MAX.




More information about the XEmacs-Beta mailing list