From 9485b925ff0b5e07db4e72e8b31806a0fae8241d Mon Sep 17 00:00:00 2001 From: Garux Date: Fri, 24 Jan 2020 02:47:33 +0300 Subject: [PATCH] add common string functions --- tools/quake3/common/cmdlib.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tools/quake3/common/cmdlib.h b/tools/quake3/common/cmdlib.h index c26ffaaf..bbf2f808 100644 --- a/tools/quake3/common/cmdlib.h +++ b/tools/quake3/common/cmdlib.h @@ -77,6 +77,9 @@ void *safe_calloc_info( size_t size, const char* info ); static inline bool strEmpty( const char* string ){ return *string == '\0'; } +static inline bool strEmptyOrNull( const char* string ){ + return string == NULL || *string == '\0'; +} static inline void strClear( char* string ){ *string = '\0'; } @@ -97,6 +100,35 @@ char* strIstr( const char* haystack, const char* needle ); #define Q_stricmp strcasecmp #define Q_strncasecmp strncasecmp #endif +static inline bool strEqual( const char* string, const char* other ){ + return strcmp( string, other ) == 0; +} +static inline bool strnEqual( const char* string, const char* other, size_t n ){ + return strncmp( string, other, n ) == 0; +} +static inline bool striEqual( const char* string, const char* other ){ + return Q_stricmp( string, other ) == 0; +} +static inline bool strniEqual( const char* string, const char* other, size_t n ){ + return Q_strncasecmp( string, other, n ) == 0; +} + +static inline bool strEqualPrefix( const char* string, const char* prefix ){ + return strnEqual( string, prefix, strlen( prefix ) ); +} +static inline bool striEqualPrefix( const char* string, const char* prefix ){ + return strniEqual( string, prefix, strlen( prefix ) ); +} +static inline bool strEqualSuffix( const char* string, const char* suffix ){ + const size_t stringLength = strlen( string ); + const size_t suffixLength = strlen( suffix ); + return ( suffixLength > stringLength )? false : strnEqual( string + stringLength - suffixLength, suffix, suffixLength ); +} +static inline bool striEqualSuffix( const char* string, const char* suffix ){ + const size_t stringLength = strlen( string ); + const size_t suffixLength = strlen( suffix ); + return ( suffixLength > stringLength )? false : strniEqual( string + stringLength - suffixLength, suffix, suffixLength ); +} /* strlcpy, strlcat versions */ size_t strcpyQ( char* dest, const char* src, const size_t dest_size ); size_t strcatQ( char* dest, const char* src, const size_t dest_size );