You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.4 KiB
70 lines
1.4 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//============================================================================= |
|
|
|
#include "util.h" |
|
#include <string.h> |
|
|
|
#define NUM_BUFFERS 4 |
|
#define MAX_INFO_TOKEN_LENGTH 512 |
|
const char *CUtil::InfoGetValue( const char *s, const char *key ) |
|
{ |
|
char pkey[MAX_INFO_TOKEN_LENGTH]; |
|
// Use multiple buffers so compares |
|
// work without stomping on each other |
|
static char value[NUM_BUFFERS][MAX_INFO_TOKEN_LENGTH]; |
|
static int valueindex; |
|
char *o; |
|
|
|
valueindex = (valueindex + 1) % NUM_BUFFERS; |
|
|
|
if (*s == '\\') |
|
s++; |
|
while (1) |
|
{ |
|
o = pkey; |
|
while (*s != '\\') |
|
{ |
|
if (!*s) |
|
return ""; |
|
*o++ = *s++; |
|
} |
|
*o = 0; |
|
s++; |
|
|
|
o = value[valueindex]; |
|
|
|
while (*s != '\\' && *s) |
|
{ |
|
if (!*s) |
|
return ""; |
|
*o++ = *s++; |
|
} |
|
*o = 0; |
|
|
|
if (!strcmp (key, pkey) ) |
|
return value[valueindex]; |
|
|
|
if (!*s) |
|
return ""; |
|
s++; |
|
} |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: This function is supposed to localise the strings, but for now just return internal value |
|
// Input : *stringName - |
|
// Output : const char |
|
//----------------------------------------------------------------------------- |
|
const char *CUtil::GetString(const char *stringName) |
|
{ |
|
return stringName; |
|
} |
|
|
|
static CUtil g_Util; |
|
CUtil *util = &g_Util; |
|
|
|
|
|
|