query-parser: cleanup source string
Ensure there's no non-' ' whitespace, and no trailing/leading spaces.
This commit is contained in:
@ -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::Tokens
|
||||||
Mux::tokenize (const std::string& s)
|
Mux::tokenize (const std::string& s)
|
||||||
{
|
{
|
||||||
Tokens tokens{};
|
Tokens tokens{};
|
||||||
std::string food{s};
|
|
||||||
|
std::string food = cleanup(s);
|
||||||
size_t pos{0};
|
size_t pos{0};
|
||||||
|
|
||||||
if (s.empty())
|
if (s.empty())
|
||||||
|
|||||||
Reference in New Issue
Block a user