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