~petersanchez/st

a7922bd1d94ace6d14e40a27820e217cd6c4e632 — Aurélien Aptel 13 years ago ce3f4fc
added F1-12 key, fixed DCH and ICH.
3 files changed, 28 insertions(+), 4 deletions(-)

M config.h
M st.c
M st.info
M config.h => config.h +12 -0
@@ 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[] = {

M st.c => st.c +4 -4
@@ 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);

M st.info => st.info +12 -0
@@ 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~,