Browse Source

correct buffering

master
Matthias-Christian Ott 16 years ago
parent
commit
3cb6793781
1 changed files with 16 additions and 15 deletions
  1. +16
    -15
      std.c

+ 16
- 15
std.c View File

@ -85,7 +85,7 @@ movea(int x, int y) {
y = MAX(y, lines); y = MAX(y, lines);
cx = x; cx = x;
cy = y; cy = y;
cmd("s %d,%d", x, y);
cmd("seek(%d,%d)", x, y);
} }
void void
@ -186,10 +186,10 @@ parseesc(void) {
case 0: case 0:
case 22: case 22:
if(bold) if(bold)
cmd("b");
cmd("bold");
case 1: case 1:
if(!bold) if(!bold)
cmd("b");
cmd("bold");
break; break;
} }
} }
@ -204,7 +204,7 @@ parseesc(void) {
void void
scroll(int l) { scroll(int l) {
cmd("s %d, %d", cx, cy + l);
cmd("seek(%d,%d)", cx, cy + l);
} }
void void
@ -279,17 +279,18 @@ main(int argc, char *argv[]) {
r = select(ptm + 1, &rfds, NULL, NULL, NULL); r = select(ptm + 1, &rfds, NULL, NULL, NULL);
if(r == -1) if(r == -1)
eprintn("error, cannot select"); 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; return 0;
} }

Loading…
Cancel
Save