Merge remote-tracking branch 'github/master'
[xonotic/netradiant.git] / tools / quake3 / q3map2 / main.c
index b53a6973c56c9afcf87f7fac53fa90cc386765be..76591a2ad29391bfd6b54cf43b17b912ace87f9a 100644 (file)
@@ -48,6 +48,38 @@ vec_t Random( void ){
 }
 
 
 }
 
 
+char *Q_strncpyz( char *dst, const char *src, size_t len ) {
+       if ( len == 0 ) {
+               abort();
+       }
+
+       strncpy( dst, src, len );
+       dst[ len - 1 ] = '\0';
+       return dst;
+}
+
+
+char *Q_strcat( char *dst, size_t dlen, const char *src ) {
+       size_t n = strlen( dst  );
+
+       if ( n > dlen ) {
+               abort(); /* buffer overflow */
+       }
+
+       return Q_strncpyz( dst + n, src, dlen - n );
+}
+
+
+char *Q_strncat( char *dst, size_t dlen, const char *src, size_t slen ) {
+       size_t n = strlen( dst );
+
+       if ( n > dlen ) {
+               abort(); /* buffer overflow */
+       }
+
+       return Q_strncpyz( dst + n, src, MIN( slen, dlen - n ) );
+}
+
 
 /*
    ExitQ3Map()
 
 /*
    ExitQ3Map()