{
var=arg.substr(2);
val="";
+ d_cleared.insert(var);
}
else if(arg[0]=='-')
{
val=val.substr(pos);
if(parmIsset(var)) {
- if (incremental) {
- if (!params[var].empty()) {
- params[var]+=",";
+ if (incremental && !d_cleared.count(var)) {
+ if (params[var].empty()) {
+ throw ArgException("Incremental parameter '"+var+"' without a parent");
}
params[var]+=val;
} else
void ArgvMap::parse(int &argc, char **argv, bool lax)
{
d_cmds.clear();
+ d_cleared.clear();
for(int n=1;n<argc;n++) {
parseOne(argv[n],"",lax);
}
#define ARGUMENTS_HH
#include <map>
+#include <set>
#include <string>
#include <vector>
#include <fstream>
map<string,string> helpmap;
map<string,string> d_typeMap;
vector<string> d_cmds;
+ std::set<string> d_cleared;
};
extern ArgvMap &arg();
done
$RUNWRAPPER $PDNS --daemon=no --local-port=$port --socket-dir=./ \
- --no-shuffle --launch=random --launch+=gmysql --gmysql-dnssec \
+ --no-shuffle --launch --launch+=random --launch+=gmysql --gmysql-dnssec \
--fancy-records --send-root-referral \
--cache-ttl=0 --no-config \
--gmysql-dbname="$GMYSQLDB" \