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