From ce1f5ce4dc607be73dc3a57d4cb2601e7c32b613 Mon Sep 17 00:00:00 2001 From: Matt Jenkins Date: Tue, 29 Apr 2014 13:33:54 +0100 Subject: [PATCH] Improved congigsys option parser Up until now, options have only been able to have one single word (or string with no spaces) as their value. This small patch improves that and includes everything to either the end-of-line or # (for in-line comments) as the parameter for the option. --- 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; }