Hacks Scintilla to display control characters like TECO does: Caret followed by code+64 with a few exceptions. Also improves Scinterm's heuristics for printing control characters. --- scintilla/src/Editor.cxx 2013-01-19 21:51:58.002270685 +0100 +++ scintilla/src/Editor.cxx 2013-01-20 02:07:27.212272030 +0100 @@ -351,10 +351,10 @@ const char *ControlCharacterString(unsigned char ch) { const char *reps[] = { - "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "BEL", - "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI", - "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", - "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US" + "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", + "^H", "TAB" /* ^I */, "LF" /* ^J */, "^K", "^L", "CR" /* ^M */, "^N", "^O", + "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W", + "^X", "^Y", "^Z", "$" /* ^[ */, "^\\", "^]", "^^", "^_" }; if (ch < (sizeof(reps) / sizeof(reps[0]))) { return reps[ch]; --- scintilla/scinterm/ScintillaTerm.cxx 2013-01-19 23:49:46.092268831 +0100 +++ scintilla/scinterm/ScintillaTerm.cxx 2013-01-20 01:55:36.213521263 +0100 @@ -290,8 +290,7 @@ void DrawTextClipped(PRectangle rc, Font &font_, XYPOSITION ybase, const char *s, int len, ColourDesired fore, ColourDesired back) { - if ((len == 2 && (isupper(s[0]) && isupper(s[1]))) || - (len == 3 && (isupper(s[0]) && isupper(s[1]) && isupper(s[2])))) + if (rc.left >= rc.right) rc.left -= 2, rc.right -= 2, rc.top -= 1, rc.bottom -= 1; else if (rc.top > rc.bottom) rc.top -= 1, rc.bottom += 1;