void censorArgsVector(std::vector<std::string>* args) { for (size_t i = 0; i < args->size(); ++i) { std::string& arg = args->at(i); const std::string::iterator endSwitch = std::find(arg.begin(), arg.end(), '='); std::string switchName(arg.begin(), endSwitch); if (_isPasswordSwitch(switchName.c_str())) { if (endSwitch == arg.end()) { if (i + 1 < args->size()) { args->at(i + 1) = "<password>"; } } else { arg = switchName + "=<password>"; } } } }
void censorArgsVector(std::vector<std::string>* args) { invariant(gGatherOptionsDone); for (size_t i = 0; i < args->size(); ++i) { std::string& arg = args->at(i); const std::string::iterator endSwitch = std::find(arg.begin(), arg.end(), '='); std::string switchName(arg.begin(), endSwitch); if (_isPasswordSwitch(switchName)) { if (endSwitch == arg.end()) { if (i + 1 < args->size()) { args->at(i + 1) = "<password>"; } } else { arg = switchName + "=<password>"; } } else if ((switchName.size() > 2) && _isPasswordSwitch(switchName.substr(0, 2))) { // e.g. "-ppassword" arg = switchName.substr(0, 2) + "<password>"; } } }
String JSBNameVisitor::operator()(const Name *name) { String previousName = switchName(); accept(name); return switchName(previousName); }