private static void AddChar(char ch)
{
if (overwrite && posn < length) {
buffer[posn] = ch;
Repaint(true, false);
} else {
MakeRoom();
if (posn < length) {
Array.Copy(buffer, posn, buffer, posn + 1, length - posn);
}
buffer[posn] = ch;
++length;
Repaint(true, false);
}
if (Array.IndexOf(wordBreakChars, ch) != -1) {
CollectLastWord(ch);
}
}