diff --git a/src/user/user_objects.cc b/src/user/user_objects.cc index 35659e3e..8796910d 100644 --- a/src/user/user_objects.cc +++ b/src/user/user_objects.cc @@ -5031,8 +5031,12 @@ void mjCEquality::PointToLocal() { void mjCEquality::NameSpace(const mjCModel* m) { mjCBase::NameSpace(m); - spec_name1_ = m->prefix + spec_name1_ + m->suffix; - spec_name2_ = m->prefix + spec_name2_ + m->suffix; + if (!spec_name1_.empty()) { + spec_name1_ = m->prefix + spec_name1_ + m->suffix; + } + if (!spec_name2_.empty()) { + spec_name2_ = m->prefix + spec_name2_ + m->suffix; + } } @@ -5526,7 +5530,9 @@ void mjCWrap::PointToLocal() { void mjCWrap::NameSpace(const mjCModel* m) { name = m->prefix + name + m->suffix; - sidesite = m->prefix + sidesite + m->suffix; + if (!sidesite.empty()) { + sidesite = m->prefix + sidesite + m->suffix; + } } @@ -5724,9 +5730,15 @@ void mjCActuator::NameSpace(const mjCModel* m) { if (!plugin_instance_name.empty()) { plugin_instance_name = m->prefix + plugin_instance_name + m->suffix; } - spec_target_ = m->prefix + spec_target_ + m->suffix; - spec_refsite_ = m->prefix + spec_refsite_ + m->suffix; - spec_slidersite_ = m->prefix + spec_slidersite_ + m->suffix; + if (!spec_target_.empty()) { + spec_target_ = m->prefix + spec_target_ + m->suffix; + } + if (!spec_refsite_.empty()) { + spec_refsite_ = m->prefix + spec_refsite_ + m->suffix; + } + if (!spec_slidersite_.empty()) { + spec_slidersite_ = m->prefix + spec_slidersite_ + m->suffix; + } } diff --git a/test/user/user_api_test.cc b/test/user/user_api_test.cc index e376d046..9646923d 100644 --- a/test/user/user_api_test.cc +++ b/test/user/user_api_test.cc @@ -731,6 +731,7 @@ static constexpr char xml_child[] = R"( + @@ -757,6 +758,7 @@ static constexpr char xml_child[] = R"( + @@ -764,8 +766,8 @@ static constexpr char xml_child[] = R"( - - + + )"; @@ -796,6 +798,7 @@ TEST_F(MujocoTest, AttachSame) { + @@ -808,6 +811,7 @@ TEST_F(MujocoTest, AttachSame) { + @@ -832,8 +836,10 @@ TEST_F(MujocoTest, AttachSame) { + + @@ -842,10 +848,10 @@ TEST_F(MujocoTest, AttachSame) { - - - - + + + + )"; @@ -946,6 +952,7 @@ TEST_F(MujocoTest, AttachDifferent) { + @@ -966,6 +973,7 @@ TEST_F(MujocoTest, AttachDifferent) { + @@ -974,8 +982,8 @@ TEST_F(MujocoTest, AttachDifferent) { - - + + )"; @@ -1079,6 +1087,7 @@ TEST_F(MujocoTest, AttachFrame) { + @@ -1100,6 +1109,7 @@ TEST_F(MujocoTest, AttachFrame) { + @@ -1108,8 +1118,8 @@ TEST_F(MujocoTest, AttachFrame) { - - + + )";