X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ffacet.c;h=588e802b495f2fffa7d09834746454b316f7eccc;hb=dceeaf843f3bd4c87d667ed62fd4b5446d934cff;hp=dd27b6febf1caa0101c001998a482cc005aef959;hpb=b23a551976e442c5cbb0ee4aa46768904dd57ccf;p=yaz-moved-to-github.git diff --git a/src/facet.c b/src/facet.c index dd27b6f..588e802 100644 --- a/src/facet.c +++ b/src/facet.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data + * Copyright (C) 1995-2011 Index Data * See the file LICENSE for details. */ @@ -51,9 +51,8 @@ Z_FacetList *yaz_oi_get_facetlist(Z_OtherInformation **otherInformation) return 0; z_external = oi->information.externallyDefinedInfo; - if (z_external && z_external->which == Z_External_userFacets) { + if (z_external && z_external->which == Z_External_userFacets) return z_external->u.facetList; - } return 0; } @@ -91,7 +90,6 @@ static void useattr(Z_AttributeElement *ae, struct yaz_facet_attr *av) if (ae->which == Z_AttributeValue_complex) { s = stringattr(ae->value.complex); - yaz_log(YLOG_DEBUG, "useattr %s %s", s, av->useattr); if (s) { if (!av->useattr) @@ -113,25 +111,24 @@ static void useattr(Z_AttributeElement *ae, struct yaz_facet_attr *av) sprintf(av->useattrbuff, ODR_INT_PRINTF, *ae->value.numeric); av->useattr = av->useattrbuff; } -} /* useattr */ +} -/* TODO rename to sortorder attr */ -static void relationattr(Z_AttributeElement *ae, struct yaz_facet_attr *av) +static void sortorderattr(Z_AttributeElement *ae, struct yaz_facet_attr *av) { if (ae->which == Z_AttributeValue_numeric) { if (*ae->value.numeric == 0) av->relation = "desc"; else if (*ae->value.numeric == 1) - av->relation = "asc"; - else - if (*ae->value.numeric == 3) { + av->relation = "asc"; + else if (*ae->value.numeric == 3) av->relation = "unknown/unordered"; - } else { + else + { av->errcode = YAZ_BIB1_UNSUPP_RELATION_ATTRIBUTE; sprintf(av->useattrbuff, ODR_INT_PRINTF, - *ae-> attributeType); + *ae-> attributeType); av->errstring = av->useattrbuff; } } @@ -140,21 +137,20 @@ static void relationattr(Z_AttributeElement *ae, struct yaz_facet_attr *av) av->errcode = YAZ_BIB1_UNSUPP_RELATION_ATTRIBUTE; av->errstring = "non-numeric relation attribute"; } -} /* relationattr */ +} static void limitattr(Z_AttributeElement *ae, struct yaz_facet_attr *av) { if (ae->which == Z_AttributeValue_numeric) { av->limit = *ae->value.numeric; - yaz_log(YLOG_DEBUG, "limitattr %d ", av->limit); } else { av->errcode = YAZ_BIB1_UNSUPP_ATTRIBUTE; av->errstring = "non-numeric limit attribute"; } -} /* relationattr */ +} /* Get the index to be searched from the attributes. @attr 1 @@ -171,19 +167,17 @@ void yaz_facet_attr_get_z_attributes(const Z_AttributeList *attributes, { int i; Z_AttributeElement *ae; - yaz_log(YLOG_DEBUG, "Attribute num attributes: %d", - attributes->num_attributes); - for (i=0; i < attributes->num_attributes; i++) { + for (i = 0; i < attributes->num_attributes; i++) + { ae = attributes->attributes[i]; /* ignoring the attributeSet here */ - yaz_log(YLOG_DEBUG, "Attribute type %d", (int) *ae->attributeType); if (*ae->attributeType == 1) { /* use attribute */ useattr(ae, av); } else if (*ae->attributeType == 2) { /* sortorder */ - relationattr(ae, av); + sortorderattr(ae, av); } else if (*ae->attributeType == 3) { /* limit */ @@ -195,7 +189,7 @@ void yaz_facet_attr_get_z_attributes(const Z_AttributeList *attributes, sprintf(av->useattrbuff, ODR_INT_PRINTF, *ae-> attributeType); av->errstring = av->useattrbuff; - yaz_log(YLOG_DEBUG, "Unsupported attribute type %s", av->useattrbuff); + yaz_log(YLOG_WARN, "Unsupported attribute type %s", av->useattrbuff); /* would like to give a better message, but the standard */ /* tells me to return the attribute type */ }