Bill, this job will probably drive you crazy before you drive it home. WPs have a weird way of a fix in one place causes a fault in another. The first thing I noticed is wrap failed to work upon initiation. The third paragraph that starts with, "[What astonished..." does not wrap correctly. It ends at the right margin with the "t" in the, which should have been wrapped to the next line.
The cursor problem I mentioned going from the "]" on multiplex now works. The mouse doesn't. I see that what happens is spaces in the line below get added to the next line. This means if I click the last blank space below "]" the cursor is advanced 4 spaces past the left margin on the next line. The code needs to be told when advancing to the next line to ignore the blank spaces so it ends up on the first character. Another cursor issue is the automatic scroll up that happens when you click a character on the last line. I do that in my WP apps, too, but after the scroll up, the cursor needs to be positioned one-line up, too.
Cursor down works great but cursor up is still problematic. This happens if you scroll the text so only the last paragraph is on the scree, put cursor on a character at the left margin, and then keep pressing cursor up. You will see when it starts to jump text lines down that the cursor will migrate to the right instead of staying at the left margin, as expected.
It still gets an illegal function when you delete it down to the last couple of characters.
Now this one is another wrap problem. Place the cursor at the very end of the last paragraph and hold the delete key. keep deleting characters until it gets to the first character on the second line. When you delete it, the text will auto-scroll down, but the wrap function will have "hapel" instead of "chapel" and this will continue to fail as you go up subsequent lines as characters are deleted. Also, the cursor when the line jumps seems to go off to the upper right instead of staying on the last character but strangely enough, if you press delete, without changing the cursor position, it seems to remember where it left off and deletes the last character, of the text, as expected.
Good job on the home-end functions, btw. People don't get that it is a bit of a trick to manage spaces in that right margin.
Nice job on trailing spaces!
I like that you handled hyphenated words so anything after the hyphen would wrap. I can't remember if I addressed that one in my apps, or not.
Pete