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