avutil/murmur3: Add () to protect the ROT() arguments
[ffmpeg.git] / libavutil / bprint.c
index e779956..0a0d078 100644 (file)
@@ -26,6 +26,7 @@
 #include "avstring.h"
 #include "bprint.h"
 #include "common.h"
+#include "compat/va_copy.h"
 #include "error.h"
 #include "mem.h"
 
@@ -154,6 +155,24 @@ void av_bprint_chars(AVBPrint *buf, char c, unsigned n)
     av_bprint_grow(buf, n);
 }
 
+void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size)
+{
+    unsigned room, real_n;
+
+    while (1) {
+        room = av_bprint_room(buf);
+        if (size < room)
+            break;
+        if (av_bprint_alloc(buf, size))
+            break;
+    }
+    if (room) {
+        real_n = FFMIN(size, room - 1);
+        memcpy(buf->str + buf->len, data, real_n);
+    }
+    av_bprint_grow(buf, size);
+}
+
 void av_bprint_strftime(AVBPrint *buf, const char *fmt, const struct tm *tm)
 {
     unsigned room;
@@ -337,7 +356,7 @@ int main(void)
     av_bprint_init(&b, 0, 1);
     bprint_pascal(&b, 25);
     printf("Long text in automatic buffer: %u/%u\n", (unsigned)strlen(b.str)/8*8, b.len);
-    /* Note that the size of the automatic buffer is arch-dependant. */
+    /* Note that the size of the automatic buffer is arch-dependent. */
 
     av_bprint_init(&b, 0, 0);
     bprint_pascal(&b, 25);