| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1306,23 +1306,18 @@ csiparse(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(p < csiescseq.buf+csiescseq.len) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							np = NULL; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							v = strtol(p, &np, 10); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(np == p) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(v == LONG_MAX || v == LONG_MIN) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								v = -1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							csiescseq.arg[csiescseq.narg] = v; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(np != NULL) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								p = np; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(*p == ';' && csiescseq.narg+1 < ESC_ARG_SIZ) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								csiescseq.narg++, p++; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								csiescseq.mode = *p; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								csiescseq.narg++; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							csiescseq.arg[csiescseq.narg++] = v; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							p = np; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(*p != ';' || csiescseq.narg == ESC_ARG_SIZ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							p++; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						csiescseq.mode = *p; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* for absolute user moves, when decom is set */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -1930,16 +1925,13 @@ strhandle(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					strparse(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char *p = strescseq.buf, *np, *sp; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char *p = strescseq.buf, *sp; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						strescseq.narg = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						np = strtok_r(strescseq.buf, ";", &sp); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						while(p < strescseq.buf+strescseq.len && np != NULL) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						strescseq.buf[strescseq.len] = '\0'; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(p = strtok_r(p, ";", &sp); p; p = strtok_r(NULL, ";", &sp)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(strescseq.narg == STR_ARG_SIZ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							strescseq.args[strescseq.narg++] = p; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							np = strtok_r(NULL, ";", &sp); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(np != NULL) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								p = np; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -1951,7 +1943,9 @@ strdump(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						printf("ESC%c", strescseq.type); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						for(i = 0; i < strescseq.len; i++) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							c = strescseq.buf[i] & 0xff; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(isprint(c)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(c == '\0') { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if(isprint(c)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								putchar(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else if(c == '\n') { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								printf("(\\n)"); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2039,7 +2033,7 @@ tputc(char *c, int len) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								strhandle(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							default: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(strescseq.len + len < sizeof(strescseq.buf)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if(strescseq.len + len < sizeof(strescseq.buf) - 1) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									memmove(&strescseq.buf[strescseq.len], c, len); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									strescseq.len += len; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |