diff --git a/Common/gmshLocalNetworkClient.cpp b/Common/gmshLocalNetworkClient.cpp index af96039249717dd5ec3c8f249f178d05dad615eb..69c071e79016c539fd21d1c6176662ebce76973b 100644 --- a/Common/gmshLocalNetworkClient.cpp +++ b/Common/gmshLocalNetworkClient.cpp @@ -244,11 +244,39 @@ bool gmshLocalNetworkClient::receiveMessage(gmshLocalNetworkClient *master) } else if(ptype == "number"){ std::vector<onelab::number> par; get(par, name); - if(par.size() == 1) reply = par[0].toChar(); + if(par.empty()){ // try to see if it's not a Gmsh option + std::string::size_type dot = name.find('.'); + if(dot != std::string::npos){ + double val; + if(GmshGetOption(name.substr(0, dot), name.substr(dot + 1), val)){ + par.resize(1); + par[0].setName(name); + par[0].setValue(val); + reply = par[0].toChar(); + } + } + } + else{ + reply = par[0].toChar(); + } } else if(ptype == "string"){ std::vector<onelab::string> par; get(par, name); - if(par.size() == 1) reply = par[0].toChar(); + if(par.empty()){ // try to see if it's not a Gmsh option + std::string::size_type dot = name.find('.'); + if(dot != std::string::npos){ + std::string val; + if(GmshGetOption(name.substr(0, dot), name.substr(dot + 1), val)){ + par.resize(1); + par[0].setName(name); + par[0].setValue(val); + reply = par[0].toChar(); + } + } + } + else{ + reply = par[0].toChar(); + } } else Msg::Error("Unknown ONELAB parameter type in query: %s", ptype.c_str());