FilterParser: Ignore space after operator
This commit is contained in:
@@ -188,8 +188,15 @@ FilterTree *FilterParser::parseSearchTerm() {
|
|||||||
QString value;
|
QString value;
|
||||||
|
|
||||||
bool in_quotes = false;
|
bool in_quotes = false;
|
||||||
|
bool previous_char_operator = false;
|
||||||
|
|
||||||
for (; iter_ != end_; ++iter_) {
|
for (; iter_ != end_; ++iter_) {
|
||||||
|
if (previous_char_operator) {
|
||||||
|
if (iter_->isSpace()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
previous_char_operator = false;
|
||||||
|
}
|
||||||
if (in_quotes) {
|
if (in_quotes) {
|
||||||
if (*iter_ == u'"') {
|
if (*iter_ == u'"') {
|
||||||
in_quotes = false;
|
in_quotes = false;
|
||||||
@@ -206,6 +213,7 @@ FilterTree *FilterParser::parseSearchTerm() {
|
|||||||
column = buf_.toLower();
|
column = buf_.toLower();
|
||||||
buf_.clear();
|
buf_.clear();
|
||||||
prefix.clear(); // Prefix isn't allowed here - let's ignore it
|
prefix.clear(); // Prefix isn't allowed here - let's ignore it
|
||||||
|
previous_char_operator = true;
|
||||||
}
|
}
|
||||||
else if (iter_->isSpace() || *iter_ == u'(' || *iter_ == u')' || *iter_ == u'-') {
|
else if (iter_->isSpace() || *iter_ == u'(' || *iter_ == u')' || *iter_ == u'-') {
|
||||||
break;
|
break;
|
||||||
@@ -214,9 +222,11 @@ FilterTree *FilterParser::parseSearchTerm() {
|
|||||||
// We don't know whether there is a column part in this search term thus we assume the latter and just try and read a prefix
|
// We don't know whether there is a column part in this search term thus we assume the latter and just try and read a prefix
|
||||||
if (prefix.isEmpty() && (*iter_ == u'>' || *iter_ == u'<' || *iter_ == u'=' || *iter_ == u'!')) {
|
if (prefix.isEmpty() && (*iter_ == u'>' || *iter_ == u'<' || *iter_ == u'=' || *iter_ == u'!')) {
|
||||||
prefix += *iter_;
|
prefix += *iter_;
|
||||||
|
previous_char_operator = true;
|
||||||
}
|
}
|
||||||
else if (prefix != u'=' && *iter_ == u'=') {
|
else if (prefix != u'=' && *iter_ == u'=') {
|
||||||
prefix += *iter_;
|
prefix += *iter_;
|
||||||
|
previous_char_operator = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
buf_ += *iter_;
|
buf_ += *iter_;
|
||||||
|
|||||||
Reference in New Issue
Block a user