Introduction
Introduction Statistics Contact Development Disclaimer Help
tAdd 8 bit version of DCS, APC, PM, OSC - st - [fork] customized build of st, t…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 984c12d2a67fd19ee69b35152d93de8cb67595e8
parent da78629cf5fa234204f002ff2c2b597a2bf7e76f
Author: Roberto E. Vargas Caballero <[email protected]>
Date: Fri, 20 Jun 2014 09:51:18 +0200
Add 8 bit version of DCS, APC, PM, OSC
DCS, APC, PM, OSC version for 7 bits environments already was implemented
in st. This patch adds the 8 bit version of it.
Diffstat:
M st.c | 39 +++++++++++++++++++++++++----…
1 file changed, 32 insertions(+), 7 deletions(-)
---
diff --git a/st.c b/st.c
t@@ -405,6 +405,7 @@ static void ttyread(void);
static void ttyresize(void);
static void ttysend(char *, size_t);
static void ttywrite(const char *, size_t);
+static void tstrsequence(uchar c);
static void xdraws(char *, Glyph, int, int, int, int);
static void xhints(void);
t@@ -2348,6 +2349,30 @@ tdeftran(char ascii) {
}
void
+tstrsequence(uchar c) {
+ if (c & 0x80) {
+ switch (c) {
+ case 0x90: /* DCS -- Device Control String */
+ c = 'P';
+ break;
+ case 0x9f: /* APC -- Application Program Command */
+ c = '_';
+ break;
+ case 0x9e: /* PM -- Privacy Message */
+ c = '^';
+ break;
+ case 0x9d: /* OSC -- Operating System Command */
+ c = ']';
+ break;
+ }
+ }
+ strreset();
+ strescseq.type = c;
+ term.esc |= ESC_STR;
+ return;
+}
+
+void
tcontrolcode(uchar ascii) {
static char question[UTF_SIZ] = "?";
t@@ -2411,7 +2436,6 @@ tcontrolcode(uchar ascii) {
case 0x8d: /* TODO: RI */
case 0x8e: /* TODO: SS2 */
case 0x8f: /* TODO: SS3 */
- case 0x90: /* TODO: DCS */
case 0x98: /* TODO: SOS */
break;
case 0x9a: /* DECID -- Identify Terminal */
t@@ -2419,10 +2443,13 @@ tcontrolcode(uchar ascii) {
break;
case 0x9b: /* TODO: CSI */
case 0x9c: /* TODO: ST */
- case 0x9d: /* TODO: OSC */
- case 0x9e: /* TODO: PM */
- case 0x9f: /* TODO: APC */
break;
+ case 0x90: /* DCS -- Device Control String */
+ case 0x9f: /* APC -- Application Program Command */
+ case 0x9e: /* PM -- Privacy Message */
+ case 0x9d: /* OSC -- Operating System Command */
+ tstrsequence(ascii);
+ return;
}
/* only CAN, SUB, \a and C1 chars interrupt a sequence */
term.esc &= ~(ESC_STR_END|ESC_STR);
t@@ -2538,9 +2565,7 @@ tputc(char *c, int len) {
case '^': /* PM -- Privacy Message */
case ']': /* OSC -- Operating System Command */
case 'k': /* old title set compatibility */
- strreset();
- strescseq.type = ascii;
- term.esc |= ESC_STR;
+ tstrsequence(ascii);
return;
case '(': /* set primary charset G0 */
case ')': /* set secondary charset G1 */
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.