diff --git a/roseus/roseus.cpp b/roseus/roseus.cpp index 22f6d7e91..6cb7669cf 100644 --- a/roseus/roseus.cpp +++ b/roseus/roseus.cpp @@ -1293,8 +1293,12 @@ void EusValueToXmlRpc(register context *ctx, pointer argp, XmlRpc::XmlRpcValue& string skey = string((char *)get_string(ccar(v)->c.sym.pname)); boost::algorithm::to_lower(skey); stringstream << "" << skey << "0"; + } + else if ( isstring(ccar(v)) ) { + string skey = string((char *)get_string(ccar(v))); + stringstream << "" << skey << "0"; }else{ - ROS_ERROR("ROSEUS_SET_PARAM: EusValueToXmlRpc: assuming symbol");prinx(ctx,ccar(v),ERROUT);flushstream(ERROUT);terpri(ERROUT); + ROS_ERROR("ROSEUS_SET_PARAM: EusValueToXmlRpc: invalid param name; requires symbol or string");prinx(ctx,ccar(v),ERROUT);flushstream(ERROUT);terpri(ERROUT); } }else{ ROS_ERROR("ROSEUS_SET_PARAM: EusValueToXmlRpc: assuming alist");prinx(ctx,argp,ERROUT);flushstream(ERROUT);terpri(ERROUT); @@ -1315,6 +1319,12 @@ void EusValueToXmlRpc(register context *ctx, pointer argp, XmlRpc::XmlRpcValue& EusValueToXmlRpc(ctx, ccdr(v), p); rpc_value[skey] = p; } + else if ( isstring(ccar(v)) ) { + string skey = string((char *)get_string(ccar(v))); + XmlRpc::XmlRpcValue p; + EusValueToXmlRpc(ctx, ccdr(v), p); + rpc_value[skey] = p; + } } a=ccdr(a); }