version 1.63, 2001/04/15 17:16:00 |
version 1.64, 2001/04/17 09:52:48 |
|
|
if (FD_ISSET(fileno(stdin), readset)) { |
if (FD_ISSET(fileno(stdin), readset)) { |
/* Read as much as possible. */ |
/* Read as much as possible. */ |
len = read(fileno(stdin), buf, sizeof(buf)); |
len = read(fileno(stdin), buf, sizeof(buf)); |
|
if (len < 0 && (errno == EAGAIN || errno == EINTR)) |
|
return; /* we'll try again later */ |
if (len <= 0) { |
if (len <= 0) { |
/* |
/* |
* Received EOF or error. They are treated |
* Received EOF or error. They are treated |
|
|
len = write(fileno(stdout), buffer_ptr(&stdout_buffer), |
len = write(fileno(stdout), buffer_ptr(&stdout_buffer), |
buffer_len(&stdout_buffer)); |
buffer_len(&stdout_buffer)); |
if (len <= 0) { |
if (len <= 0) { |
if (errno == EAGAIN) |
if (errno == EINTR || errno == EAGAIN) |
len = 0; |
len = 0; |
else { |
else { |
/* |
/* |
|
|
len = write(fileno(stderr), buffer_ptr(&stderr_buffer), |
len = write(fileno(stderr), buffer_ptr(&stderr_buffer), |
buffer_len(&stderr_buffer)); |
buffer_len(&stderr_buffer)); |
if (len <= 0) { |
if (len <= 0) { |
if (errno == EAGAIN) |
if (errno == EINTR || errno == EAGAIN) |
len = 0; |
len = 0; |
else { |
else { |
/* EOF or error, but can't even print error message. */ |
/* EOF or error, but can't even print error message. */ |