// jvmuserargs can have a trailing equals in the key. This needs to be removed to use
// other parts of the launcher.
TOrderedMap RemoveTrailingEquals(TOrderedMap Map) {
    TOrderedMap result;

    for (TOrderedMap::const_iterator iterator = Map.begin(); iterator != Map.end(); iterator++) {
        TString name = iterator->first;
        TValueIndex value = iterator->second;

        // If the last character of the key is an equals, then remove it. If there is no
        // equals then combine the two as a key.
        TString::iterator i = name.end();
        i--;

        if (*i == '=') {
            name = name.substr(0, name.size() - 1);
        }
        else {
            i = value.value.begin();

            if (*i == '=') {
                value.value = value.value.substr(1, value.value.size() - 1);
            }
            else {
                name = name + value.value;
                value.value = _T("");
            }
        }

        result.insert(TOrderedMap::value_type(name, value));
    }

    return result;
}
Example #2
0
//Return the complete callstack in a continuous string
TString Stackage::GetString()
{
	vector<TCHAR*>::iterator it;
	TString stack;
	TString separator = TEXT(" -> ");

	//Build Stack String
	for(it=vStack.begin(); it!=vStack.end(); ++it)
	{
		stack.append(*it);
		stack.append(separator);
	}

	//Remove last separator
	if(stack.length() >= separator.length())
		stack.erase(stack.end() - separator.length(), stack.end());

	return stack;
}
Example #3
0
    // extract strings out of attribute arguments stored in attribute aggregate.
    // convert to lower case if converToLower is true (for case-insensitive compare convenience)
    bool TAttributeMap::getString(TAttributeType attr, TString& value, int argNum, bool convertToLower) const 
    {
        const TConstUnion* stringConst = getConstUnion(attr, EbtString, argNum);

        if (stringConst == nullptr)
            return false;

        value = *stringConst->getSConst();

        // Convenience.
        if (convertToLower)
            std::transform(value.begin(), value.end(), value.begin(), ::tolower);

        return true;
    };
Example #4
0
 TString Trim(const TString& strInp, TString symbols) {
     size_t startpos = 0;
     size_t endpos = strInp.size();
     bool meatFound = false;
     for (auto iter = strInp.begin(); iter != strInp.end(); ++iter) {
         if (symbols.find_first_of(*iter) != TString::npos) {
             if (!meatFound) {
                 startpos++;
             } else {
                 endpos--;
             }
         } else {
             meatFound = true;
             endpos = strInp.size();
         }
     }
     return strInp.substr(startpos, endpos);
 }