#include <yaz/yaz-util.h>
#include <yaz/pquery.h>
#include <yaz/oid_db.h>
-
+#include <yaz/query-charset.h>
#include <yaz/srw.h>
#include <yaz/backend.h>
#include <yaz/yaz-ccl.h>
}
else if (sr->which == Z_SRW_explain_request)
{
- Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_explain_response,
- sr->srw_version);
+ Z_SRW_PDU *res = yaz_srw_get_pdu_e(o, Z_SRW_explain_response, sr);
stylesheet = sr->u.explain_request->stylesheet;
if (num_diagnostic)
{
}
else if (sr->which == Z_SRW_scan_request)
{
- Z_SRW_PDU *res = yaz_srw_get_pdu(o, Z_SRW_scan_response,
- sr->srw_version);
+ Z_SRW_PDU *res = yaz_srw_get_pdu_e(o, Z_SRW_scan_response, sr);
stylesheet = sr->u.scan_request->stylesheet;
if (num_diagnostic)
{
bsrr->search_input = req->otherInfo;
bsrr->present_number = *req->mediumSetPresentNumber;
+ if (assoc->server && assoc->server->client_query_charset &&
+ req->query->which == Z_Query_type_1)
+ {
+ yaz_iconv_t cd =
+ yaz_iconv_open("UTF-8", assoc->server->client_query_charset);
+ if (cd)
+ {
+ yaz_query_charset_convert_rpnquery(req->query->u.type_1,
+ assoc->decode, cd);
+ yaz_iconv_close(cd);
+ }
+ }
+
if (assoc->server && assoc->server->cql_transform
&& req->query->which == Z_Query_type_104
&& req->query->u.type_104->which == Z_External_CQL)