//========= 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;