public: slight refactoring

This commit is contained in:
Alibek Omarov 2024-12-17 19:57:27 +03:00
parent ca0c5f929a
commit b4afe390d6

View file

@ -171,61 +171,60 @@ static inline char *Q_strstr( const char *s1, const char *s2 )
// libc extensions, be careful what to enable or what not // libc extensions, be careful what to enable or what not
static inline size_t Q_strncpy( char *dst, const char *src, size_t size ) static inline size_t Q_strncpy( char *dst, const char *src, size_t size )
{ {
#if HAVE_STRLCPY
if( unlikely( !dst || !src || !size )) if( unlikely( !dst || !src || !size ))
return 0; return 0;
#if HAVE_STRLCPY
return strlcpy( dst, src, size ); return strlcpy( dst, src, size );
#else #else
size_t len;
if( unlikely( !dst || !src || !size ))
return 0;
len = strlen( src );
if( len + 1 > size ) // check if truncate
{ {
memcpy( dst, src, size - 1 ); size_t len;
dst[size - 1] = 0;
}
else memcpy( dst, src, len + 1 );
return len; // count does not include NULL len = strlen( src );
if( len + 1 > size ) // check if truncate
{
memcpy( dst, src, size - 1 );
dst[size - 1] = 0;
}
else memcpy( dst, src, len + 1 );
return len; // count does not include NULL
}
#endif #endif
} }
static inline size_t Q_strncat( char *dst, const char *src, size_t size ) static inline size_t Q_strncat( char *dst, const char *src, size_t size )
{ {
#if HAVE_STRLCAT
if( unlikely( !dst || !src || !size )) if( unlikely( !dst || !src || !size ))
return 0; return 0;
#if HAVE_STRLCAT
return strlcat( dst, src, size ); return strlcat( dst, src, size );
#else #else
char *d = dst;
const char *s = src;
size_t n = size;
size_t dlen;
if( unlikely( !dst || !src || !size ))
return 0;
// find the end of dst and adjust bytes left but don't go past end
while( n-- != 0 && *d != '\0' ) d++;
dlen = d - dst;
n = size - dlen;
if( n == 0 ) return( dlen + Q_strlen( s ));
while( *s != '\0' )
{ {
if( n != 1 ) char *d = dst;
{ const char *s = src;
*d++ = *s; size_t n = size;
n--; size_t dlen;
}
s++;
}
*d = '\0'; // find the end of dst and adjust bytes left but don't go past end
return( dlen + ( s - src )); // count does not include NULL while( n-- != 0 && *d != '\0' ) d++;
dlen = d - dst;
n = size - dlen;
if( n == 0 ) return( dlen + Q_strlen( s ));
while( *s != '\0' )
{
if( n != 1 )
{
*d++ = *s;
n--;
}
s++;
}
*d = '\0';
return( dlen + ( s - src )); // count does not include NULL
}
#endif #endif
} }