From 5e556901abce4b6f2d881f61ead4c95499ac5731 Mon Sep 17 00:00:00 2001 From: Frank Lahm Date: Fri, 2 Nov 2012 04:22:19 +0100 Subject: [PATCH] fixes --- etc/afpd/spotlight_SPARQL_map.c | 9 ++++++--- etc/afpd/spotlight_rawquery_parser.c | 2 +- etc/afpd/spotlight_rawquery_parser.y | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/etc/afpd/spotlight_SPARQL_map.c b/etc/afpd/spotlight_SPARQL_map.c index 471634b7..39ef39e0 100644 --- a/etc/afpd/spotlight_SPARQL_map.c +++ b/etc/afpd/spotlight_SPARQL_map.c @@ -20,12 +20,15 @@ #include "spotlight_SPARQL_map.h" +#define NOTSUPPORTED NULL +#define SPECIAL NULL + struct spotlight_sparql_map spotlight_sparql_map[] = { /* ssm_spotlight_attr ssm_type, ssm_sparql_attr */ {"*", ssmt_fts, "fts:match"}, /* Filesystem metadata */ - {"kMDItemFSLabel", ssmt_num, ""}, + {"kMDItemFSLabel", ssmt_num, NOTSUPPORTED}, {"kMDItemDisplayName", ssmt_str, "nfo:fileName"}, {"kMDItemFSName", ssmt_str, "nfo:fileName"}, {"kMDItemFSContentChangeDate", ssmt_date, "nfo:fileLastModified"}, @@ -42,8 +45,8 @@ struct spotlight_sparql_map spotlight_sparql_map[] = { {"kMDItemDurationSeconds", ssmt_num, "nfo:duration"}, {"kMDItemNumberOfPages", ssmt_num, "nfo:pageCount"}, {"kMDItemTitle", ssmt_str, "nie:title"}, - {"_kMDItemGroupId", ssmt_type, NULL}, - {"kMDItemContentTypeTree", ssmt_type, NULL}, + {"_kMDItemGroupId", ssmt_type, SPECIAL}, + {"kMDItemContentTypeTree", ssmt_type, SPECIAL}, /* Image metadata */ {"kMDItemPixelWidth", ssmt_num, "nfo:width"}, diff --git a/etc/afpd/spotlight_rawquery_parser.c b/etc/afpd/spotlight_rawquery_parser.c index 3ea47442..0a28f9a7 100644 --- a/etc/afpd/spotlight_rawquery_parser.c +++ b/etc/afpd/spotlight_rawquery_parser.c @@ -1932,7 +1932,7 @@ const char *map_expr(const char *attr, char op, const char *val) bstring q = NULL, search = NULL, replace = NULL; for (p = spotlight_sparql_map; p->ssm_spotlight_attr; p++) { - if (strcmp(p->ssm_spotlight_attr, attr) == 0) { + if (p->ssm_sparql_attr && strcmp(p->ssm_spotlight_attr, attr) == 0) { switch (p->ssm_type) { case ssmt_bool: result = talloc_asprintf(ssp_slq, "?obj %s '%s'", p->ssm_sparql_attr, val); diff --git a/etc/afpd/spotlight_rawquery_parser.y b/etc/afpd/spotlight_rawquery_parser.y index 60dc94b4..e159d1f4 100644 --- a/etc/afpd/spotlight_rawquery_parser.y +++ b/etc/afpd/spotlight_rawquery_parser.y @@ -206,7 +206,7 @@ const char *map_expr(const char *attr, char op, const char *val) bstring q = NULL, search = NULL, replace = NULL; for (p = spotlight_sparql_map; p->ssm_spotlight_attr; p++) { - if (strcmp(p->ssm_spotlight_attr, attr) == 0) { + if (p->ssm_sparql_attr && strcmp(p->ssm_spotlight_attr, attr) == 0) { switch (p->ssm_type) { case ssmt_bool: result = talloc_asprintf(ssp_slq, "?obj %s '%s'", p->ssm_sparql_attr, val); -- 2.39.2