diff --git a/src/stream.c b/src/stream.c index b04c400..613d80e 100644 --- a/src/stream.c +++ b/src/stream.c @@ -249,6 +249,30 @@ cfw_stream_write_string(void *ptr, const char *str) return cfw_stream_write(ptr, str, strlen(str)); } +bool +cfw_stream_write_line(void *ptr, const char *str) +{ + char *tmp; + size_t len; + + len = strlen(str); + + if ((tmp = malloc(len + 2)) == NULL) + return false; + + memcpy(tmp, str, len); + tmp[len] = '\n'; + tmp[len + 1] = '\0'; + + if (!cfw_stream_write(ptr, tmp, len + 1)) { + free(tmp); + return false; + } + + free(tmp); + return true; +} + bool cfw_stream_eof(void *ptr) { diff --git a/src/stream.h b/src/stream.h index 4b29bd8..03b545b 100644 --- a/src/stream.h +++ b/src/stream.h @@ -52,6 +52,7 @@ extern ssize_t cfw_stream_read(void*, void*, size_t); extern CFWString* cfw_stream_read_line(void*); extern bool cfw_stream_write(void*, const void*, size_t); extern bool cfw_stream_write_string(void*, const char*); +extern bool cfw_stream_write_line(void*, const char*); extern bool cfw_stream_eof(void*); extern void cfw_stream_close(void*); #endif