From 7ccb0b5c02b1de5dc2e373661b4b2419e4705955 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Sun, 28 Apr 2024 06:18:16 +0300 Subject: [PATCH] public: make simple ctype functions inlined --- public/crtlib.c | 43 ------------------------------------------- public/crtlib.h | 47 +++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 47 deletions(-) diff --git a/public/crtlib.c b/public/crtlib.c index 17ab95fa..1f15cf9b 100644 --- a/public/crtlib.c +++ b/public/crtlib.c @@ -18,7 +18,6 @@ GNU General Public License for more details. #include "const.h" #include #include -#include #include #include "stdio.h" #include "crtlib.h" @@ -38,26 +37,6 @@ void Q_strnlwr( const char *in, char *out, size_t size_out ) *out = '\0'; } -qboolean Q_isdigit( const char *str ) -{ - if( str && *str ) - { - while( isdigit( *str )) str++; - if( !*str ) return true; - } - return false; -} - -qboolean Q_isspace( const char *str ) -{ - if( str && *str ) - { - while( isspace( *str ) ) str++; - if( !*str ) return true; - } - return false; -} - size_t Q_colorstr( const char *string ) { size_t len; @@ -81,28 +60,6 @@ size_t Q_colorstr( const char *string ) return len; } -char Q_toupper( const char in ) -{ - char out; - - if( in >= 'a' && in <= 'z' ) - out = in + 'A' - 'a'; - else out = in; - - return out; -} - -char Q_tolower( const char in ) -{ - char out; - - if( in >= 'A' && in <= 'Z' ) - out = in + 'a' - 'A'; - else out = in; - - return out; -} - size_t Q_strncat( char *dst, const char *src, size_t size ) { register char *d = dst; diff --git a/public/crtlib.h b/public/crtlib.h index e1365b6d..f2477490 100644 --- a/public/crtlib.h +++ b/public/crtlib.h @@ -18,6 +18,7 @@ GNU General Public License for more details. #include #include +#include #include "build.h" #include "xash3d_types.h" @@ -63,11 +64,7 @@ const char *Q_buildbranch( void ); void Q_strnlwr( const char *in, char *out, size_t size_out ); #define Q_strlen( str ) (( str ) ? strlen(( str )) : 0 ) size_t Q_colorstr( const char *string ); -char Q_toupper( const char in ); -char Q_tolower( const char in ); size_t Q_strncat( char *dst, const char *src, size_t siz ); -qboolean Q_isdigit( const char *str ); -qboolean Q_isspace( const char *str ); int Q_atoi( const char *str ); float Q_atof( const char *str ); void Q_atov( float *vec, const char *str, size_t siz ); @@ -103,6 +100,48 @@ char *COM_ParseFileSafe( char *data, char *token, const int size, unsigned int f int matchpattern( const char *in, const char *pattern, qboolean caseinsensitive ); int matchpattern_with_separator( const char *in, const char *pattern, qboolean caseinsensitive, const char *separators, qboolean wildcard_least_one ); +static inline char Q_toupper( const char in ) +{ + char out; + + if( in >= 'a' && in <= 'z' ) + out = in + 'A' - 'a'; + else out = in; + + return out; +} + +static inline char Q_tolower( const char in ) +{ + char out; + + if( in >= 'A' && in <= 'Z' ) + out = in + 'a' - 'A'; + else out = in; + + return out; +} + +static inline qboolean Q_isdigit( const char *str ) +{ + if( likely( str && *str )) + { + while( isdigit( *str )) str++; + if( !*str ) return true; + } + return false; +} + +static inline qboolean Q_isspace( const char *str ) +{ + if( likely( str && *str )) + { + while( isspace( *str ) ) str++; + if( !*str ) return true; + } + return false; +} + // libc implementations static inline int Q_strcmp( const char *s1, const char *s2 ) {