query-parser: cleanup source string

Ensure there's no non-' ' whitespace, and no trailing/leading spaces.
This commit is contained in:
djcb 2017-10-27 01:19:31 +03:00
parent d20683fd6b
commit 160d3ec036
1 changed files with 19 additions and 1 deletions

View File

@ -113,11 +113,29 @@ eat_token (std::string& food, size_t& pos)
}
static std::string
cleanup (const std::string& dirty)
{
auto clean = dirty;
// only accept spc as whitespace
for (auto f = clean.begin(); f != clean.end(); ++f)
if (*f < ' ')
*f = ' ';
clean.erase (0, clean.find_first_not_of(" "));
clean.erase (clean.find_last_not_of(" ") + 1); // remove trailing space
return clean;
}
Mux::Tokens
Mux::tokenize (const std::string& s)
{
Tokens tokens{};
std::string food{s};
std::string food = cleanup(s);
size_t pos{0};
if (s.empty())