%zu was introduced in C99, so MSVC has its own way to handle it,
namely %Iu.

Signed-off-by: Derek Buitenhuis <[email protected]>
---
 libavcodec/tableprint.h |   20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/libavcodec/tableprint.h b/libavcodec/tableprint.h
index 81bb9af..ee13676 100644
--- a/libavcodec/tableprint.h
+++ b/libavcodec/tableprint.h
@@ -71,20 +71,32 @@ void write_uint32_t_2d_array(const void *, int, int);
 void write_float_2d_array   (const void *, int, int);
 /** @} */ // end of printfuncs group
 
-#define WRITE_ARRAY(prefix, type, name)                 \
+#if defined(_MSC_VER)
+#define WRITE_ARRAY(prefix, type, name) \
+            WRITE_ARRAY_REAL(prefix, type, name, Iu)
+#define WRITE_2D_ARRAY(prefix, type, name) \
+            WRITE_2D_ARRAY_REAL(prefix, type, name, Iu)
+#else
+#define WRITE_ARRAY(prefix, type, name) \
+            WRITE_ARRAY_REAL(prefix, type, name, zu)
+#define WRITE_2D_ARRAY(prefix, type, name) \
+            WRITE_2D_ARRAY_REAL(prefix, type, name, zu)
+#endif
+
+#define WRITE_ARRAY_REAL(prefix, type, name, fmt)       \
     do {                                                \
         const size_t array_size = FF_ARRAY_ELEMS(name); \
-        printf(prefix" "#type" "#name"[%zu] = {\n",     \
+        printf(prefix" "#type" "#name"[%"#fmt"] = {\n", \
                array_size);                             \
         write_##type##_array(name, array_size);         \
         printf("};\n");                                 \
     } while(0)
 
-#define WRITE_2D_ARRAY(prefix, type, name)                              \
+#define WRITE_2D_ARRAY_REAL(prefix, type, name, fmt)                    \
     do {                                                                \
         const size_t array_size1 = FF_ARRAY_ELEMS(name);                \
         const size_t array_size2 = FF_ARRAY_ELEMS(name[0]);             \
-        printf(prefix" "#type" "#name"[%zu][%zu] = {\n",                \
+        printf(prefix" "#type" "#name"[%"#fmt"][%"#fmt"] = {\n",        \
                array_size1, array_size2 );                              \
         write_##type##_2d_array(name, array_size1, array_size2);        \
         printf("};\n");                                                 \
-- 
1.7.10.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to