--- a/src/query/wasastringtoquery.cpp
+++ b/src/query/wasastringtoquery.cpp
@@ -64,10 +64,11 @@
desc += "NULL";
break;
case OP_LEAF:
+ if (m_exclude)
+ desc += "NOT (";
desc += fieldspec + m_value;
- break;
- case OP_EXCL:
- desc += string("NOT (" ) + fieldspec + m_value + ") ";
+ if (m_exclude)
+ desc += ")";
break;
case OP_OR:
case OP_AND:
@@ -429,11 +430,12 @@
}
}
+ nclause->m_op = WasaQuery::OP_LEAF;
// +- indicator ?
if (checkSubMatch(SMI_PM, match, reason) && match[0] == '-') {
- nclause->m_op = WasaQuery::OP_EXCL;
+ nclause->m_exclude = true;
} else {
- nclause->m_op = WasaQuery::OP_LEAF;
+ nclause->m_exclude = false;
}
if (prev_or) {