| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -98,37 +98,37 @@ enum cursor_movement { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum cursor_state { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						CURSOR_DEFAULT  = 0, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						CURSOR_WRAPNEXT = 1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						CURSOR_ORIGIN	= 2 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						CURSOR_ORIGIN   = 2 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum term_mode { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_WRAP	 = 1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_WRAP        = 1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_INSERT      = 2, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_APPKEYPAD   = 4, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_ALTSCREEN   = 8, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_CRLF	 = 16, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_CRLF        = 16, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSEBTN    = 32, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSEMOTION = 64, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_REVERSE     = 128, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_KBDLOCK     = 256, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_HIDE	 = 512, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_ECHO	 = 1024, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_APPCURSOR	 = 2048, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_HIDE        = 512, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_ECHO        = 1024, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_APPCURSOR   = 2048, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSESGR    = 4096, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_8BIT	 = 8192, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_BLINK	 = 16384, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_FBLINK	 = 32768, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_FOCUS	 = 65536, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSEX10	 = 131072, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_8BIT        = 8192, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_BLINK       = 16384, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_FBLINK      = 32768, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_FOCUS       = 65536, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSEX10    = 131072, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSEMANY   = 262144, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						MODE_MOUSE       = MODE_MOUSEBTN|MODE_MOUSEMOTION|MODE_MOUSEX10\ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								   |MODE_MOUSEMANY, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						                  |MODE_MOUSEMANY, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					enum escape_state { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_START      = 1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_CSI	= 2, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_STR	= 4, /* DSC, OSC, PM, APC */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_CSI        = 2, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_STR        = 4,  /* DSC, OSC, PM, APC */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_ALTCHARSET = 8, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_STR_END    = 16, /* a final string was encountered */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ESC_TEST       = 32, /* Enter in test mode */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -156,16 +156,16 @@ typedef unsigned long ulong; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef unsigned short ushort; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char c[UTF_SIZ];     /* character code */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						uchar mode;  /* attribute flags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ushort fg;   /* foreground  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ushort bg;   /* background  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char c[UTF_SIZ]; /* character code */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						uchar mode;      /* attribute flags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ushort fg;       /* foreground  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ushort bg;       /* background  */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Glyph; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef Glyph *Line; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Glyph attr;	 /* current char attributes */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Glyph attr; /* current char attributes */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int x; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int y; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char state; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -175,36 +175,36 @@ typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* ESC '[' [[ [<priv>] <arg> [;]] <mode>] */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char buf[ESC_BUF_SIZ]; /* raw string */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int len;	       /* raw string length */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int len;               /* raw string length */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char priv; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int arg[ESC_ARG_SIZ]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int narg;	       /* nb of args */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int narg;              /* nb of args */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char mode; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} CSIEscape; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* STR Escape sequence structs */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* ESC type [[ [<priv>] <arg> [;]] <mode>] ESC '\' */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char type;	     /* ESC type ... */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char type;             /* ESC type ... */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char buf[STR_BUF_SIZ]; /* raw string */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int len;	       /* raw string length */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int len;               /* raw string length */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char *args[STR_ARG_SIZ]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int narg;	      /* nb of args */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int narg;              /* nb of args */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} STREscape; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* Internal representation of the screen */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int row;	/* nb row */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int col;	/* nb col */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Line *line;	/* screen */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Line *alt;	/* alternate screen */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						bool *dirty;	/* dirtyness of lines */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						TCursor c;	/* cursor */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int top;	/* top    scroll limit */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int bot;	/* bottom scroll limit */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int mode;	/* terminal mode flags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int esc;	/* escape state flags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						bool numlock;	/* lock numbers in keyboard */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int row;      /* nb row */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int col;      /* nb col */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Line *line;   /* screen */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Line *alt;    /* alternate screen */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						bool *dirty;  /* dirtyness of lines */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						TCursor c;    /* cursor */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int top;      /* top    scroll limit */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int bot;      /* bottom scroll limit */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int mode;     /* terminal mode flags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int esc;      /* escape state flags */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						bool numlock; /* lock numbers in keyboard */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						bool *tabs; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Term; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -241,9 +241,9 @@ typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						uint mask; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char s[ESC_BUF_SIZ]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						/* three valued logic variables: 0 indifferent, 1 on, -1 off */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						signed char appkey;		/* application keypad */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						signed char appcursor;		/* application cursor */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						signed char crlf;		/* crlf mode          */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						signed char appkey;    /* application keypad */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						signed char appcursor; /* application cursor */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						signed char crlf;      /* crlf mode          */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Key; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					typedef struct { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1182,7 +1182,7 @@ sigchld(int a) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int stat = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(waitpid(pid, &stat, 0) < 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							die("Waiting for pid %hd failed: %s\n",	pid, SERRNO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							die("Waiting for pid %hd failed: %s\n", pid, SERRNO); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(WIFEXITED(stat)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							exit(WEXITSTATUS(stat)); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1821,7 +1821,7 @@ tsetmode(bool priv, bool set, int *args, int narg) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										tclearregion(0, 0, term.col-1, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												term.row-1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(set ^ alt)		/* set is always 1 or 0 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(set ^ alt) /* set is always 1 or 0 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										tswapscreen(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if(*args != 1049) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										break; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2184,10 +2184,10 @@ techo(char *buf, int len) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(; len > 0; buf++, len--) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							char c = *buf; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(c == '\033') {		/* escape */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(c == '\033') { /* escape */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tputc("^", 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tputc("[", 1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if(c < '\x20') {	/* control code */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if(c < '\x20') { /* control code */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(c != '\n' && c != '\r' && c != '\t') { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									c |= '\x40'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									tputc("^", 1); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2258,31 +2258,31 @@ tputc(char *c, int len) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(control) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							switch(ascii) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\t':	/* HT */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\t':   /* HT */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tputtab(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\b':	/* BS */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\b':   /* BS */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tmoveto(term.c.x-1, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\r':	/* CR */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\r':   /* CR */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tmoveto(0, term.c.y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\f':	/* LF */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\v':	/* VT */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\n':	/* LF */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\f':   /* LF */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\v':   /* VT */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\n':   /* LF */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								/* go to first col if the mode is set */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								tnewline(IS_SET(MODE_CRLF)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\a':	/* BEL */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\a':   /* BEL */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(!(xw.state & WIN_FOCUSED)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									xseturgency(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\033':	/* ESC */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\033': /* ESC */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								csireset(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								term.esc = ESC_START; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\016':	/* SO */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\017':	/* SI */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\016': /* SO */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\017': /* SI */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								/* | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								 * Different charsets are hard to handle. Applications | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								 * should use the right alt charset escapes for the | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -2290,15 +2290,15 @@ tputc(char *c, int len) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								 * rest is incompatible history st should not support. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\032':	/* SUB */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\030':	/* CAN */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\032': /* SUB */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\030': /* CAN */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								csireset(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\005':	/* ENQ (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\000':	/* NUL (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\021':	/* XON (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\023':	/* XOFF (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 0177:	/* DEL (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\005': /* ENQ (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\000': /* NUL (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\021': /* XON (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case '\023': /* XOFF (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							case 0177:   /* DEL (IGNORED) */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else if(term.esc & ESC_START) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2963,9 +2963,9 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							/* | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 * Those ranges will not be brightened: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 *	8 - 15 – bright system colors | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 *	196 - 231 – highest 256 color cube | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 *	252 - 255 – brightest colors in greyscale | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 *    8 - 15 – bright system colors | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 *    196 - 231 – highest 256 color cube | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 *    252 - 255 – brightest colors in greyscale | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							font = &dc.bfont; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							frcflags = FRC_BOLD; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |