aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/scintilla-teco-control-codes.patch
blob: 55e52ad15e2a30dd0cac0b9adf55e61bda6b71c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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.
--- 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;