BUG: Improper handling of right tab stops at right margin


Subject: BUG: Improper handling of right tab stops at right margin
rob.campbell@att.net
Date: Fri Mar 02 2001 - 12:13:48 CST


This is a long bug description. If you're only
interested in a work around, skip to the end.

In fact, this bug is independent of whether the tab stop
is of the right, center, or left variety. But this
technique is generally used to create right-justified
text on a line that contains other text which should not
be right-justified. So, practically speaking, it
applies only to right tab stops.

The problem is that AbiWord sees the tab as a character
to be wrapped, since it starts past the right margin. I
checked the AW file in a text editor, and everything
looks fine, so this is a layout problem. What actually
happens on screen depends on what text and tabs are
already present on the line:

(1) IF THE LINE IS BLANK AND THERE ARE NO OTHER TAB
STOPS SET: AW seems to eat the tabs, but inspecting the
file in a text editor shows that they are there. Text
entered after the pressing tab starts at the left margin
and is left justified. If the line is long enough to
wrap, it will not; the behavior that results is hard to
describe. (You would never want to do this if you were
using tabs in this way, but it seems that whatever code
is causing this should catch this condition).

(2) IF THE LINE HAS ANOTHER TAB STOP IN ADDITION TO THE
RIGHT-TAB STOP: When you hit tab the second time, the
cursor will immediately wrap to the next line AND it
will move to the first tab position! This is, at least,
an amusing bug: It is the second tab which causes the
wrap, but since the tab itself wraps to the next line
and becomes a different kind of tab, there is no longer
a right-tab to cause the wrap, so shouldn't it unwrap?
And would it not then be a right tab again? The Tab
Uncertainty Principle. Now that I think about it, this
behavior is right in line with how you would want AW to
act if the tab was a visible character.

(3)IF THE LINE HAS NO OTHER TAB STOPS BUT DOES ALREADY
HAVE LEADING TEXT: Pressing tab will crash AW. Dr.
Watson (on Windows) says "Exception access violation
(0x0000005), Address: 0x78011d1f".

WORK AROUND: Rather than setting the tab exactly at the
right margin, set it just short. For example, on my
system, the right margin is by default at 6.5000". Set
the tab at 6.4999".



This archive was generated by hypermail 2b25 : Fri Mar 02 2001 - 12:13:53 CST