emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zero height line causing arithmetic errors


From: Dan Nicolaescu
Subject: Re: Zero height line causing arithmetic errors
Date: Wed, 18 Jun 2008 18:19:21 -0700

Kenichi Handa <address@hidden> writes:

  > In article <address@hidden>, Stefan Monnier <address@hidden> writes:
  > 
  > > My MPC.el package uses an overlay placed at the end of a line with an
  > > after-string of #("\n" 0 1 (face (:height 0.05 :inverse-video t)))
  > > in order to place a horizontal line in the display.
  > 
  > > In Emacs-22, this worked fine (except the line was a bit thicker than
  > > 0.05 times the base line height).  In Emacs-CVS until recently this
  > > worked except that the line was full-height (i.e. 13 pixels in my case).
  > > Recently, it has started to cause more problems because now
  > > FRAME_SMALLEST_FONT_HEIGHT returns 0, and that value is used at 2 places
  > > in the divisor position.
  > 
  > > I guess the 0 is because 13 pixels (default font height) * 0.05 -> 0.65
  > > pixels which are truncated to 0.
  > 
  > > I currently use the patch below, which makes it all work again (tho
  > > still with the problem that the 0.05 isn't taken into account and line
  > > line is 13 pixel think), but I suspect it's not the right place to fix
  > > it,
  > 
  > For the problem of FRAME_SMALLEST_FONT_HEIGHT being set to
  > 0, I installed the similar change.
  > 
  > And, for the problem of too tall line-height, I found the
  > culprit is XftTextExtents8.  When the pixelsize of a font is
  > less than 5 or so, for some font, it returns strange values
  > in `extents' argument.   For instance, with the attached
  > test problem, I get this result:
  > 
  > % ./xfttest 'bitstream vera sans mono'
  > pixelsize=9, ascent=8, descent=2
  > pixelsize=8, ascent=7, descent=2
  > pixelsize=7, ascent=6, descent=2
  > pixelsize=6, ascent=5, descent=2
  > pixelsize=5, ascent=4, descent=2
  > pixelsize=4, ascent=4, descent=1
  > pixelsize=3, ascent=3, descent=1
  > pixelsize=2, ascent=2, descent=1
  > pixelsize=1, ascent=1, descent=1
  > pixelsize=0, ascent=1, descent=1
  > % ./xfttest 'dejavu sans mono'
  > pixelsize=9, ascent=8, descent=2
  > pixelsize=8, ascent=7, descent=2
  > pixelsize=7, ascent=6, descent=2
  > pixelsize=6, ascent=5, descent=1
  > pixelsize=5, ascent=5, descent=1
  > pixelsize=4, ascent=5, descent=2  <-- increasing!
  > pixelsize=3, ascent=4, descent=4
  > pixelsize=2, ascent=5, descent=5
  > pixelsize=1, ascent=5, descent=5
  > pixelsize=0, ascent=5, descent=5

This works fine for me on Fedora 9:

./xfttest  'dejavu sans mono'
pixelsize=9, ascent=8, descent=2
pixelsize=8, ascent=8, descent=2
pixelsize=7, ascent=6, descent=2
pixelsize=6, ascent=5, descent=2
pixelsize=5, ascent=4, descent=2
pixelsize=4, ascent=4, descent=1
pixelsize=3, ascent=3, descent=1
pixelsize=2, ascent=2, descent=1
pixelsize=1, ascent=1, descent=1
pixelsize=0, ascent=1, descent=1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]