projects
/
simpleserver-moved-to-github.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
b0ff44d
)
EXTRA_ARGS passed to search+scan
author
Adam Dickmeiss
<adam@indexdata.dk>
Tue, 12 Feb 2013 11:23:05 +0000
(12:23 +0100)
committer
Adam Dickmeiss
<adam@indexdata.dk>
Tue, 12 Feb 2013 11:23:05 +0000
(12:23 +0100)
SimpleServer.xs
patch
|
blob
|
history
diff --git
a/SimpleServer.xs
b/SimpleServer.xs
index
f7bff31
..
8b03c55
100644
(file)
--- a/
SimpleServer.xs
+++ b/
SimpleServer.xs
@@
-885,6
+885,18
@@
static void f_SV_to_FacetList(SV *sv, Z_OtherInformation **oip, ODR odr)
}
}
}
}
+static HV *parse_extra_args(Z_SRW_extra_arg *args)
+{
+ HV *href = newHV();
+
+ for (; args; args = args->next)
+ {
+ hv_store(href, args->name, strlen(args->name),
+ newSVpv(args->value, 0), 0);
+ }
+ return href;
+}
+
int bend_search(void *handle, bend_search_rr *rr)
{
HV *href;
int bend_search(void *handle, bend_search_rr *rr)
{
HV *href;
@@
-918,6
+930,7
@@
int bend_search(void *handle, bend_search_rr *rr)
}
#endif
href = newHV();
}
#endif
href = newHV();
+
hv_store(href, "SETNAME", 7, newSVpv(rr->setname, 0), 0);
if (rr->srw_sortKeys && *rr->srw_sortKeys)
hv_store(href, "SRW_SORTKEYS", 12, newSVpv(rr->srw_sortKeys, 0), 0);
hv_store(href, "SETNAME", 7, newSVpv(rr->setname, 0), 0);
if (rr->srw_sortKeys && *rr->srw_sortKeys)
hv_store(href, "SRW_SORTKEYS", 12, newSVpv(rr->srw_sortKeys, 0), 0);
@@
-930,6
+943,8
@@
int bend_search(void *handle, bend_search_rr *rr)
hv_store(href, "HANDLE", 6, zhandle->handle, 0);
hv_store(href, "PID", 3, newSViv(getpid()), 0);
hv_store(href, "PRESENT_NUMBER", 14, newSViv(rr->present_number), 0);
hv_store(href, "HANDLE", 6, zhandle->handle, 0);
hv_store(href, "PID", 3, newSViv(getpid()), 0);
hv_store(href, "PRESENT_NUMBER", 14, newSViv(rr->present_number), 0);
+ hv_store(href, "EXTRA_ARGS", 10,
+ newRV( (SV*) parse_extra_args(rr->extra_args)), 0);
if ((rpnSV = zquery2perl(rr->query)) != 0) {
hv_store(href, "RPN", 3, rpnSV, 0);
}
if ((rpnSV = zquery2perl(rr->query)) != 0) {
hv_store(href, "RPN", 3, rpnSV, 0);
}
@@
-1459,6
+1474,8
@@
int bend_scan(void *handle, bend_scan_rr *rr)
hv_store(href, "HANDLE", 6, zhandle->handle, 0);
hv_store(href, "STATUS", 6, newSViv(BEND_SCAN_SUCCESS), 0);
hv_store(href, "ENTRIES", 7, newRV((SV *) list), 0);
hv_store(href, "HANDLE", 6, zhandle->handle, 0);
hv_store(href, "STATUS", 6, newSViv(BEND_SCAN_SUCCESS), 0);
hv_store(href, "ENTRIES", 7, newRV((SV *) list), 0);
+ hv_store(href, "EXTRA_ARGS", 10,
+ newRV( (SV*) parse_extra_args(rr->extra_args)), 0);
aref = newAV();
basenames = rr->basenames;
for (i = 0; i < rr->num_bases; i++)
aref = newAV();
basenames = rr->basenames;
for (i = 0; i < rr->num_bases; i++)