projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added exact match record filter
[pazpar2-moved-to-github.git]
/
src
/
session.c
diff --git
a/src/session.c
b/src/session.c
index
4d64e32
..
76364aa
100644
(file)
--- a/
src/session.c
+++ b/
src/session.c
@@
-1125,9
+1125,15
@@
static int check_record_filter(xmlNode *root, struct session_database *sdb)
if (type)
{
size_t len;
if (type)
{
size_t len;
- const char *eq = strchr(s, '~');
- if (eq)
- len = eq - s;
+ int substring;
+ const char *eq;
+
+ if ((eq = strchr(s, '=')))
+ substring = 0;
+ else if ((eq = strchr(s, '~')))
+ substring = 1;
+ if (eq)
+ len = eq - s;
else
len = strlen(s);
if (len == strlen((const char *)type) &&
else
len = strlen(s);
if (len == strlen((const char *)type) &&
@@
-1136,7
+1142,9
@@
static int check_record_filter(xmlNode *root, struct session_database *sdb)
xmlChar *value = xmlNodeGetContent(n);
if (value && *value)
{
xmlChar *value = xmlNodeGetContent(n);
if (value && *value)
{
- if (!eq || strstr((const char *) value, eq+1))
+ if (!eq ||
+ (substring && strstr((const char *) value, eq+1)) ||
+ (!substring && !strcmp((const char *) value, eq + 1)))
match = 1;
}
xmlFree(value);
match = 1;
}
xmlFree(value);