/** * If szStripPrefix is not NULL, only options, whose names start with the prefix * are processed. The prefix is then stripped from the names. * If szStripPrefix is NULL, all options are processed; without stripping. */ void ScriptController::PrepareEnvOptions(const char* szStripPrefix) { int iPrefixLen = szStripPrefix ? strlen(szStripPrefix) : 0; Options::OptEntries* pOptEntries = g_pOptions->LockOptEntries(); for (Options::OptEntries::iterator it = pOptEntries->begin(); it != pOptEntries->end(); it++) { Options::OptEntry* pOptEntry = *it; if (szStripPrefix && !strncmp(pOptEntry->GetName(), szStripPrefix, iPrefixLen) && (int)strlen(pOptEntry->GetName()) > iPrefixLen) { SetEnvVarSpecial("NZBPO", pOptEntry->GetName() + iPrefixLen, pOptEntry->GetValue()); } else if (!szStripPrefix) { SetEnvVarSpecial("NZBOP", pOptEntry->GetName(), pOptEntry->GetValue()); } } g_pOptions->UnlockOptEntries(); }
const char* CommandScriptController::GetOptValue(const char* name, const char* value) { Options::OptEntry* entry = m_modifiedOptions->FindOption(name); return entry ? entry->GetValue() : value; }