Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / util / strndup.h
index a3d739841322750ff996f0a3a72fc77af612bfde..dcaa429dbe81b1b0fdb6d537972d93f41e73695e 100644 (file)
 #ifndef STRNDUP_H
 #define STRNDUP_H
 
 #ifndef STRNDUP_H
 #define STRNDUP_H
 
-#include <stdlib.h> // size_t
-
 #if defined(_WIN32)
 
 #if defined(_WIN32)
 
+#include <stdlib.h> // size_t
+#include <string.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-char *strndup(const char *str, size_t max);
+static inline char *
+strndup(const char *str, size_t max)
+{
+   size_t n;
+   char *ptr;
+
+   if (!str)
+      return NULL;
+
+   n = strnlen(str, max);
+   ptr = (char *) calloc(n + 1, sizeof(char));
+   if (!ptr)
+      return NULL;
+
+   memcpy(ptr, str, n);
+   return ptr;
+}
 
 #ifdef __cplusplus
 }
 #endif
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif /* _WIN32 */
 
 #endif /* STRNDUP_H */
 
 #endif /* STRNDUP_H */