X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=libcitadel%2Ftests%2Fstringbuf_stream.c;fp=libcitadel%2Ftests%2Fstringbuf_stream.c;h=1c4a52ea4b52252a6b0b35b85e926ec95935dcfe;hp=6ea03a7b19dd8c809cdab0e04e52624ea0f0934e;hb=a9876b7a9950d597b18716250fcd39856efa3153;hpb=17facca88daba3788c5fcf6ffc8d57f3ed7a5905 diff --git a/libcitadel/tests/stringbuf_stream.c b/libcitadel/tests/stringbuf_stream.c index 6ea03a7b1..1c4a52ea4 100644 --- a/libcitadel/tests/stringbuf_stream.c +++ b/libcitadel/tests/stringbuf_stream.c @@ -70,6 +70,7 @@ static void StreamEncode(void) IOBuffer ReadBuffer; IOBuffer WriteBuffer; int err; + int ret = 0; int done = 0; void *vStream; @@ -102,21 +103,23 @@ static void StreamEncode(void) done = StrBuf_read_one_chunk_callback(fdin, 0, - &ReadBuffer) < SIZ * 4; + &ReadBuffer) < (SIZ * 4) -1 ; if (IOBufferStrLength(&ReadBuffer) == 0) { done = 1; } do { - StrBufStreamTranscode(ST, &WriteBuffer, &ReadBuffer, NULL, -1, vStream, done); - - while (IOBufferStrLength(&WriteBuffer) > 0) - { - err = StrBuf_write_one_chunk_callback(fdout, - 0, - &WriteBuffer); - } + do { + ret = StrBufStreamTranscode(ST, &WriteBuffer, &ReadBuffer, NULL, -1, vStream, done); + + while (IOBufferStrLength(&WriteBuffer) > 0) + { + err = StrBuf_write_one_chunk_callback(fdout, + 0, + &WriteBuffer); + } + } while (ret > 0); } while (IOBufferStrLength(&ReadBuffer) > 0); }