Fixed boolean options in connector/protocol settings
This commit is contained in:
		
							parent
							
								
									200e1e4a1c
								
							
						
					
					
						commit
						28f0f15937
					
				
					 2 changed files with 38 additions and 39 deletions
				
			
		| 
						 | 
				
			
			@ -94,36 +94,31 @@ namespace Controller{
 | 
			
		|||
  static inline void builPipedPart(JSON::Value &p, char *argarr[], int &argnum, const JSON::Value &argset){
 | 
			
		||||
    jsonForEachConst(argset, it){
 | 
			
		||||
      if (it->isMember("option") && p.isMember(it.key())){
 | 
			
		||||
        if (it->isMember("type")){
 | 
			
		||||
          if ((*it)["type"].asStringRef() == "str" && !p[it.key()].isString()){
 | 
			
		||||
            p[it.key()] = p[it.key()].asString();
 | 
			
		||||
        if (!it->isMember("type")){
 | 
			
		||||
          if (JSON::Value(p[it.key()]).asBool()){
 | 
			
		||||
            argarr[argnum++] = (char *)((*it)["option"].c_str());
 | 
			
		||||
          }
 | 
			
		||||
          if ((*it)["type"].asStringRef() == "uint" || (*it)["type"].asStringRef() == "int" ||
 | 
			
		||||
              (*it)["type"].asStringRef() == "debug"){
 | 
			
		||||
            p[it.key()] = JSON::Value(p[it.key()].asInt()).asString();
 | 
			
		||||
          }
 | 
			
		||||
          if ((*it)["type"].asStringRef() == "inputlist" && p[it.key()].isArray()){
 | 
			
		||||
            jsonForEach(p[it.key()], iVal){
 | 
			
		||||
              (*iVal) = iVal->asString();
 | 
			
		||||
              argarr[argnum++] = (char *)((*it)["option"].c_str());
 | 
			
		||||
              argarr[argnum++] = (char *)((*iVal).c_str());
 | 
			
		||||
            }
 | 
			
		||||
            continue;
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
        if ((*it)["type"].asStringRef() == "str" && !p[it.key()].isString()){
 | 
			
		||||
          p[it.key()] = p[it.key()].asString();
 | 
			
		||||
        }
 | 
			
		||||
        if ((*it)["type"].asStringRef() == "uint" || (*it)["type"].asStringRef() == "int" ||
 | 
			
		||||
            (*it)["type"].asStringRef() == "debug"){
 | 
			
		||||
          p[it.key()] = JSON::Value(p[it.key()].asInt()).asString();
 | 
			
		||||
        }
 | 
			
		||||
        if ((*it)["type"].asStringRef() == "inputlist" && p[it.key()].isArray()){
 | 
			
		||||
          jsonForEach(p[it.key()], iVal){
 | 
			
		||||
            (*iVal) = iVal->asString();
 | 
			
		||||
            argarr[argnum++] = (char *)((*it)["option"].c_str());
 | 
			
		||||
            argarr[argnum++] = (char *)((*iVal).c_str());
 | 
			
		||||
          }
 | 
			
		||||
          continue;
 | 
			
		||||
        }
 | 
			
		||||
        if (p[it.key()].asStringRef().size() > 0){
 | 
			
		||||
          argarr[argnum++] = (char *)((*it)["option"].c_str());
 | 
			
		||||
          argarr[argnum++] = (char *)(p[it.key()].c_str());
 | 
			
		||||
        }else{
 | 
			
		||||
          if (it.key() == "debug"){
 | 
			
		||||
            if (Util::printDebugLevel != DEBUG){
 | 
			
		||||
              static std::string debugLvlStr;
 | 
			
		||||
              debugLvlStr = JSON::Value(Util::printDebugLevel).asString();
 | 
			
		||||
              argarr[argnum++] = (char *)((*it)["option"].asStringRef().c_str());
 | 
			
		||||
              argarr[argnum++] = (char *)debugLvlStr.c_str();
 | 
			
		||||
            }
 | 
			
		||||
            continue;
 | 
			
		||||
          }
 | 
			
		||||
          argarr[argnum++] = (char *)((*it)["option"].c_str());
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue