diff options
-rw-r--r-- | strbuf.c | 10 | ||||
-rw-r--r-- | strbuf.h | 6 |
2 files changed, 16 insertions, 0 deletions
@@ -690,6 +690,16 @@ int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term) } #endif +int strbuf_appendwholeline(struct strbuf *sb, FILE *fp, int term) +{ + struct strbuf line = STRBUF_INIT; + if (strbuf_getwholeline(&line, fp, term)) + return EOF; + strbuf_addbuf(sb, &line); + strbuf_release(&line); + return 0; +} + static int strbuf_getdelim(struct strbuf *sb, FILE *fp, int term) { if (strbuf_getwholeline(sb, fp, term)) @@ -503,6 +503,12 @@ int strbuf_getline(struct strbuf *sb, FILE *file); int strbuf_getwholeline(struct strbuf *sb, FILE *file, int term); /** + * Like `strbuf_getwholeline`, but appends the line instead of + * resetting the buffer first. + */ +int strbuf_appendwholeline(struct strbuf *sb, FILE *file, int term); + +/** * Like `strbuf_getwholeline`, but operates on a file descriptor. * It reads one character at a time, so it is very slow. Do not * use it unless you need the correct position in the file |