| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1662,7 +1662,7 @@ csihandle(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																		tmoveto(0, term.c.y-csiescseq.arg[0]); | 
																 | 
																 | 
																		tmoveto(0, term.c.y-csiescseq.arg[0]); | 
															
														
														
													
														
															
																 | 
																 | 
																		break; | 
																 | 
																 | 
																		break; | 
															
														
														
													
														
															
																 | 
																 | 
																	case 'g': /* TBC -- Tabulation clear */ | 
																 | 
																 | 
																	case 'g': /* TBC -- Tabulation clear */ | 
															
														
														
													
														
															
																 | 
																 | 
																		switch (csiescseq.arg[0]) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		switch(csiescseq.arg[0]) { | 
															
														
														
													
														
															
																 | 
																 | 
																		case 0: /* clear current tab stop */ | 
																 | 
																 | 
																		case 0: /* clear current tab stop */ | 
															
														
														
													
														
															
																 | 
																 | 
																			term.tabs[term.c.x] = 0; | 
																 | 
																 | 
																			term.tabs[term.c.x] = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																			break; | 
																 | 
																 | 
																			break; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1927,7 +1927,7 @@ techo(char *buf, int len) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(c == '\033') {		/* escape */ | 
																 | 
																 | 
																		if(c == '\033') {		/* escape */ | 
															
														
														
													
														
															
																 | 
																 | 
																			tputc("^", 1); | 
																 | 
																 | 
																			tputc("^", 1); | 
															
														
														
													
														
															
																 | 
																 | 
																			tputc("[", 1); | 
																 | 
																 | 
																			tputc("[", 1); | 
															
														
														
													
														
															
																 | 
																 | 
																		} else if (c < '\x20') {	/* control code */ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		} else if(c < '\x20') {	/* control code */ | 
															
														
														
													
														
															
																 | 
																 | 
																			if(c != '\n' && c != '\r' && c != '\t') { | 
																 | 
																 | 
																			if(c != '\n' && c != '\r' && c != '\t') { | 
															
														
														
													
														
															
																 | 
																 | 
																				c |= '\x40'; | 
																 | 
																 | 
																				c |= '\x40'; | 
															
														
														
													
														
															
																 | 
																 | 
																				tputc("^", 1); | 
																 | 
																 | 
																				tputc("^", 1); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1937,7 +1937,7 @@ techo(char *buf, int len) { | 
															
														
														
													
														
															
																 | 
																 | 
																			break; | 
																 | 
																 | 
																			break; | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	if (len) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(len) | 
															
														
														
													
														
															
																 | 
																 | 
																		tputc(buf, len); | 
																 | 
																 | 
																		tputc(buf, len); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1947,7 +1947,7 @@ tputc(char *c, int len) { | 
															
														
														
													
														
															
																 | 
																 | 
																	bool control = ascii < '\x20' || ascii == 0177; | 
																 | 
																 | 
																	bool control = ascii < '\x20' || ascii == 0177; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(iofd != -1) { | 
																 | 
																 | 
																	if(iofd != -1) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if (xwrite(iofd, c, len) < 0) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(xwrite(iofd, c, len) < 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																			fprintf(stderr, "Error writing in %s:%s\n", | 
																 | 
																 | 
																			fprintf(stderr, "Error writing in %s:%s\n", | 
															
														
														
													
														
															
																 | 
																 | 
																				opt_io, strerror(errno)); | 
																 | 
																 | 
																				opt_io, strerror(errno)); | 
															
														
														
													
														
															
																 | 
																 | 
																			close(iofd); | 
																 | 
																 | 
																			close(iofd); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -2471,8 +2471,8 @@ xunloadfonts(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	 * Free the loaded fonts in the font cache. This is done backwards | 
																 | 
																 | 
																	 * Free the loaded fonts in the font cache. This is done backwards | 
															
														
														
													
														
															
																 | 
																 | 
																	 * from the frccur. | 
																 | 
																 | 
																	 * from the frccur. | 
															
														
														
													
														
															
																 | 
																 | 
																	 */ | 
																 | 
																 | 
																	 */ | 
															
														
														
													
														
															
																 | 
																 | 
																	for (i = 0, ip = frccur; i < frclen; i++, ip--) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		if (ip < 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	for(i = 0, ip = frccur; i < frclen; i++, ip--) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(ip < 0) | 
															
														
														
													
														
															
																 | 
																 | 
																			ip = LEN(frc) - 1; | 
																 | 
																 | 
																			ip = LEN(frc) - 1; | 
															
														
														
													
														
															
																 | 
																 | 
																		XftFontClose(xw.dpy, frc[ip].font); | 
																 | 
																 | 
																		XftFontClose(xw.dpy, frc[ip].font); | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -2515,7 +2515,7 @@ xinit(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	xw.vis = XDefaultVisual(xw.dpy, xw.scr); | 
																 | 
																 | 
																	xw.vis = XDefaultVisual(xw.dpy, xw.scr); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	/* font */ | 
																 | 
																 | 
																	/* font */ | 
															
														
														
													
														
															
																 | 
																 | 
																	if (!FcInit()) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(!FcInit()) | 
															
														
														
													
														
															
																 | 
																 | 
																		die("Could not init fontconfig.\n"); | 
																 | 
																 | 
																		die("Could not init fontconfig.\n"); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	usedfont = (opt_font == NULL)? font : opt_font; | 
																 | 
																 | 
																	usedfont = (opt_font == NULL)? font : opt_font; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -2718,7 +2718,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XftDrawRect(xw.draw, bg, winx, winy, width, xw.ch); | 
																 | 
																 | 
																	XftDrawRect(xw.draw, bg, winx, winy, width, xw.ch); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	fcsets[0] = font->set; | 
																 | 
																 | 
																	fcsets[0] = font->set; | 
															
														
														
													
														
															
																 | 
																 | 
																	for (xp = winx; bytelen > 0;) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	for(xp = winx; bytelen > 0;) { | 
															
														
														
													
														
															
																 | 
																 | 
																		/* | 
																 | 
																 | 
																		/* | 
															
														
														
													
														
															
																 | 
																 | 
																		 * Search for the range in the to be printed string of glyphs | 
																 | 
																 | 
																		 * Search for the range in the to be printed string of glyphs | 
															
														
														
													
														
															
																 | 
																 | 
																		 * that are in the main font. Then print that range. If | 
																 | 
																 | 
																		 * that are in the main font. Then print that range. If | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -2728,22 +2728,22 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																		u8fs = s; | 
																 | 
																 | 
																		u8fs = s; | 
															
														
														
													
														
															
																 | 
																 | 
																		u8fblen = 0; | 
																 | 
																 | 
																		u8fblen = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																		u8fl = 0; | 
																 | 
																 | 
																		u8fl = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																		for (;;) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		for(;;) { | 
															
														
														
													
														
															
																 | 
																 | 
																			u8c = s; | 
																 | 
																 | 
																			u8c = s; | 
															
														
														
													
														
															
																 | 
																 | 
																			u8cblen = utf8decode(s, &u8char); | 
																 | 
																 | 
																			u8cblen = utf8decode(s, &u8char); | 
															
														
														
													
														
															
																 | 
																 | 
																			s += u8cblen; | 
																 | 
																 | 
																			s += u8cblen; | 
															
														
														
													
														
															
																 | 
																 | 
																			bytelen -= u8cblen; | 
																 | 
																 | 
																			bytelen -= u8cblen; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																			doesexist = XftCharIndex(xw.dpy, font->match, u8char); | 
																 | 
																 | 
																			doesexist = XftCharIndex(xw.dpy, font->match, u8char); | 
															
														
														
													
														
															
																 | 
																 | 
																			if (!doesexist || bytelen <= 0) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																				if (bytelen <= 0) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																					if (doesexist) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(!doesexist || bytelen <= 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				if(bytelen <= 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																					if(doesexist) { | 
															
														
														
													
														
															
																 | 
																 | 
																						u8fl++; | 
																 | 
																 | 
																						u8fl++; | 
															
														
														
													
														
															
																 | 
																 | 
																						u8fblen += u8cblen; | 
																 | 
																 | 
																						u8fblen += u8cblen; | 
															
														
														
													
														
															
																 | 
																 | 
																					} | 
																 | 
																 | 
																					} | 
															
														
														
													
														
															
																 | 
																 | 
																				} | 
																 | 
																 | 
																				} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																				if (u8fl > 0) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																				if(u8fl > 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																					XftDrawStringUtf8(xw.draw, fg, | 
																 | 
																 | 
																					XftDrawStringUtf8(xw.draw, fg, | 
															
														
														
													
														
															
																 | 
																 | 
																							font->match, xp, | 
																 | 
																 | 
																							font->match, xp, | 
															
														
														
													
														
															
																 | 
																 | 
																							winy + font->ascent, | 
																 | 
																 | 
																							winy + font->ascent, | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -2757,23 +2757,23 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			u8fl++; | 
																 | 
																 | 
																			u8fl++; | 
															
														
														
													
														
															
																 | 
																 | 
																			u8fblen += u8cblen; | 
																 | 
																 | 
																			u8fblen += u8cblen; | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																		if (doesexist) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(doesexist) | 
															
														
														
													
														
															
																 | 
																 | 
																			break; | 
																 | 
																 | 
																			break; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																		frp = frccur; | 
																 | 
																 | 
																		frp = frccur; | 
															
														
														
													
														
															
																 | 
																 | 
																		/* Search the font cache. */ | 
																 | 
																 | 
																		/* Search the font cache. */ | 
															
														
														
													
														
															
																 | 
																 | 
																		for (i = 0; i < frclen; i++, frp--) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																			if (frp <= 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		for(i = 0; i < frclen; i++, frp--) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(frp <= 0) | 
															
														
														
													
														
															
																 | 
																 | 
																				frp = LEN(frc) - 1; | 
																 | 
																 | 
																				frp = LEN(frc) - 1; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																			if (frc[frp].c == u8char | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(frc[frp].c == u8char | 
															
														
														
													
														
															
																 | 
																 | 
																					&& frc[frp].flags == frcflags) { | 
																 | 
																 | 
																					&& frc[frp].flags == frcflags) { | 
															
														
														
													
														
															
																 | 
																 | 
																				break; | 
																 | 
																 | 
																				break; | 
															
														
														
													
														
															
																 | 
																 | 
																			} | 
																 | 
																 | 
																			} | 
															
														
														
													
														
															
																 | 
																 | 
																		} | 
																 | 
																 | 
																		} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																		/* Nothing was found. */ | 
																 | 
																 | 
																		/* Nothing was found. */ | 
															
														
														
													
														
															
																 | 
																 | 
																		if (i >= frclen) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(i >= frclen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			/* | 
																 | 
																 | 
																			/* | 
															
														
														
													
														
															
																 | 
																 | 
																			 * Nothing was found in the cache. Now use | 
																 | 
																 | 
																			 * Nothing was found in the cache. Now use | 
															
														
														
													
														
															
																 | 
																 | 
																			 * some dozen of Fontconfig calls to get the | 
																 | 
																 | 
																			 * some dozen of Fontconfig calls to get the | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -2801,9 +2801,9 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
															
														
														
													
														
															
																 | 
																 | 
																			 */ | 
																 | 
																 | 
																			 */ | 
															
														
														
													
														
															
																 | 
																 | 
																			frccur++; | 
																 | 
																 | 
																			frccur++; | 
															
														
														
													
														
															
																 | 
																 | 
																			frclen++; | 
																 | 
																 | 
																			frclen++; | 
															
														
														
													
														
															
																 | 
																 | 
																			if (frccur >= LEN(frc)) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(frccur >= LEN(frc)) | 
															
														
														
													
														
															
																 | 
																 | 
																				frccur = 0; | 
																 | 
																 | 
																				frccur = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																			if (frclen > LEN(frc)) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																			if(frclen > LEN(frc)) { | 
															
														
														
													
														
															
																 | 
																 | 
																				frclen = LEN(frc); | 
																 | 
																 | 
																				frclen = LEN(frc); | 
															
														
														
													
														
															
																 | 
																 | 
																				XftFontClose(xw.dpy, frc[frccur].font); | 
																 | 
																 | 
																				XftFontClose(xw.dpy, frc[frccur].font); | 
															
														
														
													
														
															
																 | 
																 | 
																			} | 
																 | 
																 | 
																			} | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -3085,7 +3085,7 @@ kpress(XEvent *ev) { | 
															
														
														
													
														
															
																 | 
																 | 
																	Status status; | 
																 | 
																 | 
																	Status status; | 
															
														
														
													
														
															
																 | 
																 | 
																	Shortcut *bp; | 
																 | 
																 | 
																	Shortcut *bp; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if (IS_SET(MODE_KBDLOCK)) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(IS_SET(MODE_KBDLOCK)) | 
															
														
														
													
														
															
																 | 
																 | 
																		return; | 
																 | 
																 | 
																		return; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	len = XmbLookupString(xw.xic, e, xstr, sizeof(xstr), &ksym, &status); | 
																 | 
																 | 
																	len = XmbLookupString(xw.xic, e, xstr, sizeof(xstr), &ksym, &status); | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -3107,7 +3107,7 @@ kpress(XEvent *ev) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if(len == 0) | 
																 | 
																 | 
																		if(len == 0) | 
															
														
														
													
														
															
																 | 
																 | 
																			return; | 
																 | 
																 | 
																			return; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																		if (len == 1 && e->state & Mod1Mask) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		if(len == 1 && e->state & Mod1Mask) | 
															
														
														
													
														
															
																 | 
																 | 
																			*cp++ = '\033'; | 
																 | 
																 | 
																			*cp++ = '\033'; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																		memcpy(cp, xstr, len); | 
																 | 
																 | 
																		memcpy(cp, xstr, len); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |