- yaz_add_srw_diagnostic(assoc->encode, &srw_res->diagnostics,
- &srw_res->num_diagnostics,
- YAZ_SRW_FIRST_RECORD_POSITION_OUT_OF_RANGE, 0);
+ bend_present_rr *bprr = (bend_present_rr*)
+ odr_malloc (assoc->decode, sizeof(*bprr));
+ bprr->setname = "default";
+ bprr->start = start;
+ bprr->number = number;
+ bprr->format = VAL_TEXT_XML;
+ if (srw_req->recordSchema)
+ {
+ bprr->comp = (Z_RecordComposition *) odr_malloc(assoc->decode,
+ sizeof(*bprr->comp));
+ bprr->comp->which = Z_RecordComp_simple;
+ bprr->comp->u.simple = (Z_ElementSetNames *)
+ odr_malloc(assoc->decode, sizeof(Z_ElementSetNames));
+ bprr->comp->u.simple->which = Z_ElementSetNames_generic;
+ bprr->comp->u.simple->u.generic = srw_req->recordSchema;
+ }
+ else
+ {
+ bprr->comp = 0;
+ }
+ bprr->stream = assoc->encode;
+ bprr->referenceId = 0;
+ bprr->print = assoc->print;
+ bprr->request = req;
+ bprr->association = assoc;
+ bprr->errcode = 0;
+ bprr->errstring = NULL;
+ (*assoc->init->bend_present)(assoc->backend, bprr);
+
+ if (!bprr->request)
+ return;
+ if (bprr->errcode)
+ {
+ srw_error = yaz_diag_bib1_to_srw (bprr->errcode);
+ yaz_add_srw_diagnostic(assoc->encode,
+ &srw_res->diagnostics,
+ &srw_res->num_diagnostics,
+ srw_error, bprr->errstring);
+ ok = 0;
+ }