Initial commit.
This commit is contained in:
105
code/ff/ff_utils.cpp
Normal file
105
code/ff/ff_utils.cpp
Normal file
@@ -0,0 +1,105 @@
|
||||
#include "common_headers.h"
|
||||
|
||||
#ifdef _IMMERSION
|
||||
|
||||
//#include "ff_utils.h"
|
||||
|
||||
extern cvar_t *ff_developer;
|
||||
|
||||
//
|
||||
// Didn't know about strrchr. This is slightly different anyway.
|
||||
//
|
||||
int _rcpos( const char* string, char c, int pos )
|
||||
{
|
||||
int length = strlen( string );
|
||||
length = ( pos >= 0 && pos < length ? pos : length );
|
||||
for ( int i = length - 1; i >= 0; i-- )
|
||||
if ( string[i] == c )
|
||||
return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void* LoadFile( const char *filename )
|
||||
{
|
||||
void *buffer;
|
||||
|
||||
int length = FS_ReadFile( filename, &buffer );
|
||||
|
||||
return length != -1 ? buffer : NULL;
|
||||
}
|
||||
|
||||
const char *UncommonDirectory( const char *target, const char *comp )
|
||||
{
|
||||
const char *pos = target;
|
||||
|
||||
for
|
||||
( int i = 0
|
||||
; target[ i ] && comp[ i ] && target[ i ] == comp[ i ]
|
||||
; i++
|
||||
){
|
||||
if ( target[ i ] == '/' )
|
||||
pos = target + i + 1;
|
||||
}
|
||||
|
||||
if ( !comp[ i ] && target[ i ] == '/' )
|
||||
pos = target + i + 1;
|
||||
else
|
||||
if ( !target[ i ] && comp[ i ] == '/' )
|
||||
pos = target + i;
|
||||
|
||||
return pos;
|
||||
}
|
||||
|
||||
////-------
|
||||
/// RightOf
|
||||
//-----------
|
||||
//
|
||||
//
|
||||
// Parameters:
|
||||
//
|
||||
// Returns:
|
||||
//
|
||||
const char* RightOf( const char *str, const char *str2 )
|
||||
{
|
||||
if ( !str || !str2 )
|
||||
return NULL;
|
||||
|
||||
const char *s = str;
|
||||
int len1 = strlen( str );
|
||||
int len2 = strlen( str2 );
|
||||
|
||||
if ( (len2)
|
||||
&& (len1 >= len2)
|
||||
){
|
||||
s = strstr( str, str2 );
|
||||
if ( s )
|
||||
{
|
||||
if ( ((s == str) && (*(s + len2) == '/'))
|
||||
|| ((*(s - 1) == '/') && (*(s + len2) == '/'))
|
||||
){
|
||||
s += len2 + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return s ? s : str;
|
||||
}
|
||||
|
||||
#ifdef FF_PRINT
|
||||
|
||||
void ConsoleParseError( const char *message, const char *line, int pos /*=0*/)
|
||||
{
|
||||
if ( ff_developer && ff_developer->integer )
|
||||
{
|
||||
Com_Printf( "Parse error: %s\n%s\n%*c\n", message, line, pos + 1, '^' );
|
||||
}
|
||||
}
|
||||
|
||||
qboolean FS_VerifyName( const char *src, const char *name, char *out, int maxlen )
|
||||
{
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
#endif // FF_PRINT
|
||||
|
||||
#endif // _IMMERSION
|
||||
Reference in New Issue
Block a user