void pfConsoleContext::AddVar( const char *name, char value ) { pfConsoleCmdParam param; param.SetChar( value ); AddVar( name, param ); }
void pfConsoleContext::AddVar( const char *name, float value ) { pfConsoleCmdParam param; param.SetFloat( value ); AddVar( name, param ); }
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 ); }
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(); } }