st

Simple Terminal
git clone git://r-36.net/st
Log | Files | Refs | README | LICENSE

commit 160bda1b60148ce8f7d3b001ada2b12f1da9e152
parent 596bb133a55a6aba13b55795a9a38e29fcf1b38b
Author: Aurélien Aptel <aurelien.aptel@gmail.com>
Date:   Tue, 31 Aug 2010 11:02:17 +0200

toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile.

Diffstat:
Makefile | 2+-
st.c | 25++++++++-----------------
2 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/Makefile b/Makefile @@ -8,7 +8,7 @@ OBJ = ${SRC:.c=.o} all: options st -options: options +options: @echo st build options: @echo "CFLAGS = ${CFLAGS}" @echo "LDFLAGS = ${LDFLAGS}" diff --git a/st.c b/st.c @@ -828,22 +828,17 @@ csihandle(void) { case 25: term.c.state |= CURSOR_HIDE; break; + case 1049: /* = 1047 and 1048 */ case 1047: if(IS_SET(MODE_ALTSCREEN)) { tclearregion(0, 0, term.col-1, term.row-1); tswapscreen(); } - break; + if(escseq.arg[0] == 1047) + break; case 1048: tcursor(CURSOR_LOAD); break; - case 1049: - tcursor(CURSOR_LOAD); - if(IS_SET(MODE_ALTSCREEN)) { - tclearregion(0, 0, term.col-1, term.row-1); - tswapscreen(); - } - break; default: goto unknown; } @@ -888,22 +883,17 @@ csihandle(void) { case 25: term.c.state &= ~CURSOR_HIDE; break; + case 1049: /* = 1047 and 1048 */ case 1047: if(IS_SET(MODE_ALTSCREEN)) tclearregion(0, 0, term.col-1, term.row-1); else tswapscreen(); - break; + if(escseq.arg[0] == 1047) + break; case 1048: tcursor(CURSOR_SAVE); break; - case 1049: - tcursor(CURSOR_SAVE); - if(IS_SET(MODE_ALTSCREEN)) - tclearregion(0, 0, term.col-1, term.row-1); - else - tswapscreen(); - break; default: goto unknown; } } else { @@ -1222,6 +1212,7 @@ xinit(void) { xw.bufw = xw.w - 2*BORDER; xw.bufh = xw.h - 2*BORDER; xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr)); + xw.hasfocus = 1; /* gc */ dc.gc = XCreateGC(xw.dis, xw.win, 0, NULL); XMapWindow(xw.dis, xw.win); @@ -1322,7 +1313,7 @@ draw(int redraw_all) { for(x = 0; x < term.col; x++) { new = term.line[y][x]; if(selbx!=-1 && new.c && selected(x, y)) - new.mode = ATTR_REVERSE; + new.mode ^= ATTR_REVERSE; if(i > 0 && (!(new.state & GLYPH_SET) || ATTRCMP(base, new) || i >= DRAW_BUF_SIZ)) { xdraws(buf, base, ox, y, i);