249 Z_NamePlusRecord *npr = records->records[i];
250 const char *details = 0;
251 mp::wrbuf output_record;
252 Z_External *r = npr->u.databaseRecord;
254 if (npr->which != Z_NamePlusRecord_databaseRecord)
256 r = npr->u.databaseRecord;
257 if (r->which == Z_External_OPAC)
259 ret_trans = yaz_record_conv_opac_record(rc, r->u.opac,
261 details = yaz_record_conv_get_error(rc);
263 else if (r->which == Z_External_octet)
266 yaz_record_conv_record(
267 rc, (
const char *) r->u.octet_aligned->buf,
268 r->u.octet_aligned->len, output_record);
269 details = yaz_record_conv_get_error(rc);
273 details =
"unsupported record type for record_conv";
277 records->records[i] =
278 zget_surrogateDiagRec(
279 odr_en, npr->databaseName,
280 YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS,
285 if (!oid_oidcmp(match_syntax, yaz_oid_recsyn_opac))
288 yaz_marc_t mt = yaz_marc_create();
289 Z_OPACRecord *opac = 0;
290 const char *output_charset =
291 yaz_record_get_output_charset(rc);
293 cd = yaz_iconv_open(output_charset,
"utf-8");
294 if (yaz_xml_to_opac(mt, output_record.buf(),
297 ((ODR )odr_en)->mem, 0)
300 npr->u.databaseRecord =
301 z_ext_record_oid(odr_en, match_syntax,
302 (
const char *) opac, -1);
306 records->records[i] =
307 zget_surrogateDiagRec(
308 odr_en, npr->databaseName,
309 YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS,
310 "XML to OPAC conversion failed");
312 yaz_marc_destroy(mt);
316 npr->u.databaseRecord = z_ext_record_oid(odr_en, match_syntax,
318 output_record.len());