#endif
+static void vg_strncpy( const char *src, char *dst, u32 len )
+{
+ for( u32 i=0; i<len; i++ )
+ {
+ dst[i] = src[i];
+
+ if( !src[i] )
+ break;
+ }
+}
+
#include <stdlib.h>
#define VG_ZERO_NEW_MEM
static void vg_fatal_exit_loop( const char *error );
static void *vg_alloc( size_t size )
{
+ if( size == 0 )
+ return NULL;
+
void *ptr = malloc( size );
if( !ptr )
+ {
vg_fatal_exit_loop( "Out of memory" );
+ }
#ifdef VG_ZERO_NEW_MEM
u8 *bytes = ptr;
void *ptr = realloc( orig, size );
if( !ptr )
+ {
+ if( size == 0 )
+ return NULL;
+
vg_fatal_exit_loop( "Out of memory" );
+ }
return ptr;
}
TYPE DECL = FN( PATH,##__VA_ARGS__ ); \
vg_required( DECL, "Resource is required but failed to load: '" PATH "'" );
+#if 0
+VG_DEPRECATED
+char *strcpy(char* destination, const char* source);
+VG_DEPRECATED
+char *strncpy(char *restrict dest, const char *restrict src, size_t n);
+VG_DEPRECATED
+char *strcat(char *restrict dest, const char *restrict src);
+VG_DEPRECATED
+char *strncat(char *restrict dest, const char *restrict src, size_t n);
+#endif
+
VG_DEPRECATED
void *malloc( size_t size );