]> git.armaanb.net Git - st.git/commitdiff
Add SI and SO control codes
authorRoberto E. Vargas Caballero <k0ga@shike2.com>
Sat, 6 Oct 2012 17:13:36 +0000 (19:13 +0200)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Sat, 6 Oct 2012 17:13:36 +0000 (19:13 +0200)
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

diff --git a/st.c b/st.c
index 8e25d2334ec9a73703f2c6df117e046e998cbda6..ba6973a9aa06c4a047ed6bd6873a498ff024ece9 100644 (file)
--- 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();