{
if (key == null)
key = a.getName();
+ String nokey = ArgParser.NEGATESTRING + key;
if (sv != null && sv.has(key) && sv.get(key) != null)
return sv.get(key).toLowerCase(Locale.ROOT).equals("true");
+
+ if (sv != null && sv.has(key) && sv.get(key) != null)
+ return sv.get(key).toLowerCase(Locale.ROOT).equals("true");
+
+ // check for negative boolean (subval "no..." will be "true")
+ if (sv != null && sv.has(nokey) && sv.get(nokey) != null)
+ return !sv.get(nokey).toLowerCase(Locale.ROOT).equals("true");
+
if (avm != null && avm.containsArg(a))
return avm.getBoolean(a);
+
return pref != null ? Cache.getDefault(pref, def) : def;
}