* fhandler_termios.cc (fhandler_termios::line_edit): Fix condition

for writing remaining bytes in readahead buffer in non-canonical mode.
This commit is contained in:
Corinna Vinschen
2015-02-26 15:58:04 +00:00
parent 3667a9f444
commit 31c123f982
3 changed files with 20 additions and 7 deletions

View File

@@ -393,15 +393,17 @@ fhandler_termios::line_edit (const char *rptr, size_t nread, termios& ti,
}
/* If we didn't write all bytes in non-canonical mode, write them now. */
if (!iscanon && ralen > 0)
if (!iscanon && ralen > 0
&& (ret == line_edit_ok || ret == line_edit_input_done))
{
if (ret == line_edit_ok)
{
int status = accept_input ();
if (status != 1)
nread += ralen;
int status = accept_input ();
if (status != 1)
{
ret = status ? line_edit_error : line_edit_pipe_full;
nread += ralen;
}
ret = line_edit_input_done;
else
ret = line_edit_input_done;
}
/* Adding one compensates for the postdecrement in the above loop. */