diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-17 00:35:05 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-12-17 00:35:05 +0000 |
commit | ebb892cdfd85ad40f5fa130c43bda0ed55a98c56 (patch) | |
tree | f433fc0df29441213945a1124c7cb46438d52bd2 | |
parent | 4799d8d066114204c5aa8483dace93ccb00850e1 (diff) |
If the caller said no linefeeds, dont bail, instead just turn the linefeeds into spaces, so that
"aaaa
bbbb"
becomes "aaaa bbbb".
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6022 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/configreader.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp index 682dbeb38..144c0f0a8 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -1300,18 +1300,21 @@ bool ServerConfig::ConfValue(ConfigDataHash &target, const std::string &tag, con ConfigDataHash::size_type pos = index; if((pos >= 0) && (pos < target.count(tag))) { - ConfigDataHash::const_iterator iter = target.find(tag); + ConfigDataHash::iterator iter = target.find(tag); for(int i = 0; i < index; i++) iter++; - for(KeyValList::const_iterator j = iter->second.begin(); j != iter->second.end(); j++) + for(KeyValList::iterator j = iter->second.begin(); j != iter->second.end(); j++) { if(j->first == var) { if ((!allow_linefeeds) && (j->second.find('\n') != std::string::npos)) { - throw CoreException("Value of <" + tag + ":" + var+ "> contains a linefeed, and linefeeds in this value are not permitted"); + ServerInstance->Log(DEFAULT, "Value of <" + tag + ":" + var+ "> contains a linefeed, and linefeeds in this value are not permitted -- stripped to spaces."); + for (std::string::iterator n = j->second.begin(); n != j->second.end(); n++) + if (*n == '\n') + *n == ' '; } else { |