- rec = (char *) odr_malloc(odr, rlen+1);
- memcpy(rec, result, rlen);
- rec[rlen] = '\0';
+ const char *result;
+ size_t rlen;
+ int len;
+ yaz_marc_t mt = yaz_marc_create();
+ yaz_marc_xml(mt, YAZ_MARC_MARCXML);
+ len = yaz_marc_decode_buf(mt, rec, -1, &result, &rlen);
+ if (len > 1)
+ {
+ rec = (char *) odr_malloc(odr, rlen+1);
+ memcpy(rec, result, rlen);
+ rec[rlen] = '\0';
+ }
+ yaz_marc_destroy(mt);