- Remove Q_strrchr(), replace with standard, portable strrchr()

- Add strrchr() to bg_lib.c, patch by DevHC
This commit is contained in:
Thilo Schulz 2011-05-15 14:08:03 +00:00
parent 3ddc59a3ba
commit b509d770a7
12 changed files with 27 additions and 29 deletions

View File

@ -104,7 +104,7 @@ void CG_LoadingClient( int clientNum ) {
if ( loadingPlayerIconCount < MAX_LOADING_PLAYER_ICONS ) { if ( loadingPlayerIconCount < MAX_LOADING_PLAYER_ICONS ) {
Q_strncpyz( model, Info_ValueForKey( info, "model" ), sizeof( model ) ); Q_strncpyz( model, Info_ValueForKey( info, "model" ), sizeof( model ) );
skin = Q_strrchr( model, '/' ); skin = strrchr( model, '/' );
if ( skin ) { if ( skin ) {
*skin++ = '\0'; *skin++ = '\0';
} else { } else {

View File

@ -966,7 +966,7 @@ void CL_PlayDemo_f( void ) {
CL_Disconnect( qtrue ); CL_Disconnect( qtrue );
// check for an extension .DEMOEXT_?? (?? is protocol) // check for an extension .DEMOEXT_?? (?? is protocol)
ext_test = Q_strrchr(arg, '.'); ext_test = strrchr(arg, '.');
if(ext_test && !Q_stricmpn(ext_test + 1, DEMOEXT, ARRAY_LEN(DEMOEXT) - 1)) if(ext_test && !Q_stricmpn(ext_test + 1, DEMOEXT, ARRAY_LEN(DEMOEXT) - 1))
{ {

View File

@ -240,6 +240,24 @@ char *strchr( const char *string, int c ) {
return (char *) string; return (char *) string;
} }
char *strrchr(const char *string, int c)
{
const char *found = 0;
while(*string)
{
if(*string == c)
found = string;
string++;
}
if(c)
return (char *) found;
else
return (char *) string;
}
char *strstr( const char *string, const char *strCharSet ) { char *strstr( const char *string, const char *strCharSet ) {
while ( *string ) { while ( *string ) {
int i; int i;

View File

@ -88,6 +88,7 @@ char *strcat( char *strDestination, const char *strSource );
char *strcpy( char *strDestination, const char *strSource ); char *strcpy( char *strDestination, const char *strSource );
int strcmp( const char *string1, const char *string2 ); int strcmp( const char *string1, const char *string2 );
char *strchr( const char *string, int c ); char *strchr( const char *string, int c );
char *strrchr(const char *string, int c);
char *strstr( const char *string, const char *strCharSet ); char *strstr( const char *string, const char *strCharSet );
char *strncpy( char *strDest, const char *strSource, size_t count ); char *strncpy( char *strDest, const char *strSource, size_t count );
int tolower( int c ); int tolower( int c );

View File

@ -213,7 +213,7 @@ static void PlayerIntroSound( const char *modelAndSkin ) {
char *skin; char *skin;
Q_strncpyz( model, modelAndSkin, sizeof(model) ); Q_strncpyz( model, modelAndSkin, sizeof(model) );
skin = Q_strrchr( model, '/' ); skin = strrchr( model, '/' );
if ( skin ) { if ( skin ) {
*skin++ = '\0'; *skin++ = '\0';
} }

View File

@ -626,7 +626,7 @@ Forces a client's skin (for teamplay)
static void ForceClientSkin( gclient_t *client, char *model, const char *skin ) { static void ForceClientSkin( gclient_t *client, char *model, const char *skin ) {
char *p; char *p;
if ((p = Q_strrchr(model, '/')) != 0) { if ((p = strrchr(model, '/')) != 0) {
*p = 0; *p = 0;
} }

View File

@ -130,7 +130,7 @@ static void PlayerIcon( const char *modelAndSkin, char *iconName, int iconNameMa
char model[MAX_QPATH]; char model[MAX_QPATH];
Q_strncpyz( model, modelAndSkin, sizeof(model)); Q_strncpyz( model, modelAndSkin, sizeof(model));
skin = Q_strrchr( model, '/' ); skin = strrchr( model, '/' );
if ( skin ) { if ( skin ) {
*skin++ = '\0'; *skin++ = '\0';
} }

View File

@ -1617,7 +1617,7 @@ static void ServerPlayerIcon( const char *modelAndSkin, char *iconName, int icon
char model[MAX_QPATH]; char model[MAX_QPATH];
Q_strncpyz( model, modelAndSkin, sizeof(model)); Q_strncpyz( model, modelAndSkin, sizeof(model));
skin = Q_strrchr( model, '/' ); skin = strrchr( model, '/' );
if ( skin ) { if ( skin ) {
*skin++ = '\0'; *skin++ = '\0';
} }

View File

@ -1022,7 +1022,7 @@ qboolean FS_IsDemoExt(const char *filename, int namelen)
char *ext_test; char *ext_test;
int index, protocol; int index, protocol;
ext_test = Q_strrchr(filename, '.'); ext_test = strrchr(filename, '.');
if(ext_test && !Q_stricmpn(ext_test + 1, DEMOEXT, ARRAY_LEN(DEMOEXT) - 1)) if(ext_test && !Q_stricmpn(ext_test + 1, DEMOEXT, ARRAY_LEN(DEMOEXT) - 1))
{ {
protocol = atoi(ext_test + ARRAY_LEN(DEMOEXT)); protocol = atoi(ext_test + ARRAY_LEN(DEMOEXT));

View File

@ -683,26 +683,6 @@ int Q_isalpha( int c )
return ( 0 ); return ( 0 );
} }
char* Q_strrchr( const char* string, int c )
{
char cc = c;
char *s;
char *sp=(char *)0;
s = (char*)string;
while (*s)
{
if (*s == cc)
sp = s;
s++;
}
if (cc == 0)
sp = s;
return sp;
}
qboolean Q_isanumber( const char *s ) qboolean Q_isanumber( const char *s )
{ {
char *p; char *p;

View File

@ -734,7 +734,6 @@ int Q_strncmp (const char *s1, const char *s2, int n);
int Q_stricmpn (const char *s1, const char *s2, int n); int Q_stricmpn (const char *s1, const char *s2, int n);
char *Q_strlwr( char *s1 ); char *Q_strlwr( char *s1 );
char *Q_strupr( char *s1 ); char *Q_strupr( char *s1 );
char *Q_strrchr( const char* string, int c );
const char *Q_stristr( const char *s, const char *find); const char *Q_stristr( const char *s, const char *find);
// buffer size safe library replacements // buffer size safe library replacements

View File

@ -864,7 +864,7 @@ void SV_WriteDownloadToClient( client_t *cl , msg_t *msg )
// Chop off filename extension. // Chop off filename extension.
Com_sprintf(pakbuf, sizeof(pakbuf), "%s", cl->downloadName); Com_sprintf(pakbuf, sizeof(pakbuf), "%s", cl->downloadName);
pakptr = Q_strrchr(pakbuf, '.'); pakptr = strrchr(pakbuf, '.');
if(pakptr) if(pakptr)
{ {