long Universe::getClassPathExt(vector<StdString>& tokens, const StdString& arg) const { #define EXT_TOKENS 2 long result = ERR_SUCCESS; long fpIndex = arg.find_last_of(fileSeparator); long ssepIndex = arg.find(".som"); if (fpIndex == StdString::npos) { //no new path //different from CSOM (see also HandleArguments): //we still want to strip the suffix from the filename, so //we set the start to -1, in order to start the substring //from character 0. npos is -1 too, but this is to make sure fpIndex = -1; //instead of returning here directly, we have to remember that //there is no new class path and return it later result = ERR_FAIL; } else tokens[0] = arg.substr(0, fpIndex); //adding filename (minus ".som" if present) to second slot ssepIndex = ((ssepIndex != StdString::npos) && (ssepIndex > fpIndex)) ? (ssepIndex - 1) : arg.length(); tokens[1] = arg.substr(fpIndex + 1, ssepIndex - (fpIndex)); return result; }