*BSD News Article 54861


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!chi-news.cic.net!newsfeed.internetmci.com!btnet!demon!sunsite.doc.ic.ac.uk!qmw!scott
From: scott@dcs.qmw.ac.uk (Scott Mitchell)
Newsgroups: comp.lang.tcl,comp.unix.bsd.freebsd.misc
Subject: Tk4.0p2 on FreeBSD: compiles OK but tests fail
Date: 14 Nov 1995 15:27:13 GMT
Organization: Queen Mary & Westfield College, London, UK
Lines: 2038
Message-ID: <48acgh$ei8@epsilon.qmw.ac.uk>
NNTP-Posting-Host: coffee.dcs.qmw.ac.uk
X-Newsreader: TIN [version 1.2 PL2]
Xref: euryale.cc.adfa.oz.au comp.lang.tcl:32513 comp.unix.bsd.freebsd.misc:8850

Hi all,

I'm currently trying to get Tk4.0 up and running on my
FreeBSD-2.0.5/XFree86 box.  Both tcl7.4 and tk4.0 (patched up to the 'p2'
level) compiled right out of the box.  Tcl needs a minor change under
FreeBSD to set the floating point exception mask, but once that was done it
passes all of its tests just fine.  The trouble starts with Tk -- no
complaints during the build, but _lots_ of tests fail (output from 'make
test' is included below).  Interestingly, I get less failed tests if I run
them under a pared-down X setup (just twm and an xterm) rather than my
usual mass of clients and vastly over-configured fvwm.  I reinstalled
FreeBSD only a few weeks ago so the system is still pretty much stock
otherwise.

So, here's the questions:
1) Does anyone in the FreeBSD world have Tk4 running cleanly, and if so,
   how did you do it?
2) Any Tk gurus care to comment on the test results below and suggest what
   might be causing these problems?  Most of them look pretty minor to my
   untrained eye but it's annoying that there are so many of them.
3) I'm running X11R6 (XFree86 3.something, I think).  I compiled everything
   up under SunOS 4.1.4 & X11R6 on a school machine, and got a similar raft
   of failed tests (this was surprising on a Sun machine).  The only other
   platform I have ready access to is a Solaris 2.4 box running X11R5,
   which apparently has no problems whatsoever.  Is there maybe a
   connection here?

Many thanks in advance for any help.
Cheers,

	Scott Mitchell
	scott@dcs.qmw.ac.uk


'make test' output follows. *Please* don't quote all this in replies.
-------------------- cut here --------------------
after.test
bell.test
Bell should ring now ...
bind.test
button.test
canvImg.test
canvRect.test
canvas.test
clipboard.test
color.test


==== color-1.1 Tk_GetColor procedure
==== Contents of test case:

    c255 [winfo rgb .t red]

==== Result was:
250 19 64
---- Result should have been:
255 0 0
---- color-1.1 FAILED
entry.test
event.test
fevent.test
focus.test
focusTcl.test
frame.test
geometry.test
id.test
image.test
imgBmap.test
imgPPM.test
imgPhoto.test
listbox.test


==== listbox-4.6 ConfigureListbox procedure
==== Contents of test case:

    catch {destroy .l}

    # The following code (reset geometry, withdraw, etc.) is necessary
    # to reset the state of some window managers like olvwm under
    # SunOS 4.1.3.

    wm geom . 300x300
    update
    wm geom . {}
    wm withdraw .
    listbox .l -font $fixed -width 15 -height 20
    pack .l
    update
    wm deiconify .
    set x [getsize .]
    .l configure -setgrid 1
    update
    list $x [getsize .]

==== Result was:
115x348 15x20
---- Result should have been:
115x328 15x20
---- listbox-4.6 FAILED


==== listbox-13.1 ListboxScanTo procedure
==== Contents of test case:

    .l yview 0
    .l xview 0
    .l scan mark 10 20
    .l scan dragto [expr 10-$width] [expr 20-$height]
    update
    list [.l xview] [.l yview]

==== Result was:
{0.221264 0.422414} {0.5 0.75}
---- Result should have been:
{0.201149 0.402299} {0.5 0.75}
---- listbox-13.1 FAILED


==== listbox-13.2 ListboxScanTo procedure
==== Contents of test case:

    .l yview 5
    .l xview 10
    .l scan mark 10 20
    .l scan dragto 20 40
    update
    set x [list [.l xview] [.l yview]]
    .l scan dragto [expr 20-$width] [expr 40-$height]
    update
    lappend x [.l xview] [.l yview]

==== Result was:
{0 0.201149} {0 0.25} {0.221264 0.422414} {0.5 0.75}
---- Result should have been:
{0 0.201149} {0 0.25} {0.201149 0.402299} {0.5 0.75}
---- listbox-13.2 FAILED


==== listbox-13.3 ListboxScanTo procedure
==== Contents of test case:

    .l yview moveto 1.0
    .l xview moveto 1.0
    .l scan mark 10 20
    .l scan dragto 5 10
    update
    set x [list [.l xview] [.l yview]]
    .l scan dragto [expr 5+$width] [expr 10+$height]
    update
    lappend x [.l xview] [.l yview]

==== Result was:
{0.824713 1} {0.75 1} {0.603448 0.804598} {0.25 0.5}
---- Result should have been:
{0.824713 1} {0.75 1} {0.623563 0.824713} {0.25 0.5}
---- listbox-13.3 FAILED


==== listbox-19.1 ListboxUpdateVScrollbar procedure
==== Contents of test case:

    .l configure -xscrollcommand "record x"
    set log {}
    .l insert 0 abc
    update
    .l insert 0 "This is a much longer string..."
    update
    .l delete 0 end
    update
    set log

==== Result was:
{x 0 1} {x 0 0.325581} {x 0 1}
---- Result should have been:
{x 0 1} {x 0 0.328638} {x 0 1}
---- listbox-19.1 FAILED
menu.test
menubut.test
oldpack.test
option.test
pack.test
place.test
raise.test
scale.test
scrollbar.test
select.test
send.test
text.test
textBTree.test
textDisp.test


==== textDisp-1.2 GetStyle procedure, wrapmode
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcd\nefg hijkl mnop qrstuv wxyz"
    .t tag configure x -wrap word
    .t tag configure y -wrap none
    .t tag raise y
    update
    set result [list [.t bbox 2.20]]
    .t tag add x 2.0 2.1
    lappend result [.t bbox 2.20]
    .t tag add y 1.end 2.2
    lappend result [.t bbox 2.20]

==== Result was:
{5 33 7 14} {40 33 7 14} {}
---- Result should have been:
{5 31 7 13} {40 31 7 13} {}
---- textDisp-1.2 FAILED


==== textDisp-2.1 LayoutDLine, basics
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "This is some sample text for testing."
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{138 5 7 14} {5 19 7 14}
---- Result should have been:
{138 5 7 13} {5 18 7 13}
---- textDisp-2.1 FAILED


==== textDisp-2.2 LayoutDLine, basics
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "This isx some sample text for testing."
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{138 5 7 14} {5 19 7 14}
---- Result should have been:
{138 5 7 13} {5 18 7 13}
---- textDisp-2.2 FAILED


==== textDisp-2.3 LayoutDLine, basics
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "This isxxx some sample text for testing."
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{138 5 7 14} {5 19 7 14}
---- Result should have been:
{138 5 7 13} {5 18 7 13}
---- textDisp-2.3 FAILED


==== textDisp-2.4 LayoutDLine, word wrap
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This is some sample text for testing."
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{138 5 7 14} {5 19 7 14}
---- Result should have been:
{138 5 7 13} {5 18 7 13}
---- textDisp-2.4 FAILED


==== textDisp-2.5 LayoutDLine, word wrap
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This isx some sample text for testing."
    list [.t bbox 1.13] [.t bbox 1.14] [.t bbox 1.19]

==== Result was:
{96 5 49 14} {5 19 7 14} {40 19 7 14}
---- Result should have been:
{96 5 49 13} {5 18 7 13} {40 18 7 13}
---- textDisp-2.5 FAILED


==== textDisp-2.6 LayoutDLine, word wrap
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This isxxx some sample text for testing."
    list [.t bbox 1.15] [.t bbox 1.16]

==== Result was:
{110 5 35 14} {5 19 7 14}
---- Result should have been:
{110 5 35 13} {5 18 7 13}
---- textDisp-2.6 FAILED


==== textDisp-2.7 LayoutDLine, marks and tags
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This isxxx some sample text for testing."
    .t tag add foo 1.4 1.6
    .t mark set insert 1.8
    list [.t bbox 1.2] [.t bbox 1.5] [.t bbox 1.11]

==== Result was:
{19 5 7 14} {40 5 7 14} {82 5 7 14}
---- Result should have been:
{19 5 7 13} {40 5 7 13} {82 5 7 13}
---- textDisp-2.7 FAILED


==== textDisp-2.8 LayoutDLine, extra chunk at end of dline
==== Contents of test case:

    wm geom . [expr $width+1]x$height
    update
    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "This isxx some sample text for testing."
    .t mark set foo 1.20
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{138 5 8 14} {5 19 7 14}
---- Result should have been:
{138 5 8 13} {5 18 7 13}
---- textDisp-2.8 FAILED


==== textDisp-2.9 LayoutDLine, marks and tags
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This is a very_very_long_word_that_wraps."
    list [.t bbox 1.9] [.t bbox 1.10] [.t bbox 1.25]

==== Result was:
{68 5 77 14} {5 19 7 14} {110 19 7 14}
---- Result should have been:
{68 5 77 13} {5 18 7 13} {110 18 7 13}
---- textDisp-2.9 FAILED


==== textDisp-2.10 LayoutDLine, marks and tags
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This is a very_very_long_word_that_wraps."
    .t tag add foo 1.13
    .t tag add foo 1.15
    .t tag add foo 1.17
    .t tag add foo 1.19
    list [.t bbox 1.9] [.t bbox 1.10] [.t bbox 1.25]

==== Result was:
{68 5 77 14} {5 19 7 14} {110 19 7 14}
---- Result should have been:
{68 5 77 13} {5 18 7 13} {110 18 7 13}
---- textDisp-2.10 FAILED


==== textDisp-2.11 LayoutDLine, newline width
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "a\nbb\nccc\ndddd"
    list [.t bbox 2.2] [.t bbox 3.3]

==== Result was:
{19 19 126 14} {26 33 119 14}
---- Result should have been:
{19 18 126 13} {26 31 119 13}
---- textDisp-2.11 FAILED


==== textDisp-2.12 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "\na\nbb\nccc\ndddd"
    .t tag configure x -justify center
    .t tag add x 1.0 end
    .t tag add y 3.0 3.2
    list [.t bbox 1.0] [.t bbox 2.0] [.t bbox 4.0] [.t bbox 4.2]

==== Result was:
{75 5 70 14} {71 19 7 14} {64 47 7 14} {78 47 7 14}
---- Result should have been:
{75 5 70 13} {71 18 7 13} {64 44 7 13} {78 44 7 13}
---- textDisp-2.12 FAILED


==== textDisp-2.13 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "\na\nbb\nccc\ndddd"
    .t tag configure x -justify right
    .t tag add x 1.0 end
    .t tag add y 3.0 3.2
    list [.t bbox 1.0] [.t bbox 2.0] [.t bbox 4.0] [.t bbox 4.2]

==== Result was:
{145 5 0 14} {138 19 7 14} {124 47 7 14} {138 47 7 14}
---- Result should have been:
{145 5 0 13} {138 18 7 13} {124 44 7 13} {138 44 7 13}
---- textDisp-2.13 FAILED


==== textDisp-2.14 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "\na\nbb\nccc\ndddd"
    .t tag configure x -justify center
    .t tag add x 2.0 3.1
    .t tag configure y -justify right
    .t tag add y 3.0 4.0
    .t tag raise y
    list [.t bbox 2.0] [.t bbox 3.0] [.t bbox 3.end] [.t bbox 4.0]

==== Result was:
{71 19 7 14} {131 33 7 14} {145 33 0 14} {5 47 7 14}
---- Result should have been:
{71 18 7 13} {131 31 7 13} {145 31 0 13} {5 44 7 13}
---- textDisp-2.14 FAILED


==== textDisp-2.15 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "\na\nbb\nccc\ndddd"
    .t tag configure x -justify center
    .t tag add x 2.0 3.1
    .t tag configure y -justify right
    .t tag add y 3.0 4.0
    .t tag lower y
    list [.t bbox 2.0] [.t bbox 3.0] [.t bbox 3.end] [.t bbox 4.0]

==== Result was:
{71 19 7 14} {68 33 7 14} {82 33 63 14} {5 47 7 14}
---- Result should have been:
{71 18 7 13} {68 31 7 13} {82 31 63 13} {5 44 7 13}
---- textDisp-2.15 FAILED


==== textDisp-2.16 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines"
    .t tag configure x -justify center
    .t tag add x 1.1 1.20
    .t tag add x 1.21 1.end
    list [.t bbox 1.0] [.t bbox 1.20] [.t bbox 1.36] [.t bbox 2.0]

==== Result was:
{5 5 7 14} {5 19 7 14} {43 33 7 14} {5 47 7 14}
---- Result should have been:
{5 5 7 13} {5 18 7 13} {43 31 7 13} {5 44 7 13}
---- textDisp-2.16 FAILED


==== textDisp-2.17 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines"
    .t tag configure x -justify center
    .t tag add x 1.20
    list [.t bbox 1.0] [.t bbox 1.20] [.t bbox 1.36] [.t bbox 2.0]

==== Result was:
{5 5 7 14} {19 19 7 14} {5 33 7 14} {5 47 7 14}
---- Result should have been:
{5 5 7 13} {19 18 7 13} {5 31 7 13} {5 44 7 13}
---- textDisp-2.17 FAILED


==== textDisp-2.18 LayoutDLine, justification
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert 1.0 "Lots of long words, enough to extend out of the window\n"
    .t insert end "Then\nmore lines\nThat are shorter"
    .t tag configure x -justify center
    .t tag configure y -justify right
    .t tag add x 2.0
    .t tag add y 3.0
    .t xview scroll 5 units
    list [.t bbox 2.0] [.t bbox 3.0]

==== Result was:
{26 19 7 14} {40 33 7 14}
---- Result should have been:
{26 18 7 13} {40 31 7 13}
---- textDisp-2.18 FAILED


==== textDisp-2.19 LayoutDLine, margins
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines"
    .t tag configure x -lmargin1 20 -lmargin2 40 -rmargin 15
    .t tag add x 1.0 end
    list [.t bbox 1.0] [.t bbox 1.12] [.t bbox 1.13] [.t bbox 2.0]

==== Result was:
{25 5 7 14} {109 5 36 14} {45 19 7 14} {25 75 7 14}
---- Result should have been:
{25 5 7 13} {109 5 36 13} {45 18 7 13} {25 70 7 13}
---- textDisp-2.19 FAILED


==== textDisp-2.20 LayoutDLine, margins
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Lots of long words, enough to force word wrap\nThen\nmore lines"
    .t tag configure x -lmargin1 20 -lmargin2 10 -rmargin 3
    .t tag configure y -lmargin1 15 -lmargin2 5 -rmargin 0
    .t tag raise y
    .t tag add x 1.0 end
    .t tag add y 1.13
    list [.t bbox 1.0] [.t bbox 1.13] [.t bbox 1.30] [.t bbox 2.0]

==== Result was:
{25 5 7 14} {10 19 7 14} {15 33 7 14} {25 47 7 14}
---- Result should have been:
{25 5 7 13} {10 18 7 13} {15 31 7 13} {25 44 7 13}
---- textDisp-2.20 FAILED


==== textDisp-2.21 LayoutDLine, margins
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Sample text"
    .t tag configure x -lmargin1 80 -lmargin2 80 -rmargin 100
    .t tag add x 1.0 end
    list [.t bbox 1.0] [.t bbox 1.1] [.t bbox 1.2]

==== Result was:
{85 5 60 14} {85 19 60 14} {85 33 60 14}
---- Result should have been:
{85 5 60 13} {85 18 60 13} {85 31 60 13}
---- textDisp-2.21 FAILED


==== textDisp-2.28 LayoutDLine, tabs, running out of space in dline
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 "a\tb\tc\td"
    .t bbox 1.6

==== Result was:
5 19 7 14
---- Result should have been:
5 18 7 13
---- textDisp-2.28 FAILED


==== textDisp-2.29 LayoutDLine, tabs, running out of space in dline
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 "a\tx\tabcd"
    .t bbox 1.4

==== Result was:
117 5 7 14
---- Result should have been:
117 5 7 13
---- textDisp-2.29 FAILED


==== textDisp-2.30 LayoutDLine, tabs, running out of space in dline
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 "a\tx\tabc"
    .t bbox 1.4

==== Result was:
117 5 7 14
---- Result should have been:
117 5 7 13
---- textDisp-2.30 FAILED


==== textDisp-3.1 different character sizes
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert end "Some sample text, including both large\n"
    .t insert end "characters and\nsmall\n"
    .t insert end "abc\nd\ne\nfghij"
    .t tag add big 1.5 1.10
    .t tag add big 2.11 2.14
    list [.t bbox 1.1] [.t bbox 1.6] [.t dlineinfo 1.0] [.t dlineinfo 3.0]

==== Result was:
{12 17 7 14} {52 5 13 27} {5 5 114 27 22} {5 87 35 14 10}
---- Result should have been:
{12 17 7 13} {52 5 13 27} {5 5 114 27 22} {5 85 35 13 10}
---- textDisp-3.1 FAILED


==== textDisp-4.1 UpdateDisplayInfo, basic
==== Contents of test case:

    .t delete 1.0 end
    .t insert end "Line 1\nLine 2\nLine 3\n"
    update
    .t delete 2.0 2.end
    .t insert 2.0 "New Line 2"
    update
    list [.t bbox 1.0] [.t bbox 2.0] [.t bbox 3.0] $tk_textRelayout

==== Result was:
{5 5 7 14} {5 19 7 14} {5 33 7 14} 2.0
---- Result should have been:
{5 5 7 13} {5 18 7 13} {5 31 7 13} 2.0
---- textDisp-4.1 FAILED


==== textDisp-4.2 UpdateDisplayInfo, re-use tail of text line
==== Contents of test case:

    .t delete 1.0 end
    .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3"
    update
    .t mark set x 2.21
    .t delete 2.2
    .t insert 2.0 X
    update
    list [.t bbox 2.0] [.t bbox x] [.t bbox 3.0] $tk_textRelayout

==== Result was:
{5 19 7 14} {12 33 7 14} {5 47 7 14} {2.0 2.20}
---- Result should have been:
{5 18 7 13} {12 31 7 13} {5 44 7 13} {2.0 2.20}
---- textDisp-4.2 FAILED


==== textDisp-4.3 UpdateDisplayInfo, tail of text line shifts
==== Contents of test case:

    .t delete 1.0 end
    .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3"
    update
    .t mark set x 2.21
    .t delete 2.2
    update
    list [.t bbox 2.0] [.t bbox x] [.t bbox 3.0] $tk_textRelayout

==== Result was:
{5 19 7 14} {5 33 7 14} {5 47 7 14} {2.0 2.20}
---- Result should have been:
{5 18 7 13} {5 31 7 13} {5 44 7 13} {2.0 2.20}
---- textDisp-4.3 FAILED


==== textDisp-4.4 UpdateDisplayInfo, wrap-mode "none"
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3"
    update
    list [.t bbox 2.0] [.t bbox 2.25] [.t bbox 3.0] $tk_textRelayout

==== Result was:
{5 19 7 14} {} {5 33 7 14} {1.0 2.0 3.0}
---- Result should have been:
{5 18 7 13} {} {5 31 7 13} {1.0 2.0 3.0}
---- textDisp-4.4 FAILED


==== textDisp-4.5 UpdateDisplayInfo, tiny window
==== Contents of test case:

    wm geom . 103x$height
    update
    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Line 1\nLine 2 is so long that it wraps around\nLine 3"
    update
    list [.t bbox 2.0] [.t bbox 2.1] [.t bbox 3.0] $tk_textRelayout

==== Result was:
{5 19 1 14} {} {5 33 1 14} {1.0 2.0 3.0}
---- Result should have been:
{5 18 1 13} {} {5 31 1 13} {1.0 2.0 3.0}
---- textDisp-4.5 FAILED


==== textDisp-4.9 UpdateDisplayInfo, filling in extra vertical space
==== Contents of test case:

    .t delete 1.0 end
    .t insert end "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17"
    .t yview 16.0
    update
    .t delete 15.0 end
    list [.t bbox 7.0] [.t bbox 12.0]

==== Result was:
{3 31 7 14} {3 101 7 14}
---- Result should have been:
{3 29 7 13} {3 94 7 13}
---- textDisp-4.9 FAILED


==== textDisp-4.17 UpdateDisplayInfo, horizontal scrolling
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally"
    .t insert end "\nLine 3\nLine 4"
    update
    .t xview scroll 3 units
    update
    list $tk_textRelayout $tk_textRedraw [.t bbox 2.0] [.t bbox 2.5]  [.t bbox 2.23]

==== Result was:
{} {1.0 2.0 3.0 4.0} {} {17 17 7 14} {}
---- Result should have been:
{} {1.0 2.0 3.0 4.0} {} {17 16 7 13} {}
---- textDisp-4.17 FAILED


==== textDisp-4.18 UpdateDisplayInfo, horizontal scrolling
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally"
    .t insert end "\nLine 3\nLine 4"
    update
    .t xview scroll 100 units
    update
    list $tk_textRelayout $tk_textRedraw [.t bbox 2.25]

==== Result was:
{} {1.0 2.0 3.0 4.0} {10 17 7 14}
---- Result should have been:
{} {1.0 2.0 3.0 4.0} {10 16 7 13}
---- textDisp-4.18 FAILED


==== textDisp-4.19 UpdateDisplayInfo, horizontal scrolling
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally"
    .t insert end "\nLine 3\nLine 4"
    update
    .t xview moveto 0
    .t xview scroll -10 units
    update
    list $tk_textRelayout $tk_textRedraw [.t bbox 2.5]

==== Result was:
{} {1.0 2.0 3.0 4.0} {38 17 7 14}
---- Result should have been:
{} {1.0 2.0 3.0 4.0} {38 16 7 13}
---- textDisp-4.19 FAILED


==== textDisp-4.20 UpdateDisplayInfo, horizontal scrolling
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally"
    .t insert end "\nLine 3\nLine 4"
    .t xview moveto 0.0
    .t xview scroll 100 units
    update
    .t delete 2.30 2.44
    update
    list $tk_textRelayout $tk_textRedraw [.t bbox 2.25]

==== Result was:
2.0 {1.0 2.0 3.0 4.0} {108 17 7 14}
---- Result should have been:
2.0 {1.0 2.0 3.0 4.0} {108 16 7 13}
---- textDisp-4.20 FAILED


==== textDisp-4.22 UpdateDisplayInfo, no horizontal scrolling except for -wrap none
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally"
    .t insert end "\nLine 3\nLine 4"
    .t xview scroll 25 units
    update
    .t configure -wrap word
    list [.t bbox 2.0] [.t bbox 2.16]

==== Result was:
{3 17 7 14} {10 31 7 14}
---- Result should have been:
{3 16 7 13} {10 29 7 13}
---- textDisp-4.22 FAILED


==== textDisp-4.23 UpdateDisplayInfo, no horizontal scrolling except for -wrap none
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "Short line 1\nLine 2 is long enough to scroll horizontally"
    .t insert end "\nLine 3\nLine 4"
    .t xview scroll 25 units
    update
    .t configure -wrap char
    list [.t bbox 2.0] [.t bbox 2.16]

==== Result was:
{3 17 7 14} {115 17 7 14}
---- Result should have been:
{3 16 7 13} {115 16 7 13}
---- textDisp-4.23 FAILED


==== textDisp-5.1 DisplayDLine, handling of spacing
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijkl\nmnopqrstuvwzyz"
    .t tag configure spacing -spacing1 8 -spacing3 2
    .t tag add spacing 1.0 end
    frame .t.f1 -width 10 -height 4 -bg black
    frame .t.f2 -width 10 -height 4 -bg black
    frame .t.f3 -width 10 -height 4 -bg black
    frame .t.f4 -width 10 -height 4 -bg black
    .t window create 1.3 -window .t.f1 -align top
    .t window create 1.7 -window .t.f2 -align center
    .t window create 2.1 -window .t.f3 -align bottom
    .t window create 2.10 -window .t.f4 -align baseline
    update
    list [winfo geometry .t.f1] [winfo geometry .t.f2]  [winfo geometry .t.f3] [winfo geometry .t.f4]

==== Result was:
10x4+24+11 10x4+55+16 10x4+10+45 10x4+76+41
---- Result should have been:
10x4+24+11 10x4+55+15 10x4+10+43 10x4+76+40
---- textDisp-5.1 FAILED


==== textDisp-8.1 TkTextChanged: redisplay whole lines
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Line 1\nLine 2 is so long that it wraps around, two times"
    foreach i {3 4 5 6 7 8 9 10 11 12 13 14 15} {
	.t insert end "\nLine $i"
    }
    update
    .t delete 2.36 2.38
    update
    list $tk_textRelayout $tk_textRedraw [.t bbox 2.32]

==== Result was:
{2.0 2.18 2.38} {2.0 2.18 2.38} {101 31 7 14}
---- Result should have been:
{2.0 2.18 2.38} {2.0 2.18 2.38} {101 29 7 13}
---- textDisp-8.1 FAILED


==== textDisp-13.7 TkTextSeeCmd procedure
==== Contents of test case:

    .t xview moveto 0
    .t yview moveto 0
    .t tag add sel 30.20
    .t tag add sel 30.40
    update
    .t see 30.50
    set x [list [.t bbox 30.50]]
    .t see 30.39
    lappend x [.t bbox 30.39]
    .t see 30.38
    lappend x [.t bbox 30.38]
    .t see 30.20
    lappend x [.t bbox 30.20]

==== Result was:
{73 59 7 14} {3 59 7 14} {3 59 7 14} {73 59 7 14}
---- Result should have been:
{73 55 7 13} {3 55 7 13} {3 55 7 13} {73 55 7 13}
---- textDisp-13.7 FAILED


==== textDisp-13.8 TkTextSeeCmd procedure
==== Contents of test case:

    .t xview moveto 0
    .t yview moveto 0
    .t tag add sel 30.20
    .t tag add sel 30.50
    update
    .t see 30.50
    set x [list [.t bbox 30.50]]
    .t see 30.60
    lappend x [.t bbox 30.60]
    .t see 30.65
    lappend x [.t bbox 30.65]
    .t see 30.90
    lappend x [.t bbox 30.90]

==== Result was:
{73 59 7 14} {136 59 7 14} {136 59 7 14} {73 59 7 14}
---- Result should have been:
{73 55 7 13} {136 55 7 13} {136 55 7 13} {73 55 7 13}
---- textDisp-13.8 FAILED


==== textDisp-13.9 TkTextSeeCmd procedure
==== Contents of test case:

    wm geom . [expr $width-2]x$height
    .t xview moveto 0
    .t yview moveto 0
    .t tag add sel 30.20
    .t tag add sel 30.50
    update
    .t see 30.50
    set x [list [.t bbox 30.50]]
    .t see 30.60
    lappend x [.t bbox 30.60]
    .t see 30.65
    lappend x [.t bbox 30.65]
    .t see 30.90
    lappend x [.t bbox 30.90]

==== Result was:
{80 59 7 14} {136 59 7 14} {136 59 7 14} {80 59 7 14}
---- Result should have been:
{80 55 7 13} {136 55 7 13} {136 55 7 13} {80 55 7 13}
---- textDisp-13.9 FAILED


==== textDisp-16.27 TkTextYviewCmd procedure, "scroll" option, forward pages
==== Contents of test case:

    .t yview 98.0
    update
    .t yview scroll 1 page
    .t index @0,0

==== Result was:
104.0
---- Result should have been:
103.0
---- textDisp-16.27 FAILED


==== textDisp-20.1 FindDLine
==== Contents of test case:

    .t yview 48.0
    list [.t dlineinfo 46.0] [.t dlineinfo 47.0] [.t dlineinfo 49.0]  [.t dlineinfo 58.0]

==== Result was:
{} {} {3 17 49 14 10} {}
---- Result should have been:
{} {} {3 16 49 13 10} {}
---- textDisp-20.1 FAILED


==== textDisp-20.2 FindDLine
==== Contents of test case:

    .t yview 100.0
    .t yview -pickplace 53.0
    list [.t dlineinfo 50.0] [.t dlineinfo 50.14] [.t dlineinfo 50.15]

==== Result was:
{} {} {3 3 140 14 10}
---- Result should have been:
{} {} {3 3 140 13 10}
---- textDisp-20.2 FAILED


==== textDisp-20.3 FindDLine
==== Contents of test case:

    .t yview 100.0
    .t yview 49.0
    list [.t dlineinfo 50.0] [.t dlineinfo 50.20] [.t dlineinfo 57.0]

==== Result was:
{3 17 105 14 10} {3 31 140 14 10} {}
---- Result should have been:
{3 16 105 13 10} {3 29 140 13 10} {}
---- textDisp-20.3 FAILED


==== textDisp-20.4 FindDLine
==== Contents of test case:

    .t yview 100.0
    .t yview 42.0
    list [.t dlineinfo 50.0] [.t dlineinfo 50.20] [.t dlineinfo 50.40]

==== Result was:
{3 115 105 14 10} {3 129 140 14 10} {}
---- Result should have been:
{3 107 105 13 10} {3 120 140 13 10} {}
---- textDisp-20.4 FAILED


==== textDisp-20.5 FindDLine
==== Contents of test case:

    .t yview 100.0
    .t yview 48.0
    list [.t dlineinfo 50.0] [.t dlineinfo 50.20] [.t dlineinfo 50.40]

==== Result was:
{3 31 371 14 10} {3 31 371 14 10} {3 31 371 14 10}
---- Result should have been:
{3 29 371 13 10} {3 29 371 13 10} {3 29 371 13 10}
---- textDisp-20.5 FAILED


==== textDisp-21.1 TkTextPixelIndex
==== Contents of test case:

    .t yview 48.0
    list [.t index @-10,-10] [.t index @6,6] [.t index @22,6]  [.t index @102,6] [.t index @38,55] [.t index @44,67]

==== Result was:
48.0 48.0 48.2 48.7 50.20 50.40
---- Result should have been:
48.0 48.0 48.2 48.7 50.40 50.40
---- textDisp-21.1 FAILED


==== textDisp-21.2 TkTextPixelIndex
==== Contents of test case:

    .t yview 195.0
    list [.t index @11,70] [.t index @11,84] [.t index @11,102]  [.t index @11,1002]

==== Result was:
196.1 197.1 199.1 201.0
---- Result should have been:
197.1 198.1 199.1 201.0
---- textDisp-21.2 FAILED


==== textDisp-22.1 TkTextCharBbox
==== Contents of test case:

    .t config -wrap word
    .t yview 48.0
    list [.t bbox 47.2] [.t bbox 48.0] [.t bbox 50.5] [.t bbox 50.40]  [.t bbox 58.0]

==== Result was:
{} {3 3 7 14} {38 31 7 14} {38 59 7 14} {}
---- Result should have been:
{} {3 3 7 13} {38 29 7 13} {38 55 7 13} {}
---- textDisp-22.1 FAILED


==== textDisp-22.2 TkTextCharBbox
==== Contents of test case:

    .t config -wrap none
    .t yview 48.0
    list [.t bbox 50.5] [.t bbox 50.40] [.t bbox 57.0]

==== Result was:
{38 31 7 14} {} {3 129 7 14}
---- Result should have been:
{38 29 7 13} {} {3 120 7 13}
---- textDisp-22.2 FAILED


==== textDisp-22.3 TkTextCharBbox, cut-off lines
==== Contents of test case:

    .t config -wrap char
    .t yview 10.0
    wm geom . ${width}x[expr $height-1]
    update
    list [.t bbox 19.1] [.t bbox 20.1]

==== Result was:
{10 129 7 14} {10 143 7 3}
---- Result should have been:
{10 120 7 13} {10 133 7 3}
---- textDisp-22.3 FAILED


==== textDisp-22.4 TkTextCharBbox, cut-off lines
==== Contents of test case:

    .t config -wrap char
    .t yview 10.0
    wm geom . ${width}x[expr $height+1]
    update
    list [.t bbox 19.1] [.t bbox 20.1]

==== Result was:
{10 129 7 14} {10 143 7 5}
---- Result should have been:
{10 120 7 13} {10 133 7 5}
---- textDisp-22.4 FAILED


==== textDisp-22.5 TkTextCharBbox, cut-off char
==== Contents of test case:

    .t config -wrap none
    .t yview 10.0
    wm geom . [expr $width-95]x$height
    update
    .t bbox 15.6

==== Result was:
45 73 7 14
---- Result should have been:
45 68 7 13
---- textDisp-22.5 FAILED


==== textDisp-22.6 TkTextCharBbox, line visible but not char
==== Contents of test case:

    .t config -wrap char
    .t yview 10.0
    .t tag add big 20.2 20.5
    wm geom . ${width}x[expr $height+3]
    update
    list [.t bbox 19.1] [.t bbox 20.1] [.t bbox 20.2]

==== Result was:
{10 129 7 14} {} {17 143 14 7}
---- Result should have been:
{10 120 7 13} {} {17 133 14 7}
---- textDisp-22.6 FAILED


==== textDisp-22.7 TkTextCharBbox, different character sizes
==== Contents of test case:

    .t config -wrap char
    .t yview 10.0
    .t tag add big 12.2 12.5
    update
    list [.t bbox 12.1] [.t bbox 12.2]

==== Result was:
{10 43 7 14} {17 31 14 27}
---- Result should have been:
{10 41 7 13} {17 29 14 27}
---- textDisp-22.7 FAILED


==== textDisp-22.8 TkTextCharBbox, horizontal scrolling
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert end "12345\n"
    .t insert end "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    .t xview scroll 4 units
    list [.t bbox 1.3] [.t bbox 1.4] [.t bbox 2.3] [.t bbox 2.4]  [.t bbox 2.23] [.t bbox 2.24]

==== Result was:
{} {3 3 7 14} {} {3 17 7 14} {136 17 7 14} {}
---- Result should have been:
{} {3 3 7 13} {} {3 16 7 13} {136 16 7 13} {}
---- textDisp-22.8 FAILED


==== textDisp-22.9 TkTextCharBbox, handling of spacing
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijkl\nmnopqrstuvwzyz"
    .t tag configure spacing -spacing1 8 -spacing3 2
    .t tag add spacing 1.0 end
    frame .t.f1 -width 10 -height 4 -bg black
    frame .t.f2 -width 10 -height 4 -bg black
    frame .t.f3 -width 10 -height 4 -bg black
    frame .t.f4 -width 10 -height 4 -bg black
    .t window create 1.3 -window .t.f1 -align top
    .t window create 1.7 -window .t.f2 -align center
    .t window create 2.1 -window .t.f3 -align bottom
    .t window create 2.10 -window .t.f4 -align baseline
    update
    list [.t bbox .t.f1] [.t bbox .t.f2] [.t bbox .t.f3] [.t bbox .t.f4]  [.t bbox 1.1] [.t bbox 2.9]

==== Result was:
{24 11 10 4} {55 16 10 4} {10 45 10 4} {76 41 10 4} {10 11 7 14} {69 35 7 14}
---- Result should have been:
{24 11 10 4} {55 15 10 4} {10 43 10 4} {76 40 10 4} {10 11 7 13} {69 34 7 13}
---- textDisp-22.9 FAILED


==== textDisp-23.1 TkTextDLineInfo
==== Contents of test case:

    .t config -wrap word
    .t yview 48.0
    list [.t dlineinfo 47.3] [.t dlineinfo 48.0] [.t dlineinfo 50.40]  [.t dlineinfo 56.0]

==== Result was:
{} {3 3 49 14 10} {3 59 126 14 10} {}
---- Result should have been:
{} {3 3 49 13 10} {3 55 126 13 10} {}
---- textDisp-23.1 FAILED


==== textDisp-23.2 TkTextDLineInfo
==== Contents of test case:

    .t config -bd 4 -wrap word
    update
    .t yview 48.0
    .t dlineinfo 50.40

==== Result was:
7 63 126 14 10
---- Result should have been:
7 59 126 13 10
---- textDisp-23.2 FAILED


==== textDisp-23.3 TkTextDLineInfo
==== Contents of test case:

    .t config -wrap none
    update
    .t yview 48.0
    list [.t dlineinfo 50.40] [.t dlineinfo 57.3]

==== Result was:
{3 31 371 14 10} {3 129 49 14 10}
---- Result should have been:
{3 29 371 13 10} {3 120 49 13 10}
---- textDisp-23.3 FAILED


==== textDisp-23.4 TkTextDLineInfo, cut-off lines
==== Contents of test case:

    .t config -wrap char
    .t yview 10.0
    wm geom . ${width}x[expr $height-1]
    update
    list [.t dlineinfo 19.0] [.t dlineinfo 20.0]

==== Result was:
{3 129 49 14 10} {3 143 49 3 10}
---- Result should have been:
{3 120 49 13 10} {3 133 49 3 10}
---- textDisp-23.4 FAILED


==== textDisp-23.5 TkTextDLineInfo, cut-off lines
==== Contents of test case:

    .t config -wrap char
    .t yview 10.0
    wm geom . ${width}x[expr $height+1]
    update
    list [.t dlineinfo 19.0] [.t dlineinfo 20.0]

==== Result was:
{3 129 49 14 10} {3 143 49 5 10}
---- Result should have been:
{3 120 49 13 10} {3 133 49 5 10}
---- textDisp-23.5 FAILED


==== textDisp-23.6 TkTextDLineInfo, horizontal scrolling
==== Contents of test case:

    .t config -wrap none
    .t delete 1.0 end
    .t insert end "First line\n"
    .t insert end "Second line is a very long one that doesn't all fit.\n"
    .t insert end "Third"
    .t xview scroll 6 units
    update
    list [.t dlineinfo 1.0] [.t dlineinfo 2.0] [.t dlineinfo 3.0]

==== Result was:
{-39 3 70 14 10} {-39 17 364 14 10} {-39 31 35 14 10}
---- Result should have been:
{-39 3 70 13 10} {-39 16 364 13 10} {-39 29 35 13 10}
---- textDisp-23.6 FAILED


==== textDisp-23.7 TkTextDLineInfo, centering
==== Contents of test case:

    .t config -wrap word
    .t delete 1.0 end
    .t insert end "First line\n"
    .t insert end "Second line is a very long one that doesn't all fit.\n"
    .t insert end "Third"
    .t tag configure x -justify center
    .t tag configure y -justify right
    .t tag add x 1.0
    .t tag add y 3.0
    list [.t dlineinfo 1.0] [.t dlineinfo 2.0] [.t dlineinfo 3.0]

==== Result was:
{38 3 70 14 10} {3 17 119 14 10} {108 59 35 14 10}
---- Result should have been:
{38 3 70 13 10} {3 16 119 13 10} {108 55 35 13 10}
---- textDisp-23.7 FAILED


==== textDisp-24.1 TkTextCharLayoutProc
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 7 14} {3 17 7 14}
---- Result should have been:
{136 3 7 13} {3 16 7 13}
---- textDisp-24.1 FAILED


==== textDisp-24.2 TkTextCharLayoutProc
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    wm geom . [expr $width+1]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 12 14} {3 17 7 14}
---- Result should have been:
{136 3 12 13} {3 16 7 13}
---- textDisp-24.2 FAILED


==== textDisp-24.3 TkTextCharLayoutProc
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    wm geom . [expr $width-1]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 10 14} {3 17 7 14}
---- Result should have been:
{136 3 10 13} {3 16 7 13}
---- textDisp-24.3 FAILED


==== textDisp-24.4 TkTextCharLayoutProc, newline not visible
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 01234567890123456789\n012345678901234567890
    wm geom . {}
    update
    list [.t bbox 1.19] [.t bbox 1.20] [.t bbox 2.20]

==== Result was:
{136 3 7 14} {143 3 0 14} {3 31 7 14}
---- Result should have been:
{136 3 7 13} {143 3 0 13} {3 29 7 13}
---- textDisp-24.4 FAILED


==== textDisp-24.5 TkTextCharLayoutProc, char doesn't fit, newline not visible
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 0\n1\n
    wm geom . 110x$height
    update
    list [.t bbox 1.0] [.t bbox 1.1] [.t bbox 2.0]

==== Result was:
{3 3 4 14} {7 3 0 14} {3 17 4 14}
---- Result should have been:
{3 3 4 13} {7 3 0 13} {3 16 4 13}
---- textDisp-24.5 FAILED


==== textDisp-24.6 TkTextCharLayoutProc, line ends with space
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "a b c d e f g h i j k l m n o p"
    wm geom . {}
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 7 14} {3 17 7 14}
---- Result should have been:
{136 3 7 13} {3 16 7 13}
---- textDisp-24.6 FAILED


==== textDisp-24.7 TkTextCharLayoutProc, line ends with space
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "a b c d e f g h i j k l m n o p"
    wm geom . [expr $width+1]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 12 14} {3 17 7 14}
---- Result should have been:
{136 3 12 13} {3 16 7 13}
---- textDisp-24.7 FAILED


==== textDisp-24.8 TkTextCharLayoutProc, line ends with space
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "a b c d e f g h i j k l m n o p"
    wm geom . [expr $width-1]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 10 14} {3 17 7 14}
---- Result should have been:
{136 3 10 13} {3 16 7 13}
---- textDisp-24.8 FAILED


==== textDisp-24.9 TkTextCharLayoutProc, line ends with space
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "a b c d e f g h i j k l m n o p"
    wm geom . [expr $width-6]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 5 14} {3 17 7 14}
---- Result should have been:
{136 3 5 13} {3 16 7 13}
---- textDisp-24.9 FAILED


==== textDisp-24.10 TkTextCharLayoutProc, line ends with space
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "a b c d e f g h i j k l m n o p"
    wm geom . [expr $width-7]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 4 14} {3 17 7 14}
---- Result should have been:
{136 3 4 13} {3 16 7 13}
---- textDisp-24.10 FAILED


==== textDisp-24.11 TkTextCharLayoutProc, tab causes wrap
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghi"
    .t mark set insert 1.4
    .t insert insert \t\t\t
    list [.t bbox {insert -1c}] [.t bbox insert]

==== Result was:
{115 3 25 14} {3 17 7 14}
---- Result should have been:
{115 3 25 13} {3 16 7 13}
---- textDisp-24.11 FAILED


==== textDisp-24.12 TkTextCharLayoutProc, -wrap none
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    wm geom . {}
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 7 14} {}
---- Result should have been:
{136 3 7 13} {}
---- textDisp-24.12 FAILED


==== textDisp-24.13 TkTextCharLayoutProc, -wrap none
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    wm geom . [expr $width+1]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 7 14} {143 3 5 14}
---- Result should have been:
{136 3 7 13} {143 3 5 13}
---- textDisp-24.13 FAILED


==== textDisp-24.14 TkTextCharLayoutProc, -wrap none
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    wm geom . [expr $width-1]x$height
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 7 14} {143 3 3 14}
---- Result should have been:
{136 3 7 13} {143 3 3 13}
---- textDisp-24.14 FAILED


==== textDisp-24.15 TkTextCharLayoutProc, no chars fit
==== Contents of test case:

    .t configure -wrap char
    .t delete 1.0 end
    .t insert 1.0 "abcdefghijklmnopqrstuvwxyz"
    wm geom . 103x$height
    update
    list [.t bbox 1.0] [.t bbox 1.1] [.t bbox 1.2]

==== Result was:
{3 3 1 14} {3 17 1 14} {3 31 1 14}
---- Result should have been:
{3 3 1 13} {3 16 1 13} {3 29 1 13}
---- textDisp-24.15 FAILED


==== textDisp-24.16 TkTextCharLayoutProc, -wrap word
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "This is a line that wraps around"
    wm geom . {}
    update
    list [.t bbox 1.19] [.t bbox 1.20]

==== Result was:
{136 3 7 14} {3 17 7 14}
---- Result should have been:
{136 3 7 13} {3 16 7 13}
---- textDisp-24.16 FAILED


==== textDisp-24.17 TkTextCharLayoutProc, -wrap word
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "xThis is a line that wraps around"
    wm geom . {}
    update
    list [.t bbox 1.14] [.t bbox 1.15] [.t bbox 1.16]

==== Result was:
{101 3 7 14} {108 3 35 14} {3 17 7 14}
---- Result should have been:
{101 3 7 13} {108 3 35 13} {3 16 7 13}
---- textDisp-24.17 FAILED


==== textDisp-24.18 TkTextCharLayoutProc, -wrap word
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "xxThis is a line that wraps around"
    wm geom . {}
    update
    list [.t bbox 1.14] [.t bbox 1.15] [.t bbox 1.16]

==== Result was:
{101 3 7 14} {108 3 7 14} {115 3 28 14}
---- Result should have been:
{101 3 7 13} {108 3 7 13} {115 3 28 13}
---- textDisp-24.18 FAILED


==== textDisp-24.19 TkTextCharLayoutProc, vertical offset
==== Contents of test case:

    .t configure -wrap none
    .t delete 1.0 end
    .t insert 1.0 "Line 1\nLine 2\nLine 3"
    set result {}
    lappend result [.t bbox 2.1] [.t dlineinfo 2.1]
    .t tag configure up -offset 6
    .t tag add up 2.1
    lappend result [.t bbox 2.1] [.t dlineinfo 2.1]
    .t tag configure  up -offset -2
    lappend result [.t bbox 2.1] [.t dlineinfo 2.1]
    .t tag delete up
    set result

==== Result was:
{10 17 7 14} {3 17 42 14 10} {10 17 7 14} {3 17 42 20 16} {10 19 7 14} {3 17 42 16 10}
---- Result should have been:
{10 16 7 13} {3 16 42 13 10} {10 16 7 13} {3 16 42 19 16} {10 18 7 13} {3 16 42 15 10}
---- textDisp-24.19 FAILED


==== textDisp-24.20 TkTextCharLayoutProc, word breaks
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    .t insert 1.0 "Sample text xxxxxxx yyyyy zzzzzzz qqqqq rrrr ssss tt u vvvvv"
    frame .t.f -width 30 -height 20 -bg black
    .t window create 1.36 -window .t.f
    .t bbox 1.26

==== Result was:
3 20 7 14
---- Result should have been:
3 19 7 13
---- textDisp-24.20 FAILED


==== textDisp-24.21 TkTextCharLayoutProc, word breaks
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    frame .t.f -width 30 -height 20 -bg black
    .t insert 1.0 "Sample text xxxxxxx yyyyyyy"
    .t window create end -window .t.f
    .t insert end "zzzzzzz qqqqq rrrr ssss tt u vvvvv"
    .t bbox 1.28

==== Result was:
33 20 7 14
---- Result should have been:
33 19 7 13
---- textDisp-24.21 FAILED


==== textDisp-24.22 TkTextCharLayoutProc, word breaks
==== Contents of test case:

    .t configure -wrap word
    .t delete 1.0 end
    frame .t.f -width 30 -height 20 -bg black
    .t insert 1.0 "Sample text xxxxxxx yyyyyyy "
    .t insert end "zzzzzzz qqqqq rrrr ssss tt"
    .t window create end -window .t.f
    .t insert end "u vvvvv"
    .t bbox .t.f

==== Result was:
3 31 30 20
---- Result should have been:
3 29 30 20
---- textDisp-24.22 FAILED


==== textDisp-24.23 TkTextCharLayoutProc, justification and tabs
==== Contents of test case:

    .t delete 1.0 end
    .t tag configure x -justify center
    .t insert 1.0 aa\tbb\tcc\tdd\t
    .t tag add x 1.0 end
    list [.t bbox 1.0] [.t bbox 1.10]

==== Result was:
{45 3 7 14} {94 3 7 14}
---- Result should have been:
{45 3 7 13} {94 3 7 13}
---- textDisp-24.23 FAILED


==== textDisp-25.1 CharBboxProc procedure, check tab width
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 abc\td\tfgh
    list [.t bbox 1.3] [.t bbox 1.5] [.t bbox 1.6]

==== Result was:
{21 1 79 14} {107 1 93 14} {200 1 7 14}
---- Result should have been:
{21 1 79 13} {107 1 93 13} {200 1 7 13}
---- textDisp-25.1 FAILED


==== textDisp-27.1 SizeOfTab procedure, old-style tabs
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\tbcdefghij\tc\td
    list [.t bbox 1.2] [.t bbox 1.10] [.t bbox 1.12]

==== Result was:
{60 5 7 14} {116 5 7 14} {4 19 7 14}
---- Result should have been:
{60 5 7 13} {116 5 7 13} {4 18 7 13}
---- textDisp-27.1 FAILED


==== textDisp-27.2 SizeOfTab procedure, choosing tabX and alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\tbcd
    .t tag delete x
    .t tag configure x -tabs 120
    .t tag add x 1.0 end
    list [.t bbox 1.3] [.t bbox 1.4]

==== Result was:
{131 5 13 14} {4 19 7 14}
---- Result should have been:
{131 5 13 13} {4 18 7 13}
---- textDisp-27.2 FAILED


==== textDisp-27.3 SizeOfTab procedure, choosing tabX and alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\t\t\tbcd
    .t tag delete x
    .t tag configure x -tabs 40
    .t tag add x 1.0 end
    list [.t bbox 1.5] [.t bbox 1.6]

==== Result was:
{131 5 13 14} {4 19 7 14}
---- Result should have been:
{131 5 13 13} {4 18 7 13}
---- textDisp-27.3 FAILED


==== textDisp-27.4 SizeOfTab procedure, choosing tabX and alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\t\t\tbcd
    .t tag delete x
    .t tag configure x -tabs {20 center 70 left}
    .t tag add x 1.0 end
    list [.t bbox 1.5] [.t bbox 1.6]

==== Result was:
{131 5 13 14} {4 19 7 14}
---- Result should have been:
{131 5 13 13} {4 18 7 13}
---- textDisp-27.4 FAILED


==== textDisp-27.5 SizeOfTab procedure, center alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\txyzzyabc
    .t tag delete x
    .t tag configure x -tabs {120 center}
    .t tag add x 1.0 end
    list [.t bbox 1.6] [.t bbox 1.7]

==== Result was:
{135 5 9 14} {4 19 7 14}
---- Result should have been:
{135 5 9 13} {4 18 7 13}
---- textDisp-27.5 FAILED


==== textDisp-27.6 SizeOfTab procedure, center alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\txyzzyabc
    .t tag delete x
    .t tag configure x -tabs {150 center}
    .t tag add x 1.0 end
    list [.t bbox 1.6] [.t bbox 1.7]

==== Result was:
{32 19 7 14} {39 19 7 14}
---- Result should have been:
{32 18 7 13} {39 18 7 13}
---- textDisp-27.6 FAILED


==== textDisp-27.7 SizeOfTab procedure, center alignment, wrap -none (potential numerical problems)
==== Contents of test case:

    .t delete 1.0 end
    .t configure -tabs {1c 2c center 3c 4c} -wrap none -width 40
    .t insert 1.0 a\tb\tc\td\te\n012345678934567890a\tbb\tcc\tdd
    update
    .t bbox 2.24

==== Result was:
172 19 7 14
---- Result should have been:
172 18 7 13
---- textDisp-27.7 FAILED


==== textDisp-27.8 SizeOfTab procedure, right alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\t\txyzzyabc
    .t tag delete x
    .t tag configure x -tabs {100 left 140 right}
    .t tag add x 1.0 end
    list [.t bbox 1.6] [.t bbox 1.7]

==== Result was:
{137 5 7 14} {4 19 7 14}
---- Result should have been:
{137 5 7 13} {4 18 7 13}
---- textDisp-27.8 FAILED


==== textDisp-27.9 SizeOfTab procedure, left alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\txyzzyabc
    .t tag delete x
    .t tag configure x -tabs {120}
    .t tag add x 1.0 end
    list [.t bbox 1.3] [.t bbox 1.4]

==== Result was:
{131 5 13 14} {4 19 7 14}
---- Result should have been:
{131 5 13 13} {4 18 7 13}
---- textDisp-27.9 FAILED


==== textDisp-27.10 SizeOfTab procedure, numeric alignment
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 a\t123.4
    .t tag delete x
    .t tag configure x -tabs {120 numeric}
    .t tag add x 1.0 end
    list [.t bbox 1.3] [.t bbox 1.4]

==== Result was:
{117 5 27 14} {4 19 7 14}
---- Result should have been:
{117 5 27 13} {4 18 7 13}
---- textDisp-27.10 FAILED


==== textDisp-27.11 SizeOfTab procedure, making tabs at least as wide as a space
==== Contents of test case:

    .t delete 1.0 end
    .t insert 1.0 abc\tdefghijklmnopqrst
    .t tag delete x
    .t tag configure x -tabs {120}
    .t tag add x 1.0 end
    list [.t bbox 1.5] [.t bbox 1.6]

==== Result was:
{131 5 13 14} {4 19 7 14}
---- Result should have been:
{131 5 13 13} {4 18 7 13}
---- textDisp-27.11 FAILED


==== textDisp-29.1 miscellaneous: lines wrap but are still too long
==== Contents of test case:

    catch {destroy .t2}
    toplevel .t2
    wm geometry .t2 +0+0
    text .t2.t -width 20 -height 10 -font $fixedFont  -wrap char -xscrollcommand ".t2.s set"
    pack .t2.t -side top
    scrollbar .t2.s -orient horizontal -command ".t2.t xview"
    pack .t2.s -side bottom -fill x
    .t2.t insert end 123
    frame .t2.t.f -width 300 -height 50 -bd 2 -relief raised
    .t2.t window create 1.1 -window .t2.t.f
    update
    list [.t2.t xview] [winfo geom .t2.t.f] [.t2.t bbox 1.3]

==== Result was:
{0 0.466667} 300x50+5+19 {12 69 7 14}
---- Result should have been:
{0 0.466667} 300x50+5+18 {12 68 7 13}
---- textDisp-29.1 FAILED


==== textDisp-29.2 miscellaneous: lines wrap but are still too long
==== Contents of test case:

    catch {destroy .t2}
    toplevel .t2
    wm geometry .t2 +0+0
    text .t2.t -width 20 -height 10 -font $fixedFont  -wrap char -xscrollcommand ".t2.s set"
    pack .t2.t -side top
    scrollbar .t2.s -orient horizontal -command ".t2.t xview"
    pack .t2.s -side bottom -fill x
    .t2.t insert end 123
    frame .t2.t.f -width 300 -height 50 -bd 2 -relief raised
    .t2.t window create 1.1 -window .t2.t.f
    .t2.t xview scroll 1 unit
    update
    list [.t2.t xview] [winfo geom .t2.t.f] [.t2.t bbox 1.3]

==== Result was:
{0.0233333 0.49} 300x50+-2+19 {5 69 7 14}
---- Result should have been:
{0.0233333 0.49} 300x50+-2+18 {5 68 7 13}
---- textDisp-29.2 FAILED


==== textDisp-29.3 miscellaneous: lines wrap but are still too long
==== Contents of test case:

    catch {destroy .t2}
    toplevel .t2
    wm geometry .t2 +0+0
    text .t2.t -width 20 -height 10 -font $fixedFont  -wrap char -xscrollcommand ".t2.s set"
    pack .t2.t -side top
    scrollbar .t2.s -orient horizontal -command ".t2.t xview"
    pack .t2.s -side bottom -fill x
    .t2.t insert end 123
    frame .t2.t.f -width 300 -height 50 -bd 2 -relief raised
    .t2.t window create 1.1 -window .t2.t.f
    update
    .t2.t xview scroll 200 units
    update
    list [.t2.t xview] [winfo geom .t2.t.f] [.t2.t bbox 1.3]

==== Result was:
{0.536667 1} 300x50+-156+19 {}
---- Result should have been:
{0.536667 1} 300x50+-156+18 {}
---- textDisp-29.3 FAILED
textIndex.test
textMark.test
textTag.test
textWind.test
util.test
visual.test
window.test
winfo.test
wm.test
-------------------- cut here --------------------

--
===========================================================================
 Scott Mitchell, CompSci Dept, Queen Mary & Westfield College, London, UK
    email: scott@dcs.qmw.ac.uk   WWW: http://www.dcs.qmw.ac.uk/~scott/
          finger scott@redstar.dcs.qmw.ac.uk for PGP public key