X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmarcmap.c;h=7b62c1ec5b47e4340f3b0f176f3d2031cd846838;hb=f00bd32b54ee3dd8fed73fdb3b8e78549837e174;hp=31d0a2410257a385eb9a3f916cc9ee7c7d7c488e;hpb=4b1fc6c00b0a19fb4432aa49219045b6ae2bff7a;p=pazpar2-moved-to-github.git diff --git a/src/marcmap.c b/src/marcmap.c index 31d0a24..7b62c1e 100644 --- a/src/marcmap.c +++ b/src/marcmap.c @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2009 Index Data + Copyright (C) 2006-2010 Index Data Pazpar2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -37,7 +37,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "marcmap.h" #include "marchash.h" -struct marcmap *marcmap_load(char *filename, NMEM nmem) { +struct marcmap *marcmap_load(const char *filename, NMEM nmem) +{ struct marcmap *mm; struct marcmap *mmhead; FILE *fp; @@ -137,9 +138,11 @@ xmlDoc *marcmap_apply(struct marcmap *marcmap, xmlDoc *xml_in) struct marcmap *mmcur; xml_out = xmlNewDoc(BAD_CAST "1.0"); + xml_out->encoding = xmlCharStrdup("UTF-8"); xml_out_root = xmlNewNode(NULL, BAD_CAST "record"); xmlDocSetRootElement(xml_out, xml_out_root); ns_pz = xmlNewNs(xml_out_root, BAD_CAST "http://www.indexdata.com/pazpar2/1.0", BAD_CAST "pz"); + xmlSetNs(xml_out_root, ns_pz); nmem = nmem_create(); rec_node = xmlDocGetRootElement(xml_in); marchash = marchash_create(nmem); @@ -208,12 +211,12 @@ xmlDoc *marcmap_apply(struct marcmap *marcmap, xmlDoc *xml_in) if ((field = marchash_get_field(marchash, "245", NULL)) && (subfield = marchash_get_subfield('a', field, NULL))) strncat(mergekey, subfield->val, 1023 - strlen(mergekey)); strncat(mergekey, " author ", 1023 - strlen(mergekey)); - if ((field = marchash_get_field(marchash, "245", NULL)) && (subfield = marchash_get_subfield('a', field, NULL))) + if ((field = marchash_get_field(marchash, "100", NULL)) && (subfield = marchash_get_subfield('a', field, NULL))) strncat(mergekey, subfield->val, 1023 - strlen(mergekey)); strncat(mergekey, " medium ", 1023 - strlen(mergekey)); strncat(mergekey, medium, 1023 - strlen(mergekey)); - xmlSetProp(xml_out_root, BAD_CAST "mergekey", BAD_CAST mergekey); +// xmlSetProp(xml_out_root, BAD_CAST "mergekey", BAD_CAST mergekey); nmem_destroy(nmem); return xml_out;