Merge branch 'mp-629'
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 1 Oct 2015 08:49:49 +0000 (10:49 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 1 Oct 2015 08:49:49 +0000 (10:49 +0200)
etc/config-record-transform.xml
etc/retrieval-info.xml
src/filter_sort.cpp

index af2d7a8..80c51c9 100644 (file)
       <filter type="log">
         <message>Front</message>
       </filter>
+      <filter type="record_transform">
+       <retrievalinfo  xmlns="http://indexdata.com/yaz" version="1.0">
+         <retrieval syntax="usmarc">
+           <backend syntax="xml" name="marcxml">
+             <marc inputformat="xml" outputformat="marc"
+                   inputcharset="utf-8" outputcharset="marc-8"/>
+           </backend>
+         </retrieval>
+         <retrieval syntax="xml"/>
+         <retrieval syntax="opac"/>
+         <retrieval syntax="grs-1"/>
+         <retrieval syntax="unimarc"/>
+       </retrievalinfo>
+      </filter>
       <filter type="sort">
         <sort
            xpath="/marc:record/marc:datafield[@tag='245']/marc:subfield[@code='a']"
index e338a9a..59801e3 100644 (file)
       </xslt>
     </backend>
   </retrieval>
+<!--
   <retrieval syntax="unimarc" name="F">
     <backend syntax="usmarc" name="F">
       <usemarcon stage1="/etc/usemarcon/uni2us/uni2us.ini"/>
     </backend>
   </retrieval>
+-->
   <retrieval syntax="opac" name="OP">
     <backend syntax="opac" name="F">
       <marc inputformat="marc" outputformat="marcxchange"
index ce0db12..02ae667 100644 (file)
@@ -614,7 +614,7 @@ void yf::Sort::Frontend::handle_search(mp::Package &package, Z_APDU *apdu_req)
             mp::util::piggyback_to_RecordComposition(odr,
                                                      *res->resultCount, req);
         s->hit_count = *res->resultCount;
-        handle_records(b_package, apdu_req, res->records, 1, s,
+        handle_records(package, apdu_req, res->records, 1, s,
                        syntax, record_comp, resultSetId.c_str());
         package.response() = gdu_res;
     }
@@ -687,12 +687,12 @@ void yf::Sort::Frontend::handle_present(mp::Package &package, Z_APDU *apdu_req)
     b_package.copy_filter(package);
     b_package.request() = apdu_req;
     b_package.move();
-    Z_GDU *gdu_res = package.response().get();
+    Z_GDU *gdu_res = b_package.response().get();
     if (gdu_res && gdu_res->which == Z_GDU_Z3950 && gdu_res->u.z3950->which ==
         Z_APDU_presentResponse)
     {
         Z_PresentResponse *res = gdu_res->u.z3950->u.presentResponse;
-        handle_records(b_package, apdu_req, res->records,
+        handle_records(package, apdu_req, res->records,
                        start, rset, syntax, req->recordComposition,
                        resultSetId.c_str());
         package.response() = gdu_res;