bool AssignableStringVarToken::Assign(const char* str) { StringVar* strVar = g_StringMap.Get(value.arrID); if (strVar) { UInt32 len = strVar->GetLength(); if (lower <= upper && upper < len) { strVar->Erase(lower, upper-lower + 1); if (str) { strVar->Insert(str, lower); substring = strVar->String(); } return true; } } return false; }
bool Cmd_sv_Erase_Execute(COMMAND_ARGS) { *result = 0; UInt32 strID = 0; UInt32 startPos = 0; UInt32 howMany = -1; if (!ExtractArgs(EXTRACT_ARGS, &strID, &startPos, &howMany)) return true; StringVar* strVar = g_StringMap.Get(strID); if (strVar) { if (howMany == -1) howMany = strVar->GetLength() - startPos; strVar->Erase(startPos, howMany); } return true; }