[Mesa-dev] [PATCH 1/2] util: add util_vasprintf() for Windows

Brian Paul brianp at vmware.com
Fri Sep 8 22:55:07 UTC 2017


We don't have vasprintf() on Windows so we need to implement it ourselves.
Since we don't know the length of the final string, take a guess at 10000
chars.
---
 src/util/u_string.h | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/util/u_string.h b/src/util/u_string.h
index e88e13f..d787cd3 100644
--- a/src/util/u_string.h
+++ b/src/util/u_string.h
@@ -110,6 +110,16 @@ util_sprintf(char *str, const char *format, ...)
    va_end(ap);
 }
 
+static inline int
+util_vasprintf(char **ret, const char *format, va_list ap)
+{
+   /* Just allocate 10000 bytes as a guess */
+   *ret = (char *) malloc(10000);
+   if (!ret)
+      return -1;
+   return util_vsnprintf(*ret, 10000, format, ap);
+}
+
 static inline char *
 util_strchr(const char *s, char c)
 {
@@ -186,6 +196,7 @@ util_strstr(const char *haystack, const char *needle)
 #define util_vsnprintf vsnprintf
 #define util_snprintf snprintf
 #define util_vsprintf vsprintf
+#define util_vasprintf vasprintf
 #define util_sprintf sprintf
 #define util_strchr strchr
 #define util_strcmp strcmp
-- 
1.9.1



More information about the mesa-dev mailing list