On Mon, 01 May 2000 16:36:06 -0400 (EDT), Alexander N. Kabaev wrote:

>Here is the answer to my question from Juliusz Chroboczek:
>
>ANK> I recently discovered that using your font server and/or
>ANK> xfsft-based TrueType rasteriser with Lesstif causes Lesstif to
>ANK> dump core. As it has turned aout, the problem is caused by the
>ANK> fact, that TrueType fonts have min_bounds.width =
>ANK> -max_bounds.width in XFontStruct.
>
>This is correct.
>
>ANK> Lesstif calculates average character width in font using formula
>ANK> (min_width+max_width)/2 which obviously produces 0 in result.
>
>This is not.
>
>ANK> Is it legal to have characters with negative width in
>ANK> left-to-right fonts?
>
>Yes, unfortunately.  I believe that this is an error in the X11
>specifications, and most clients do not know how to deal with
>negative-width glyphs (this is the case at least of Emacs/Mule and the
>``Arabox'' Arabic version of Motif).  I am thinking of making all
>advance widths positive in a future version of XFree86.
>
>ANK> If that is legal, what is the better way to calculate avarage
>ANK> character width for font?
>
>The safe way is to use the average width font property if present (but
>even this might be zero for mixed-direction fonts), and to use the
>width of `x' if not available; if the font contains no `x', use half
>the maximum width.  Please read the XLFD document, which you should
>find in the directory `xc/doc/hardcopy' of your X11 distribution (make
>sure you have the X11R6 version).
>
>Note, however, that there is no good language-independent way of
>determining the average width.  Any method you use is an
>approximation, and therefore the use of average widths should be
>avoided whenever possible.

Hmm, one should address crashs as early as possible. Having
no perfect solution at my hands and a new release upcoming 
we might just address the "average_width==0 case" by adding
one of the given fallbacks?
(the "wrong" formula seems to appear more than once - just
in case someone will fix it tonight while I'm sleeping :-)


------------------------------------------------------------------
  Alexander Mai
  [EMAIL PROTECTED]
------------------------------------------------------------------


Reply via email to