aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/010-scintilla-teco-control-codes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/010-scintilla-teco-control-codes.patch')
-rw-r--r--patches/010-scintilla-teco-control-codes.patch33
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;