Exemplo n.º 1
0
void    pfConsoleContext::AddVar( const char *name, char value )
{
    pfConsoleCmdParam   param;
    param.SetChar( value );
    AddVar( name, param );
}
Exemplo n.º 2
0
void    pfConsoleContext::AddVar( const char *name, float value )
{
    pfConsoleCmdParam   param;
    param.SetFloat( value );
    AddVar( name, param );
}
Exemplo n.º 3
0
void    pfConsoleContext::AddVar( const char *name, const char *value )
{
    pfConsoleCmdParam   param;
    param.SetString( (char *)value );   // It's ok, we'll be copying it soon 'nuf
    AddVar( name, param );
}
Exemplo n.º 4
0
void CommandLineData::Set(const wchar_t* cmdLine)
{
	String cmd = cmdLine;
	
	// Check length
	if(!cmd.GetLength())
		return;

	// Trim spaces
	cmd.TrimAll();

	// Check if entire string was just spaces
	if(!cmd.GetLength())
		return;

	// Quote monitoring
	bool quote = true;

	// Check for unmached quotes
	for(unsigned long i = 0; i < cmd.GetLength(); ++i)
	{
		if(cmd[i] == L'"')
			quote = !quote;
	}

	// Check if ok
	if(!quote)
		return;

	// Clear old vars
	Clear();

	quote = false;

	String varName;
	String varValue;

	bool value = false;

	// Split the string
	while(cmd.GetLength())
	{
		if(cmd[0] == L'"')
		{
			quote = !quote;

			cmd.Erase(0);
		}
		else if(cmd[0] == L'=' && !value)
		{
			value = true;

			cmd.Erase(0);
		}
		else if(iswspace(cmd[0]))
		{
			if(quote)
			{
				if(value)
					varValue += cmd[0];
				else
					varName += cmd[0];
			}
			else if(cmd.GetLength())
			{
				// Add var
				value = false;

				AddVar(varName,varValue);

				varName.Erase();
				varValue.Erase();
			}

			cmd.Erase(0);
		}
		else
		{
			if(value)
				varValue += cmd[0];
			else
				varName += cmd[0];

			cmd.Erase(0);
		}
	}

	if(varName.GetLength())
	{
		// Add var
		value = false;

		AddVar(varName,varValue);

		varName.Erase();
		varValue.Erase();
	}
}