X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fnormalize_record.c;h=6a2ab5eb0ff03f09cf0cce4ef1ce219473acb6e6;hb=cb56334872442eff1fa49690c1c9c05974fff6b0;hp=c33cd2eb3847cb3127ed42a14800971aa957577e;hpb=ed45a02021c7c5b380aa74acb49b01bdeb974d6e;p=pazpar2-moved-to-github.git diff --git a/src/normalize_record.c b/src/normalize_record.c index c33cd2e..6a2ab5e 100644 --- a/src/normalize_record.c +++ b/src/normalize_record.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 @@ -124,30 +124,32 @@ int normalize_record_transform(normalize_record_t nt, xmlDoc **doc, const char **parms) { struct normalize_step *m; - for (m = nt->steps; m; m = m->next) - { - xmlNodePtr root = 0; - xmlDoc *new; - if (m->stylesheet) - { - new = xsltApplyStylesheet(m->stylesheet, *doc, parms); - } - else if (m->marcmap) - { - new = marcmap_apply(m->marcmap, *doc); - } - - root = xmlDocGetRootElement(new); - - if (!new || !root || !root->children) - { - if (new) - xmlFreeDoc(new); - xmlFreeDoc(*doc); - return -1; - } - xmlFreeDoc(*doc); - *doc = new; + if (nt) { + for (m = nt->steps; m; m = m->next) + { + xmlNodePtr root = 0; + xmlDoc *new; + if (m->stylesheet) + { + new = xsltApplyStylesheet(m->stylesheet, *doc, parms); + } + else if (m->marcmap) + { + new = marcmap_apply(m->marcmap, *doc); + } + + root = xmlDocGetRootElement(new); + + xmlFreeDoc(*doc); + if (!new || !root || !root->children) + { + if (new) + xmlFreeDoc(new); + *doc = 0; + return -1; + } + *doc = new; + } } return 0; }