| 261 |
|
static |
| 262 |
|
x11_flush() /* flush output */ |
| 263 |
|
{ |
| 264 |
+ |
int n; |
| 265 |
+ |
register char *buf; |
| 266 |
+ |
|
| 267 |
|
XNoOp(ourdisplay); |
| 268 |
|
while (XPending(ourdisplay) > 0) |
| 269 |
|
getevent(); |
| 270 |
+ |
#ifdef FIONREAD |
| 271 |
+ |
if (ioctl(0, FIONREAD, &n) == 0 && n) { /* from stdin */ |
| 272 |
+ |
buf = getcombuf(&x11_driver); |
| 273 |
+ |
n = read(0, buf, n); |
| 274 |
+ |
buf[n] = '\0'; |
| 275 |
+ |
} |
| 276 |
+ |
#endif |
| 277 |
|
} |
| 278 |
|
|
| 279 |
|
|
| 281 |
|
x11_comin(inp, prompt) /* read in a command line */ |
| 282 |
|
char *inp, *prompt; |
| 283 |
|
{ |
| 284 |
< |
if (prompt != NULL) |
| 284 |
> |
if (prompt != NULL) { |
| 285 |
> |
x11_flush(); /* make sure we get everything */ |
| 286 |
|
if (fromcombuf(inp, &x11_driver)) |
| 287 |
|
return; |
| 288 |
< |
else |
| 289 |
< |
xt_puts(prompt, comline); |
| 288 |
> |
xt_puts(prompt, comline); |
| 289 |
> |
} |
| 290 |
|
xt_cursor(comline, TBLKCURS); |
| 291 |
|
editline(inp, x11_getc, x11_comout); |
| 292 |
|
xt_cursor(comline, TNOCURS); |