From: Jun Zhao Date: Mon, 9 Apr 2018 15:05:42 +0000 (+0800) Subject: lavf/aviobuf: add ff_get_chomp_line X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=cdd107b96586916508f8665b08be7de54d9633cf;p=ffmpeg lavf/aviobuf: add ff_get_chomp_line Same as ff_get_line but strip the white-space characters in the string tail. Signed-off-by: Jun Zhao --- diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 95b33644784..e752d0e1a65 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -823,6 +823,14 @@ int ff_get_line(AVIOContext *s, char *buf, int maxlen) return i; } +int ff_get_chomp_line(AVIOContext *s, char *buf, int maxlen) +{ + int len = ff_get_line(s, buf, maxlen); + while (len > 0 && av_isspace(buf[len - 1])) + buf[--len] = '\0'; + return len; +} + int64_t ff_read_line_to_bprint(AVIOContext *s, AVBPrint *bp) { int len, end; diff --git a/libavformat/internal.h b/libavformat/internal.h index c50382ad29f..35826829250 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -299,6 +299,16 @@ void ff_put_v(AVIOContext *bc, uint64_t val); */ int ff_get_line(AVIOContext *s, char *buf, int maxlen); +/** + * Same as ff_get_line but strip the white-space characters in the text tail + * + * @param s the read-only AVIOContext + * @param buf buffer to store the read line + * @param maxlen size of the buffer + * @return the length of the string written in the buffer + */ +int ff_get_chomp_line(AVIOContext *s, char *buf, int maxlen); + /** * Read a whole line of text from AVIOContext to an AVBPrint buffer. Stop * reading after reaching a \\r, a \\n, a \\r\\n, a \\0 or EOF. The line