char: io_channel_send: don't lose written bytes
The g_io_channel_write_chars() documentation states,
bytes_written: The number of bytes written. This can be nonzero even if
the return value is not G_IO_STATUS_NORMAL. [...]
io_channel_send() could lose such bytes before.
Furthermore, the (status == G_IO_STATUS_EOF) condition used to evaluate to
constant false whenever it was reached. When that condition actually held,
it always led to -1 / EINVAL. This patch (almost) distinguishes
G_IO_STATUS_EOF only when no bytes have been written, and then treats it
as an error.
Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Amit Shah <[email protected]>
Reviewed-by: Anthony Liguori <[email protected]>
Message-id:
1373998781[email protected]
Signed-off-by: Anthony Liguori <[email protected]>