aboutsummaryrefslogtreecommitdiffstats
path: root/common/core
diff options
context:
space:
mode:
Diffstat (limited to 'common/core')
-rw-r--r--common/core/Configuration.cxx4
-rw-r--r--common/core/Configuration.h2
-rw-r--r--common/core/string.cxx3
3 files changed, 9 insertions, 0 deletions
diff --git a/common/core/Configuration.cxx b/common/core/Configuration.cxx
index 129d1b9e..e6affb06 100644
--- a/common/core/Configuration.cxx
+++ b/common/core/Configuration.cxx
@@ -570,6 +570,10 @@ bool ListParameter<ValueType>::setParam(const char* v)
entry.erase(0, entry.find_first_not_of(" \f\n\r\t\v"));
entry.erase(entry.find_last_not_of(" \f\n\r\t\v")+1);
+ // Special case, entire v was just whitespace
+ if (entry.empty() && (entries.size() == 1))
+ break;
+
if (!decodeEntry(entry.c_str(), &e)) {
vlog.error("List parameter %s: Invalid value '%s'",
getName(), entry.c_str());
diff --git a/common/core/Configuration.h b/common/core/Configuration.h
index 57bc48e1..431dd0c5 100644
--- a/common/core/Configuration.h
+++ b/common/core/Configuration.h
@@ -86,6 +86,8 @@ namespace core {
std::list<VoidParameter*>::iterator begin() { return params.begin(); }
std::list<VoidParameter*>::iterator end() { return params.end(); }
+ // - Returns the number of parameters
+ int size() { return params.size(); }
// - Get the Global Configuration object
// NB: This call does NOT lock the Configuration system.
diff --git a/common/core/string.cxx b/common/core/string.cxx
index 49501a9f..091836db 100644
--- a/common/core/string.cxx
+++ b/common/core/string.cxx
@@ -64,6 +64,9 @@ namespace core {
std::vector<std::string> out;
const char *start, *stop;
+ if (src[0] == '\0')
+ return out;
+
start = src;
do {
stop = strchr(start, delimiter);