--- a/src/common/rclconfig.cpp
+++ b/src/common/rclconfig.cpp
@@ -492,6 +492,32 @@
}
return hs;
}
+
+/**
+ * @param whole is like "base value ; attr1 = somthing; attr2 = somethelse"
+ * There is no way to escape a semi-colon inside whole
+ */
+bool RclConfig::valueSplitAttributes(const string& whole, string& value,
+ ConfSimple& attrs)
+{
+ string::size_type semicol0 = whole.find_first_of(";");
+ value = whole.substr(0, semicol0);
+ string attrstr;
+ if (semicol0 != string::npos && semicol0 < whole.size() - 1) {
+ attrstr = whole.substr(semicol0+1);
+ }
+
+ // Handle additional attributes. We substitute the semi-colons
+ // with newlines and use a ConfSimple
+ if (!attrstr.empty()) {
+ for (string::size_type i = 0; i < attrstr.size(); i++)
+ if (attrstr[i] == ';')
+ attrstr[i] = '\n';
+ attrs = ConfSimple(attrstr);
+ }
+ return true;
+}
+
string RclConfig::getMissingHelperDesc()
{