|
Lines 387-396
process_input(fd_set *readset)
Link Here
|
| 387 |
|
387 |
|
| 388 |
/* Read and buffer any available stdout data from the program. */ |
388 |
/* Read and buffer any available stdout data from the program. */ |
| 389 |
if (!fdout_eof && FD_ISSET(fdout, readset)) { |
389 |
if (!fdout_eof && FD_ISSET(fdout, readset)) { |
|
|
390 |
errno = 0; |
| 390 |
len = read(fdout, buf, sizeof(buf)); |
391 |
len = read(fdout, buf, sizeof(buf)); |
| 391 |
if (len < 0 && (errno == EINTR || errno == EAGAIN)) { |
392 |
if (len < 0 && (errno == EINTR || errno == EAGAIN)) { |
| 392 |
/* do nothing */ |
393 |
/* do nothing */ |
|
|
394 |
#ifndef PTY_ZEROREAD |
| 393 |
} else if (len <= 0) { |
395 |
} else if (len <= 0) { |
|
|
396 |
#else |
| 397 |
} else if ((!isatty(fdout) && len <= 0) || |
| 398 |
(isatty(fdout) && (len < 0 || (len == 0 && errno != 0)))) { |
| 399 |
#endif |
| 394 |
fdout_eof = 1; |
400 |
fdout_eof = 1; |
| 395 |
} else { |
401 |
} else { |
| 396 |
buffer_append(&stdout_buffer, buf, len); |
402 |
buffer_append(&stdout_buffer, buf, len); |
|
Lines 399-408
process_input(fd_set *readset)
Link Here
|
| 399 |
} |
405 |
} |
| 400 |
/* Read and buffer any available stderr data from the program. */ |
406 |
/* Read and buffer any available stderr data from the program. */ |
| 401 |
if (!fderr_eof && FD_ISSET(fderr, readset)) { |
407 |
if (!fderr_eof && FD_ISSET(fderr, readset)) { |
|
|
408 |
errno = 0; |
| 402 |
len = read(fderr, buf, sizeof(buf)); |
409 |
len = read(fderr, buf, sizeof(buf)); |
| 403 |
if (len < 0 && (errno == EINTR || errno == EAGAIN)) { |
410 |
if (len < 0 && (errno == EINTR || errno == EAGAIN)) { |
| 404 |
/* do nothing */ |
411 |
/* do nothing */ |
|
|
412 |
#ifndef PTY_ZEROREAD |
| 405 |
} else if (len <= 0) { |
413 |
} else if (len <= 0) { |
|
|
414 |
#else |
| 415 |
} else if ((!isatty(fderr) && len <= 0) || |
| 416 |
(isatty(fderr) && (len < 0 || (len == 0 && errno != 0)))) { |
| 417 |
#endif |
| 406 |
fderr_eof = 1; |
418 |
fderr_eof = 1; |
| 407 |
} else { |
419 |
} else { |
| 408 |
buffer_append(&stderr_buffer, buf, len); |
420 |
buffer_append(&stderr_buffer, buf, len); |