diff --git a/src/common/util.c b/src/common/util.c index 49613f51..4f1023d9 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -214,11 +214,13 @@ waitline2 (GIOChannel *source, char *buf, int bufsize) gsize len; GError *error = NULL; + if (g_io_channel_get_buffered (source)) + { + g_io_channel_set_encoding (source, NULL, &error); + g_io_channel_set_buffered (source, FALSE); + } while (1) { - g_io_channel_set_buffered (source, FALSE); - g_io_channel_set_encoding (source, NULL, &error); - if (g_io_channel_read_chars (source, &buf[i], 1, &len, &error) != G_IO_STATUS_NORMAL) { return -1;