diff -r 1e2b1005004c -r 451607eeff05 libidav/utils.c --- a/libidav/utils.c Thu May 28 14:34:46 2015 +0200 +++ b/libidav/utils.c Fri May 29 09:48:10 2015 +0200 @@ -384,3 +384,16 @@ return str; } } + +sstr_t util_readline(FILE *stream) { + UcxBuffer *buf = ucx_buffer_new(NULL, 128, UCX_BUFFER_AUTOEXTEND); + + int c; + while((c = fgetc(stream)) != '\n') { + ucx_buffer_putc(buf, c); + } + + sstr_t str = sstrdup(sstrtrim(sstrn(buf->space, buf->size))); + ucx_buffer_free(buf); + return str; +}