summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/configreader.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/configreader.h b/include/configreader.h
index 2a40fd8ef..222195727 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -119,6 +119,32 @@ template<typename T> class ValueContainer : public ValueContainerBase
}
};
+/** This a specific version of ValueContainer to handle character arrays specially
+ */
+template<> class ValueContainer<char **> : public ValueContainerBase
+{
+ /** Contained item */
+ char **val;
+ public:
+ /** Initialize with nothing */
+ ValueContainer() : ValueContainerBase(), val(NULL) { }
+ /** Initialize with a value of type T */
+ ValueContainer(char **Val) : ValueContainerBase(), val(Val) { }
+ /** Initialize with a copy */
+ ValueContainer(const ValueContainer &Val) : ValueContainerBase(), val(Val.val) { }
+ ValueContainer &operator=(const ValueContainer &Val)
+ {
+ val = Val.val;
+ return *this;
+ }
+ /** Change value to type T of size s */
+ void Set(const char *newval, size_t s)
+ {
+ *val = new char[s];
+ strlcpy(*val, newval, s);
+ }
+};
+
/** This a specific version of ValueContainer to handle std::string specially
*/
template<> class ValueContainer<std::string *> : public ValueContainerBase