|
@ -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; |
|
|
} |
|
|
} |