From 07b6681eefb7930e734b5fe027af833f7c6abdc4 Mon Sep 17 00:00:00 2001 From: Matt Jenkins Date: Tue, 29 Apr 2014 13:37:09 +0100 Subject: [PATCH] Improve configsys option parsing Up until now all the options in the config system have only been able to take one word (or one string with no spaces) as a parameter. This update improves it so it takes everything after the = up until the end of the line (or the first #) as the parameter. --- tools/configsys/config.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/configsys/config.cpp b/tools/configsys/config.cpp index c089475..c2c4a33 100644 --- a/tools/configsys/config.cpp +++ b/tools/configsys/config.cpp @@ -160,11 +160,19 @@ bool config::load(const char *filename) pos = temp.find("="); if(pos>0) { + stringstream data; string l,r; l = temp.substr(0,pos); uc(l); r = temp.substr(pos+1,temp.size()); - this->instances["GLOBAL"].settings[l] = r; + data << r; + while (in >> temp) { + if (temp[0] == '#') { + break; + } + data << " " << temp; + } + this->instances["GLOBAL"].settings[l] = data.str(); this->instances["GLOBAL"].device="GLOBAL"; this->instances["GLOBAL"].unit=0; }