diff options
Diffstat (limited to 'patches/010-scintilla-teco-control-codes.patch')
-rw-r--r-- | patches/010-scintilla-teco-control-codes.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/patches/010-scintilla-teco-control-codes.patch b/patches/010-scintilla-teco-control-codes.patch new file mode 100644 index 0000000..f479909 --- /dev/null +++ b/patches/010-scintilla-teco-control-codes.patch @@ -0,0 +1,33 @@ +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. +--- a/scintilla/src/Editor.cxx 2013-01-19 21:51:58.002270685 +0100 ++++ b/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]; +--- a/scintilla/scinterm/ScintillaTerm.cxx 2013-01-19 23:49:46.092268831 +0100 ++++ b/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; |