]> git.armaanb.net Git - st.git/commitdiff
added F1-12 key, fixed DCH and ICH.
authorAurélien Aptel <aurelien.aptel@gmail.com>
Sun, 22 Aug 2010 17:46:46 +0000 (19:46 +0200)
committerAurélien Aptel <aurelien.aptel@gmail.com>
Sun, 22 Aug 2010 17:46:46 +0000 (19:46 +0200)
config.h
st.c
st.info

index c3c4e419cc118d253f91b3d62e35fb2d8f356a8d..bb490ab5180734a7aea3376245356c996ab58c39 100644 (file)
--- a/config.h
+++ b/config.h
@@ -39,6 +39,18 @@ static Key key[] = {
        { XK_End,    "\033[4~" },
        { XK_Prior,  "\033[5~" },
        { XK_Next,   "\033[6~" },
+       { XK_F1,        "\033OP"   },
+       { XK_F2,        "\033OQ"   },
+       { XK_F3,        "\033OR"   },
+       { XK_F4,        "\033OS"   },
+       { XK_F5,        "\033[15~" },
+       { XK_F6,        "\033[17~" },
+       { XK_F7,        "\033[18~" },
+       { XK_F8,        "\033[19~" },
+       { XK_F9,        "\033[20~" },
+       { XK_F10,       "\033[21~" },
+       { XK_F11,       "\033[23~" },
+       { XK_F12,       "\033[24~" },
 };
 
 static char gfx[] = {
diff --git a/st.c b/st.c
index f8d2257a270e09aac49c45083e08ef62cd06c26d..6e34f1ef01d0fdb503922c8e2e2637980b963c5c 100644 (file)
--- a/st.c
+++ b/st.c
@@ -497,21 +497,21 @@ tdeletechar(int n) {
                return;
        }
        memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src], size * sizeof(Glyph));
-       tclearregion(term.col-size, term.c.y, term.col-1, term.c.y);
+       tclearregion(term.col-n, term.c.y, term.col-1, term.c.y);
 }
 
 void
 tinsertblank(int n) {
        int src = term.c.x;
        int dst = src + n;
-       int size = term.col - n - src;
+       int size = term.col - dst;
 
        if(dst >= term.col) {
                tclearregion(term.c.x, term.c.y, term.col-1, term.c.y);
                return;
        }
        memmove(&term.line[term.c.y][dst], &term.line[term.c.y][src], size * sizeof(Glyph));
-       tclearregion(src, term.c.y, dst, term.c.y);
+       tclearregion(src, term.c.y, dst - 1, term.c.y);
 }
 
 void
@@ -1173,7 +1173,7 @@ xcursor(int mode) {
        
        if(term.line[term.c.y][term.c.x].state & GLYPH_SET)
                g.c = term.line[term.c.y][term.c.x].c;
-
+       
        /* remove the old cursor */
        if(term.line[oldy][oldx].state & GLYPH_SET)
                xdraws(&term.line[oldy][oldx].c, term.line[oldy][oldx], oldx, oldy, 1);
diff --git a/st.info b/st.info
index b2669dd33f1e78f9e84792a9101036c4761e989f..2cc645b33f6f68ad5af2462790867e648bb95a16 100644 (file)
--- a/st.info
+++ b/st.info
@@ -37,6 +37,18 @@ st| simpleterm,
        kcuu1=\E[A,
        kdch1=\E[3~,
        kend=\E[4~,
+       kf1=\EOP,
+       kf2=\EOQ,
+       kf3=\EOR,
+       kf4=\EOS,
+       kf5=\E[15~,
+       kf6=\E[17~,
+       kf7=\E[18~,
+       kf8=\E[19~,
+       kf9=\E[20~,
+       kf10=\E[21~,
+       kf11=\E[23~,
+       kf12=\E[24~,
        khome=\E[1~,
        knp=\E[6~,
        kpp=\E[5~,