| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -186,18 +186,18 @@ static void tputc(Rune); | 
															
														
														
													
														
															
																 | 
																 | 
																static void treset(void); | 
																 | 
																 | 
																static void treset(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tscrollup(int, int); | 
																 | 
																 | 
																static void tscrollup(int, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tscrolldown(int, int); | 
																 | 
																 | 
																static void tscrolldown(int, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tsetattr(int *, int); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static void tsetchar(Rune, Glyph *, int, int); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void tsetattr(const int *, int); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void tsetchar(Rune, const Glyph *, int, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tsetdirt(int, int); | 
																 | 
																 | 
																static void tsetdirt(int, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tsetscroll(int, int); | 
																 | 
																 | 
																static void tsetscroll(int, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tswapscreen(void); | 
																 | 
																 | 
																static void tswapscreen(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tsetmode(int, int, int *, int); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void tsetmode(int, int, const int *, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static int twrite(const char *, int, int); | 
																 | 
																 | 
																static int twrite(const char *, int, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tfulldirt(void); | 
																 | 
																 | 
																static void tfulldirt(void); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tcontrolcode(uchar ); | 
																 | 
																 | 
																static void tcontrolcode(uchar ); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tdectest(char ); | 
																 | 
																 | 
																static void tdectest(char ); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tdefutf8(char); | 
																 | 
																 | 
																static void tdefutf8(char); | 
															
														
														
													
														
															
																 | 
																 | 
																static int32_t tdefcolor(int *, int *, int); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static int32_t tdefcolor(const int *, int *, int); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tdeftran(char); | 
																 | 
																 | 
																static void tdeftran(char); | 
															
														
														
													
														
															
																 | 
																 | 
																static void tstrsequence(uchar); | 
																 | 
																 | 
																static void tstrsequence(uchar); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -226,10 +226,10 @@ static int iofd = 1; | 
															
														
														
													
														
															
																 | 
																 | 
																static int cmdfd; | 
																 | 
																 | 
																static int cmdfd; | 
															
														
														
													
														
															
																 | 
																 | 
																static pid_t pid; | 
																 | 
																 | 
																static pid_t pid; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																static uchar utfbyte[UTF_SIZ + 1] = {0x80,    0, 0xC0, 0xE0, 0xF0}; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static Rune utfmin[UTF_SIZ + 1] = {       0,    0,  0x80,  0x800,  0x10000}; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static const uchar utfbyte[UTF_SIZ + 1] = {0x80,    0, 0xC0, 0xE0, 0xF0}; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static const uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static const Rune utfmin[UTF_SIZ + 1] = {       0,    0,  0x80,  0x800,  0x10000}; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static const Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																ssize_t | 
																 | 
																 | 
																ssize_t | 
															
														
														
													
														
															
																 | 
																 | 
																xwrite(int fd, const char *s, size_t len) | 
																 | 
																 | 
																xwrite(int fd, const char *s, size_t len) | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -269,12 +269,14 @@ xrealloc(void *p, size_t len) | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																char * | 
																 | 
																 | 
																char * | 
															
														
														
													
														
															
																 | 
																 | 
																xstrdup(char *s) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																xstrdup(const char *s) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	if ((s = strdup(s)) == NULL) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	char *p; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if ((p = strdup(s)) == NULL) | 
															
														
														
													
														
															
																 | 
																 | 
																		die("strdup: %s\n", strerror(errno)); | 
																 | 
																 | 
																		die("strdup: %s\n", strerror(errno)); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	return s; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	return p; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																size_t | 
																 | 
																 | 
																size_t | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -518,7 +520,7 @@ selsnap(int *x, int *y, int direction) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int newx, newy, xt, yt; | 
																 | 
																 | 
																	int newx, newy, xt, yt; | 
															
														
														
													
														
															
																 | 
																 | 
																	int delim, prevdelim; | 
																 | 
																 | 
																	int delim, prevdelim; | 
															
														
														
													
														
															
																 | 
																 | 
																	Glyph *gp, *prevgp; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	const Glyph *gp, *prevgp; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	switch (sel.snap) { | 
																 | 
																 | 
																	switch (sel.snap) { | 
															
														
														
													
														
															
																 | 
																 | 
																	case SNAP_WORD: | 
																 | 
																 | 
																	case SNAP_WORD: | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -591,7 +593,7 @@ getsel(void) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	char *str, *ptr; | 
																 | 
																 | 
																	char *str, *ptr; | 
															
														
														
													
														
															
																 | 
																 | 
																	int y, bufsize, lastx, linelen; | 
																 | 
																 | 
																	int y, bufsize, lastx, linelen; | 
															
														
														
													
														
															
																 | 
																 | 
																	Glyph *gp, *last; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	const Glyph *gp, *last; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if (sel.ob.x == -1) | 
																 | 
																 | 
																	if (sel.ob.x == -1) | 
															
														
														
													
														
															
																 | 
																 | 
																		return NULL; | 
																 | 
																 | 
																		return NULL; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -758,7 +760,7 @@ stty(char **args) | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																int | 
																 | 
																 | 
																int | 
															
														
														
													
														
															
																 | 
																 | 
																ttynew(char *line, char *cmd, char *out, char **args) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																ttynew(const char *line, char *cmd, const char *out, char **args) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int m, s; | 
																 | 
																 | 
																	int m, s; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1186,9 +1188,9 @@ tmoveto(int x, int y) | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																tsetchar(Rune u, Glyph *attr, int x, int y) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																tsetchar(Rune u, const Glyph *attr, int x, int y) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	static char *vt100_0[62] = { /* 0x41 - 0x7e */ | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	static const char *vt100_0[62] = { /* 0x41 - 0x7e */ | 
															
														
														
													
														
															
																 | 
																 | 
																		"↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */ | 
																 | 
																 | 
																		"↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */ | 
															
														
														
													
														
															
																 | 
																 | 
																		0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ | 
																 | 
																 | 
																		0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ | 
															
														
														
													
														
															
																 | 
																 | 
																		0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ | 
																 | 
																 | 
																		0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1300,7 +1302,7 @@ tdeleteline(int n) | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																int32_t | 
																 | 
																 | 
																int32_t | 
															
														
														
													
														
															
																 | 
																 | 
																tdefcolor(int *attr, int *npar, int l) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																tdefcolor(const int *attr, int *npar, int l) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int32_t idx = -1; | 
																 | 
																 | 
																	int32_t idx = -1; | 
															
														
														
													
														
															
																 | 
																 | 
																	uint r, g, b; | 
																 | 
																 | 
																	uint r, g, b; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1350,7 +1352,7 @@ tdefcolor(int *attr, int *npar, int l) | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																tsetattr(int *attr, int l) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																tsetattr(const int *attr, int l) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int i; | 
																 | 
																 | 
																	int i; | 
															
														
														
													
														
															
																 | 
																 | 
																	int32_t idx; | 
																 | 
																 | 
																	int32_t idx; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1468,9 +1470,9 @@ tsetscroll(int t, int b) | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
														
															
																 | 
																 | 
																tsetmode(int priv, int set, int *args, int narg) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																tsetmode(int priv, int set, const int *args, int narg) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	int alt, *lim; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	int alt; const int *lim; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	for (lim = args + narg; args < lim; ++args) { | 
																 | 
																 | 
																	for (lim = args + narg; args < lim; ++args) { | 
															
														
														
													
														
															
																 | 
																 | 
																		if (priv) { | 
																 | 
																 | 
																		if (priv) { | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -2020,7 +2022,7 @@ void | 
															
														
														
													
														
															
																 | 
																 | 
																tdumpline(int n) | 
																 | 
																 | 
																tdumpline(int n) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																	char buf[UTF_SIZ]; | 
																 | 
																 | 
																	char buf[UTF_SIZ]; | 
															
														
														
													
														
															
																 | 
																 | 
																	Glyph *bp, *end; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	const Glyph *bp, *end; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	bp = &term.line[n][0]; | 
																 | 
																 | 
																	bp = &term.line[n][0]; | 
															
														
														
													
														
															
																 | 
																 | 
																	end = &bp[MIN(tlinelen(n), term.col) - 1]; | 
																 | 
																 | 
																	end = &bp[MIN(tlinelen(n), term.col) - 1]; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |