# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit a7922bd1d94ace6d14e40a27820e217cd6c4e632
    parent ce3f4fc647be3ab28f934db9365445a56ebd85bf
    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:
    Mconfig.h | 12++++++++++++
    Mst.c | 8++++----
    Mst.info | 12++++++++++++

    3 files changed, 28 insertions(+), 4 deletions(-)
    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[] = {
    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);
    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~,