| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -85,7 +85,7 @@ movea(int x, int y) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						y = MAX(y, lines); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						cx = x; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						cy = y; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						cmd("s %d,%d", x, y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						cmd("seek(%d,%d)", x, y); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -186,10 +186,10 @@ parseesc(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									case 0: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									case 22: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if(bold) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											cmd("b"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											cmd("bold"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									case 1: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if(!bold) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											cmd("b"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											cmd("bold"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -204,7 +204,7 @@ parseesc(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					scroll(int l) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						cmd("s %d, %d", cx, cy + l); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						cmd("seek(%d,%d)", cx, cy + l); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -279,17 +279,18 @@ main(int argc, char *argv[]) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							r = select(ptm + 1, &rfds, NULL, NULL, NULL); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(r == -1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								eprintn("error, cannot select"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(FD_ISSET(ptm, &rfds)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								c = getch(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								switch(c) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								case '\033': | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									parseesc(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								default: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									putchar(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								fflush(stdout); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if(FD_ISSET(ptm, &rfds)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								do { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									c = getch(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									switch(c) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									case '\033': | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										parseesc(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									default: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										putchar(c); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									fflush(stdout); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} while(rbuf.i < rbuf.n); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						return 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} |