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.
71 lines
1.4 KiB
71 lines
1.4 KiB
5 years ago
|
//========= 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;
|
||
|
|
||
|
|