# st

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

| 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:
    MMakefile | 2+-
    Mst.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);