Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / util / u_string.h
index d91293c33809855cb563317b168c5adbfcbbbd3d..88df2cceda66681d02e6b8c2f9752bce7f845080 100644 (file)
@@ -50,7 +50,7 @@
 extern "C" {
 #endif
 
-#ifndef _GNU_SOURCE
+#if !defined(_GNU_SOURCE) || defined(__APPLE__)
 
 #define strchrnul util_strchrnul
 static inline char *
@@ -65,35 +65,6 @@ util_strchrnul(const char *s, char c)
 
 #ifdef _WIN32
 
-static inline int
-util_vsnprintf(char *str, size_t size, const char *format, va_list ap)
-{
-   /* We need to use _vscprintf to calculate the length as vsnprintf returns -1
-    * if the number of characters to write is greater than count.
-    */
-   va_list ap_copy;
-   int ret;
-   va_copy(ap_copy, ap);
-   ret = _vsnprintf(str, size, format, ap);
-   if (ret < 0) {
-      ret = _vscprintf(format, ap_copy);
-   }
-   va_end(ap_copy);
-   return ret;
-}
-
-static inline int
-   PRINTFLIKE(3, 4)
-util_snprintf(char *str, size_t size, const char *format, ...)
-{
-   va_list ap;
-   int ret;
-   va_start(ap, format);
-   ret = util_vsnprintf(str, size, format, ap);
-   va_end(ap);
-   return ret;
-}
-
 #define sprintf util_sprintf
 static inline void
    PRINTFLIKE(2, 3)
@@ -101,10 +72,11 @@ util_sprintf(char *str, const char *format, ...)
 {
    va_list ap;
    va_start(ap, format);
-   util_vsnprintf(str, (size_t)-1, format, ap);
+   vsnprintf(str, (size_t)-1, format, ap);
    va_end(ap);
 }
 
+#define vasprintf util_vasprintf
 static inline int
 util_vasprintf(char **ret, const char *format, va_list ap)
 {
@@ -112,7 +84,7 @@ util_vasprintf(char **ret, const char *format, va_list ap)
 
    /* Compute length of output string first */
    va_copy(ap_copy, ap);
-   int r = util_vsnprintf(NULL, 0, format, ap_copy);
+   int r = vsnprintf(NULL, 0, format, ap_copy);
    va_end(ap_copy);
 
    if (r < 0)
@@ -123,68 +95,30 @@ util_vasprintf(char **ret, const char *format, va_list ap)
       return -1;
 
    /* Print to buffer */
-   return util_vsnprintf(*ret, r + 1, format, ap);
+   return vsnprintf(*ret, r + 1, format, ap);
 }
 
-#define strncat util_strncat
-static inline char*
-util_strncat(char *dst, const char *src, size_t n)
-{
-   char *p = dst + strlen(dst);
-   const char *q = src;
-   size_t i;
-
-   for (i = 0; i < n && *q != '\0'; ++i)
-       *p++ = *q++;
-   *p = '\0';
-
-   return dst;
-}
-
-#define strcmp util_strcmp
-static inline int
-util_strcmp(const char *s1, const char *s2)
-{
-   unsigned char u1, u2;
-
-   while (1) {
-      u1 = (unsigned char) *s1++;
-      u2 = (unsigned char) *s2++;
-      if (u1 != u2)
-        return u1 - u2;
-      if (u1 == '\0')
-        return 0;
-   }
-   return 0;
-}
-
-#define strncmp util_strncmp
+#define asprintf util_asprintf
 static inline int
-util_strncmp(const char *s1, const char *s2, size_t n)
+util_asprintf(char **str, const char *fmt, ...)
 {
-   unsigned char u1, u2;
-
-   while (n-- > 0) {
-      u1 = (unsigned char) *s1++;
-      u2 = (unsigned char) *s2++;
-      if (u1 != u2)
-        return u1 - u2;
-      if (u1 == '\0')
-        return 0;
-   }
-   return 0;
+   int ret;
+   va_list args;
+   va_start(args, fmt);
+   ret = vasprintf(str, fmt, args);
+   va_end(args);
+   return ret;
 }
 
-
-
+#ifndef strcasecmp
 #define strcasecmp stricmp
-#define strdup _strdup
+#endif
 
-#else
+#define strdup _strdup
 
-#define util_vsnprintf vsnprintf
-#define util_snprintf snprintf
-#define util_vasprintf vasprintf
+#if defined(_WIN32) && !defined(HAVE_STRTOK_R)
+#define strtok_r strtok_s
+#endif
 
 #endif