improve ff_get_line to return line length
authorAurelien Jacobs <aurel@gnuage.org>
Wed, 21 Jul 2010 21:40:10 +0000 (21:40 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Wed, 21 Jul 2010 21:40:10 +0000 (21:40 +0000)
Originally committed as revision 24400 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/aviobuf.c
libavformat/internal.h

index 264d2de..5841966 100644 (file)
@@ -554,18 +554,19 @@ char *get_strz(ByteIOContext *s, char *buf, int maxlen)
     return buf;
 }
 
-void ff_get_line(ByteIOContext *s, char *buf, int maxlen)
+int ff_get_line(ByteIOContext *s, char *buf, int maxlen)
 {
     int i = 0;
     char c;
 
     do {
         c = get_byte(s);
-        if (i < maxlen-1)
+        if (c && i < maxlen-1)
             buf[i++] = c;
     } while (c != '\n' && c);
 
     buf[i] = 0;
+    return i;
 }
 
 uint64_t get_be64(ByteIOContext *s)
index 5833ef0..b746c1d 100644 (file)
@@ -167,7 +167,7 @@ int ff_get_v_length(uint64_t val);
  */
 void ff_put_v(ByteIOContext *bc, uint64_t val);
 
-void ff_get_line(ByteIOContext *s, char *buf, int maxlen);
+int ff_get_line(ByteIOContext *s, char *buf, int maxlen);
 
 #define SPACE_CHARS " \t\r\n"