correct buffering
This commit is contained in:
		
							parent
							
								
									cf147ae9da
								
							
						
					
					
						commit
						3cb6793781
					
				
							
								
								
									
										31
									
								
								std.c
								
								
								
								
							
							
						
						
									
										31
									
								
								std.c
								
								
								
								
							| 
						 | 
				
			
			@ -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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue