added F1-12 key, fixed DCH and ICH. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit a7922bd1d94ace6d14e40a27820e217cd6c4e632
 (DIR) parent ce3f4fc647be3ab28f934db9365445a56ebd85bf
 (HTM) Author: Aurélien Aptel <aurelien.aptel@gmail.com>
       Date:   Sun, 22 Aug 2010 19:46:46 +0200
       
       added F1-12 key, fixed DCH and ICH.
       
       Diffstat:
         M config.h                            |      12 ++++++++++++
         M st.c                                |       8 ++++----
         M st.info                             |      12 ++++++++++++
       
       3 files changed, 28 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git 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[] = {
 (DIR) diff --git 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);
 (DIR) diff --git 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~,