X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=tools%2Fquake3%2Fq3map2%2Fmain.c;h=76591a2ad29391bfd6b54cf43b17b912ace87f9a;hp=b53a6973c56c9afcf87f7fac53fa90cc386765be;hb=b7e36c120eb1546a6c6f97f30e42ab7f9a559c61;hpb=3c73487420fde8d4a3b5360d8b99e48132517900;ds=sidebyside diff --git a/tools/quake3/q3map2/main.c b/tools/quake3/q3map2/main.c index b53a6973..76591a2a 100644 --- a/tools/quake3/q3map2/main.c +++ b/tools/quake3/q3map2/main.c @@ -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()