Remove maskfun/socketfun
[pazpar2-moved-to-github.git] / src / marcmap.c
index 31d0a24..7b62c1e 100644 (file)
@@ -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;