X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fdatabase.c;h=70e556a991f1eee600660bd1b266747b9f9c0e22;hb=9f15a2646ae6c666ac16c2d779afc3ee205df069;hp=f3225ee1f9d96d0c73ecf95c6d342b26ae897539;hpb=1922e9b86a79d3bc536c3093afd3787d8a6c9194;p=pazpar2-moved-to-github.git diff --git a/src/database.c b/src/database.c index f3225ee..70e556a 100644 --- a/src/database.c +++ b/src/database.c @@ -1,4 +1,4 @@ -/* $Id: database.c,v 1.16 2007-04-12 07:15:48 marc Exp $ +/* $Id: database.c,v 1.19 2007-04-18 12:41:38 quinn Exp $ Copyright (c) 2006-2007, Index Data. This file is part of Pazpar2. @@ -227,19 +227,18 @@ static int match_criterion(struct setting **settings, struct database_criterion if (offset == PZ_ID) { if (match_zurl(settings[offset]->value, v->value)) - return 1; - else - return 0; + break; } else { if (!strcmp(settings[offset]->value, v->value)) - return 1; - else - return 0; + break; } } - return 0; + if (v) + return 1; + else + return 0; } int database_match_criteria(struct setting **settings, struct database_criterion *cl) @@ -327,19 +326,20 @@ static void prepare_yazmarc(void *ignore, struct database *db) db->yaz_marc = yaz_marc_create(); yaz_marc_subfield_str(db->yaz_marc, "\t"); + // See if a native encoding is specified - if ((s = db->settings[PZ_ENCODING])) + if (db->settings[PZ_ENCODING]) + encoding = db->settings[PZ_ENCODING]->value; + + cm = yaz_iconv_open("utf-8", encoding); + if (!cm) { - encoding = s->value; - break; - } - if (!(cm = yaz_iconv_open("utf-8", encoding))) - { - yaz_log(YLOG_FATAL, "Unable to map from %s to UTF-8", encoding); + yaz_log(YLOG_FATAL, + "Unable to map from %s to UTF-8 for target %s", + encoding, db->url); exit(1); } yaz_marc_iconv(db->yaz_marc, cm); - break; } }