X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-sru.c;h=08a18a2433e5ab5bfab0bd9b24dbe95e6dd2118d;hp=f9baf44d6e00722a0cea7366c146867f09fdf981;hb=8fba4cf2cac1cc543aa4c1063c78b449ebac44a7;hpb=4aaca71aaade2a94eab1806a11967d672e7c90dd diff --git a/src/zoom-sru.c b/src/zoom-sru.c index f9baf44..08a18a2 100644 --- a/src/zoom-sru.c +++ b/src/zoom-sru.c @@ -101,14 +101,14 @@ zoom_ret ZOOM_connection_srw_send_scan(ZOOM_connection c) { sr->u.scan_request->query_type = Z_SRW_query_type_cql; sr->u.scan_request->scanClause.cql = - ZOOM_query_get_query_string(scan->query); + odr_strdup(c->odr_out, ZOOM_query_get_query_string(scan->query)); } else if (z_query->which == Z_Query_type_1 || z_query->which == Z_Query_type_101) { sr->u.scan_request->query_type = Z_SRW_query_type_pqf; sr->u.scan_request->scanClause.pqf = - ZOOM_query_get_query_string(scan->query); + odr_strdup(c->odr_out, ZOOM_query_get_query_string(scan->query)); } else { @@ -209,13 +209,21 @@ zoom_ret ZOOM_connection_srw_send_search(ZOOM_connection c) { sr->u.request->query_type = Z_SRW_query_type_pqf; sr->u.request->query.pqf = - ZOOM_query_get_query_string(resultset->query); + odr_strdup(c->odr_out, + ZOOM_query_get_query_string(resultset->query)); } else { ZOOM_set_error(c, ZOOM_ERROR_UNSUPPORTED_QUERY, 0); return zoom_complete; } + + option_val = ZOOM_query_get_sru11(resultset->query); + if (option_val) + { + sr->u.request->sort_type = Z_SRW_sort_type_sort; + sr->u.request->sort.sortKeys = odr_strdup(c->odr_out, option_val); + } sr->u.request->startRecord = odr_intdup(c->odr_out, *start + 1); sr->u.request->maximumRecords = odr_intdup( c->odr_out, (resultset->step > 0 && resultset->step < *count) ?