]> arthur.barton.de Git - netatalk.git/commitdiff
Add negation support
authorFrank Lahm <franklahm@googlemail.com>
Thu, 1 Nov 2012 18:52:46 +0000 (19:52 +0100)
committerFrank Lahm <franklahm@googlemail.com>
Thu, 1 Nov 2012 18:52:46 +0000 (19:52 +0100)
etc/afpd/spotlight_rawquery_parser.c
etc/afpd/spotlight_rawquery_parser.y

index e85ada4c88391d8d24edc1686da644ba7c262216..328b6ff7dfc5b92022b74f3901cd3d64baff3b39 100644 (file)
@@ -1874,11 +1874,12 @@ const char *map_expr(const char *attr, char op, const char *val)
                 result = talloc_asprintf(ssp_slq, "?obj %s '%s'", p->ssm_sparql_attr, val);
                 break;
             case ssmt_num:
-                result = talloc_asprintf(ssp_slq, "?obj %s ?%c FILTER(?%c %c '%s')",
+                result = talloc_asprintf(ssp_slq, "?obj %s ?%c FILTER(?%c %c%c '%s')",
                                          p->ssm_sparql_attr,
                                          sparqlvar,
                                          sparqlvar,
                                          op,
+                                         op == '!' ? '=' : ' ', /* append '=' to '!' */
                                          val);
                 sparqlvar++;
                 break;
index ff1031ce8a79aa1eda67b9035f99b59e6867922e..3806987ff9cb6356370695161f50af8f5a3f4c1d 100644 (file)
@@ -181,11 +181,12 @@ const char *map_expr(const char *attr, char op, const char *val)
                 result = talloc_asprintf(ssp_slq, "?obj %s '%s'", p->ssm_sparql_attr, val);
                 break;
             case ssmt_num:
-                result = talloc_asprintf(ssp_slq, "?obj %s ?%c FILTER(?%c %c '%s')",
+                result = talloc_asprintf(ssp_slq, "?obj %s ?%c FILTER(?%c %c%c '%s')",
                                          p->ssm_sparql_attr,
                                          sparqlvar,
                                          sparqlvar,
                                          op,
+                                         op == '!' ? '=' : ' ', /* append '=' to '!' */
                                          val);
                 sparqlvar++;
                 break;