* bug#688: Arithmetic error at 'About Emacs' when --with-xft=no
2008-08-11 18:55 bug#688: Arithmetic error at 'About Emacs' when --with-xft=no Chong Yidong
@ 2008-08-11 21:02 ` Peter Tury
2008-08-11 21:04 ` Peter Tury
2008-08-11 21:05 ` Peter Tury
2 siblings, 0 replies; 7+ messages in thread
From: Peter Tury @ 2008-08-11 21:02 UTC (permalink / raw)
To: Chong Yidong; +Cc: 688, Kenichi Handa
[-- Attachment #1: Type: text/plain, Size: 2440 bytes --]
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?
>
[-- Attachment #2: ar-err.txt --]
[-- Type: text/plain, Size: 2103 bytes --]
Debugger entered--Lisp error: (arith-error)
read-event()
byte-code("Æ \x10\x19¢)Ç=\x14\0\b¢È>
Ä\0\b¢É>\0\0\n^[Ê )\b\x18:9\0Ë\b8:3\0Ë4\0Ì\b8?\0Í `ÎÏF)\x14\x1dÐ\r8Z\0\rA@:W\0\rA@@Z\0\rA@)\x16\x15§f\0\x0e\x15\x16\x16\f\x1d@)\x0e\x17=\0Ñ\x0e\x15!\0Ò\x0e\x18\x0e\x19\x0e\x15\x0e\x1a$\0\0Ó AA\x1e^[À\0\x0e^[\x0e\x1cW©\0Ô\x0e\x17\x0e^[\x0e\x1cZ\x0e\x18\x0e\x19$À\0\x0e^[\x0e\x1dYÀ\0Ô\x0e\x17\x0e^[\x0e\x1dZT\x0e\x18\x0e\x19$)\0\0" [event object automatic-hscrolling-saved automatic-hscrolling end position read-event mouse-movement (switch-frame select-window) (switch-frame select-window) redisplay 2 1 selected-window (0 . 0) 0 5 integer-or-marker-p mouse-move-drag-overlay mouse-position mouse-scroll-subr end-point last-end-point start-window mouse-drag-overlay start-point click-count mouse-row top bottom] 6)
(track-mouse (byte-code "Æ \x10\x19¢)Ç=\x14\0\b¢È>
Ä\0\b¢É>\0\0\n^[Ê )\b\x18:9\0Ë\b8:3\0Ë4\0Ì\b8?\0Í `ÎÏF)\x14\x1dÐ\r8Z\0\rA@:W\0\rA@@Z\0\rA@)\x16\x15§f\0\x0e\x15\x16\x16\f\x1d@)\x0e\x17=\0Ñ\x0e\x15!\0Ò\x0e\x18\x0e\x19\x0e\x15\x0e\x1a$\0\0Ó AA\x1e^[À\0\x0e^[\x0e\x1cW©\0Ô\x0e\x17\x0e^[\x0e\x1cZ\x0e\x18\x0e\x19$À\0\x0e^[\x0e\x1dYÀ\0Ô\x0e\x17\x0e^[\x0e\x1dZT\x0e\x18\x0e\x19$)\0\0" [event object automatic-hscrolling-saved automatic-hscrolling end position read-event mouse-movement ... ... redisplay 2 1 selected-window ... 0 5 integer-or-marker-p mouse-move-drag-overlay mouse-position mouse-scroll-subr end-point last-end-point start-window mouse-drag-overlay start-point click-count mouse-row top bottom] 6))
(lambda nil (track-mouse (byte-code "Æ \x10\x19¢)Ç=\x14\0\b¢È>
Ä\0\b¢É>\0\0\n^[Ê )\b\x18:9\0Ë\b8:3\0Ë4\0Ì\b8?\0Í `ÎÏF)\x14\x1dÐ\r8Z\0\rA@:W\0\rA@@Z\0\rA@)\x16\x15§f\0\x0e\x15\x16\x16\f\x1d@)\x0e\x17=\0Ñ\x0e\x15!\0Ò\x0e\x18\x0e\x19\x0e\x15\x0e\x1a$\0\0Ó AA\x1e^[À\0\x0e^[\x0e\x1cW©\0Ô\x0e\x17\x0e^[\x0e\x1cZ\x0e\x18\x0e\x19$À\0\x0e^[\x0e\x1dYÀ\0Ô\x0e\x17\x0e^[\x0e\x1dZT\x0e\x18\x0e\x19$)\0\0" [event object automatic-hscrolling-saved automatic-hscrolling end position read-event mouse-movement ... ... redisplay 2 1 selected-window ... 0 5 integer-or-marker-p mouse-move-drag-overlay mouse-position mouse-scroll-subr end-point last-end-point start-window mouse-drag-overlay start-point click-count mouse-row top bottom] 6)))()
mouse-drag-track((down-mouse-1 (#<window 3 on *About GNU Emacs*> 189 (173 . 310) 2128840 nil 189 (24 . 6) nil (4 . 2) (0 . 0))) t)
mouse-drag-region((down-mouse-1 (#<window 3 on *About GNU Emacs*> 189 (173 . 310) 2128840 nil 189 (24 . 6) nil (4 . 2) (0 . 0))))
call-interactively(mouse-drag-region nil nil)
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#688: Arithmetic error at 'About Emacs' when --with-xft=no
2008-08-11 18:55 bug#688: Arithmetic error at 'About Emacs' when --with-xft=no Chong Yidong
2008-08-11 21:02 ` Peter Tury
@ 2008-08-11 21:04 ` Peter Tury
2008-08-11 21:05 ` Peter Tury
2 siblings, 0 replies; 7+ messages in thread
From: Peter Tury @ 2008-08-11 21:04 UTC (permalink / raw)
To: Chong Yidong; +Cc: 688, Kenichi Handa
[-- Attachment #1: Type: text/plain, Size: 2440 bytes --]
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?
>
[-- Attachment #2: ar-err.txt --]
[-- Type: text/plain, Size: 2103 bytes --]
Debugger entered--Lisp error: (arith-error)
read-event()
byte-code("Æ \x10\x19¢)Ç=\x14\0\b¢È>
Ä\0\b¢É>\0\0\n^[Ê )\b\x18:9\0Ë\b8:3\0Ë4\0Ì\b8?\0Í `ÎÏF)\x14\x1dÐ\r8Z\0\rA@:W\0\rA@@Z\0\rA@)\x16\x15§f\0\x0e\x15\x16\x16\f\x1d@)\x0e\x17=\0Ñ\x0e\x15!\0Ò\x0e\x18\x0e\x19\x0e\x15\x0e\x1a$\0\0Ó AA\x1e^[À\0\x0e^[\x0e\x1cW©\0Ô\x0e\x17\x0e^[\x0e\x1cZ\x0e\x18\x0e\x19$À\0\x0e^[\x0e\x1dYÀ\0Ô\x0e\x17\x0e^[\x0e\x1dZT\x0e\x18\x0e\x19$)\0\0" [event object automatic-hscrolling-saved automatic-hscrolling end position read-event mouse-movement (switch-frame select-window) (switch-frame select-window) redisplay 2 1 selected-window (0 . 0) 0 5 integer-or-marker-p mouse-move-drag-overlay mouse-position mouse-scroll-subr end-point last-end-point start-window mouse-drag-overlay start-point click-count mouse-row top bottom] 6)
(track-mouse (byte-code "Æ \x10\x19¢)Ç=\x14\0\b¢È>
Ä\0\b¢É>\0\0\n^[Ê )\b\x18:9\0Ë\b8:3\0Ë4\0Ì\b8?\0Í `ÎÏF)\x14\x1dÐ\r8Z\0\rA@:W\0\rA@@Z\0\rA@)\x16\x15§f\0\x0e\x15\x16\x16\f\x1d@)\x0e\x17=\0Ñ\x0e\x15!\0Ò\x0e\x18\x0e\x19\x0e\x15\x0e\x1a$\0\0Ó AA\x1e^[À\0\x0e^[\x0e\x1cW©\0Ô\x0e\x17\x0e^[\x0e\x1cZ\x0e\x18\x0e\x19$À\0\x0e^[\x0e\x1dYÀ\0Ô\x0e\x17\x0e^[\x0e\x1dZT\x0e\x18\x0e\x19$)\0\0" [event object automatic-hscrolling-saved automatic-hscrolling end position read-event mouse-movement ... ... redisplay 2 1 selected-window ... 0 5 integer-or-marker-p mouse-move-drag-overlay mouse-position mouse-scroll-subr end-point last-end-point start-window mouse-drag-overlay start-point click-count mouse-row top bottom] 6))
(lambda nil (track-mouse (byte-code "Æ \x10\x19¢)Ç=\x14\0\b¢È>
Ä\0\b¢É>\0\0\n^[Ê )\b\x18:9\0Ë\b8:3\0Ë4\0Ì\b8?\0Í `ÎÏF)\x14\x1dÐ\r8Z\0\rA@:W\0\rA@@Z\0\rA@)\x16\x15§f\0\x0e\x15\x16\x16\f\x1d@)\x0e\x17=\0Ñ\x0e\x15!\0Ò\x0e\x18\x0e\x19\x0e\x15\x0e\x1a$\0\0Ó AA\x1e^[À\0\x0e^[\x0e\x1cW©\0Ô\x0e\x17\x0e^[\x0e\x1cZ\x0e\x18\x0e\x19$À\0\x0e^[\x0e\x1dYÀ\0Ô\x0e\x17\x0e^[\x0e\x1dZT\x0e\x18\x0e\x19$)\0\0" [event object automatic-hscrolling-saved automatic-hscrolling end position read-event mouse-movement ... ... redisplay 2 1 selected-window ... 0 5 integer-or-marker-p mouse-move-drag-overlay mouse-position mouse-scroll-subr end-point last-end-point start-window mouse-drag-overlay start-point click-count mouse-row top bottom] 6)))()
mouse-drag-track((down-mouse-1 (#<window 3 on *About GNU Emacs*> 189 (173 . 310) 2128840 nil 189 (24 . 6) nil (4 . 2) (0 . 0))) t)
mouse-drag-region((down-mouse-1 (#<window 3 on *About GNU Emacs*> 189 (173 . 310) 2128840 nil 189 (24 . 6) nil (4 . 2) (0 . 0))))
call-interactively(mouse-drag-region nil nil)
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#688: Arithmetic error at 'About Emacs' when --with-xft=no
2008-08-11 18:55 bug#688: Arithmetic error at 'About Emacs' when --with-xft=no Chong Yidong
2008-08-11 21:02 ` Peter Tury
2008-08-11 21:04 ` Peter Tury
@ 2008-08-11 21:05 ` Peter Tury
2008-09-03 20:23 ` Peter Tury
2 siblings, 1 reply; 7+ messages in thread
From: Peter Tury @ 2008-08-11 21:05 UTC (permalink / raw)
To: Chong Yidong; +Cc: 688, Kenichi Handa
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?
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#688: Arithmetic error at 'About Emacs' when --with-xft=no
2008-08-11 21:05 ` Peter Tury
@ 2008-09-03 20:23 ` Peter Tury
0 siblings, 0 replies; 7+ messages in thread
From: Peter Tury @ 2008-09-03 20:23 UTC (permalink / raw)
To: Chong Yidong; +Cc: 688, Kenichi Handa
Hi,
FYI
today I made
cvs update -dP
make maintainer-clean
./configure --with-xft=no
make bootstrap
and the error doesn't show up in this freshly compiled Emacs (e.g.
About buffer is drawn well).
\bye
P
2008/8/11 Peter Tury <tury.peter@gmail.com>:
> 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?
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread