From 034dc71fb8227e8963f22b123f30962ec0b6bca7 Mon Sep 17 00:00:00 2001
From: "Roberto E. Vargas Caballero" <k0ga@shike2.com>
Date: Sat, 6 Oct 2012 19:13:36 +0200
Subject: [PATCH] Add SI and SO control codes

SI and SO allows change the G0 and G1 selection. This implementation is not
full vt100 compatible, but it is complatible with linux virtual terminal
implementation. For full vt100 compatibility we need remake a lot of stuff
relate to the different charmaps.
---
 st.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
---
 st.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/st.c b/st.c
index 8e25d23..ba6973a 100644
--- a/st.c
+++ b/st.c
@@ -1814,9 +1814,12 @@ tputc(char *c, int len) {
 		csireset();
 		term.esc = ESC_START;
 		return;
-	case '\016':	/* XXX: SO */
-	case '\017':	/* XXX: SI */
+	case '\016':	/* SO */
+		term.c.attr.mode |= ATTR_GFX;
 		break;
+	case '\017':	/* SI */
+		term.c.attr.mode &= ~ATTR_GFX;
+		return;
 	case '\032':	/* SUB */
 	case '\030':	/* CAN */
 		csireset();
-- 
2.20.1