[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#688: Arithmetic error at 'About Emacs' when --with-xft=no
From: |
Peter Tury |
Subject: |
bug#688: Arithmetic error at 'About Emacs' when --with-xft=no |
Date: |
Mon, 11 Aug 2008 23:02:56 +0200 |
Hi,
now it might not to be so useful, but let me note: I tried emacs -q
and set debug-on-error; then I repeated the problematic steps and
found that I see the arith-error only if I want to move the point in
the half-drawn buffer. E.g. when I pushed some arrow keys I saw in the
*Backtrace* buffer this:
Debugger entered--Lisp error: (arith-error)
pos-visible-in-window-p(t nil t)
line-move-partial(1 nil nil)
line-move(1 nil nil 1)
byte-code("Â Ã $" [arg try-vscroll line-move nil] 5)
next-line(1 1)
call-interactively(next-line nil nil)
When I tried to "drag" by the mouse I got the attachment.
Moreover when I resized the whole frame, the about-emacs buffer (what
was active then) became blank (because of lack of redisplay?), but
arith-error didn't appear in the *Messages* buffer (or anywhere else)
nor the *Backtrace* buffer appeared, even if I turned on
debug-on-error previously. Is this OK?
Thanks,
P
2008/8/11 Chong Yidong <cyd@stupidchicken.com>:
>> $ ./configure --with-gif=no --with-tiff=no --with-xft=no
>> $ make bootstrap
>>
>> Now it seems I could get rid of antialiasing, but `about-emacs' fails:
>> I get "Arithmetic error" after the copyright line drawn:
>
> The arithmetic error was due to a failure of the redisplay engine to
> calculate tab widths correctly when the current font's space character
> has a width of zero. I've fixed this, but the issue of why the font has
> zero space width remains unsolved.
>
> As a result, the tab widths in `M-x about-emacs' are now zero, which is
> an obvious regression from Emacs 22.
>
> The problem at hand is the following code in ftfont_open
> (ftfont.c:1077):
>
> {
> int n;
>
> font->min_width = font->average_width = font->space_width = 0;
> for (i = 32, n = 0; i < 127; i++)
> if (FT_Load_Char (ft_face, i, FT_LOAD_DEFAULT) != 0)
> {
> int this_width = ft_face->glyph->metrics.horiAdvance >> 6;
>
> if (this_width > 0
> && (! font->min_width || font->min_width > this_width))
> font->min_width = this_width;
> if (i == 32)
> font->space_width = this_width;
> font->average_width += this_width;
> n++;
> }
>
> if (n > 0)
> font->average_width /= n;
> }
>
> For some reason, this gives zero. Handa-san, do you have any insight?
>
ar-err.txt
Description: Text document