X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=ztest%2Fread-marc.c;h=eb4463105315be38437f85db9c3c3eaed3be62fd;hp=6333a40a42a4661fa07f8996443b6eea23a6e765;hb=471c6dccdbb5c5a9c08b24c9abd6a1dcda29e79e;hpb=165b231b0f6eaa0b2b5fbf438f5ddede630b10e3 diff --git a/ztest/read-marc.c b/ztest/read-marc.c index 6333a40..eb44631 100644 --- a/ztest/read-marc.c +++ b/ztest/read-marc.c @@ -1,16 +1,17 @@ /* - * Copyright (c) 2002, Index Data. + * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: read-marc.c,v 1.3 2002-09-24 08:05:41 adam Exp $ + * $Id: read-marc.c,v 1.7 2005-06-25 15:46:09 adam Exp $ */ /* * Little toy-thing to read a MARC records from a fixed array. */ #include -#include #include +#include +#include char *marc_records[] = { @@ -1536,7 +1537,7 @@ static int atoin (const char *buf, int n) int val = 0; while (--n >= 0) { - if (isdigit(*buf)) + if (isdigit(*(const unsigned char *) buf)) val = val*10 + (*buf - '0'); buf++; } @@ -1600,20 +1601,27 @@ char *dummy_marc_record (int num, ODR odr) /* read MARC record and convert to XML */ char *dummy_xml_record (int num, ODR odr) { - WRBUF wr = wrbuf_alloc (); + yaz_marc_t mt = yaz_marc_create(); + char *result; + int rlen; char *rec = dummy_marc_record (num, odr); int len; + if (!rec) return 0; - len = yaz_marc_decode (rec, wr, 0, -1, 1); + yaz_marc_xml(mt, YAZ_MARC_MARCXML); + len = yaz_marc_decode_buf (mt, rec, -1, &result, &rlen); if (len > 1) - { - len = wrbuf_len(wr); - rec = (char *) odr_malloc (odr, len+1); - memcpy (rec, wrbuf_buf(wr), len+1); - rec[len] = 0; - } - wrbuf_free (wr, 1); + rec = (char *) odr_strdup(odr, result); + yaz_marc_destroy(mt); return rec; } +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +