toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile.
This commit is contained in:
		
							parent
							
								
									ca1f6675a1
								
							
						
					
					
						commit
						9669f718ab
					
				
							
								
								
									
										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); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user