X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fotherinfo.c;h=f7a8e5fb503099afd7acce8c5bd2a76db5c6eb0c;hp=b0224604767b83614ea67f479187b50d5bdc4664;hb=8cb8947e3a7bff4dbf8f124871cb4905df1adce7;hpb=0ca041667b871556ef285fe708cf70c6acef64a7 diff --git a/src/otherinfo.c b/src/otherinfo.c index b022460..f7a8e5f 100644 --- a/src/otherinfo.c +++ b/src/otherinfo.c @@ -1,11 +1,15 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ /** * \file otherinfo.c * \brief Implements Z39.50 OtherInfo utilities */ +#if HAVE_CONFIG_H +#include +#endif + #include #include @@ -69,7 +73,7 @@ void yaz_oi_APDU(Z_APDU *apdu, Z_OtherInformation ***oip) } } -Z_OtherInformationUnit *yaz_oi_update ( +Z_OtherInformationUnit *yaz_oi_update( Z_OtherInformation **otherInformationP, ODR odr, const Odr_oid *oid, int categoryValue, int delete_flag) { @@ -130,7 +134,7 @@ Z_OtherInformationUnit *yaz_oi_update ( for (i = 0; inum_elements; i++) newlist[i] = otherInformation->list[i]; otherInformation->list = newlist; - + otherInformation->list[i] = (Z_OtherInformationUnit*) odr_malloc (odr, sizeof(Z_OtherInformationUnit)); if (oid) @@ -139,14 +143,14 @@ Z_OtherInformationUnit *yaz_oi_update ( odr_malloc (odr, sizeof(Z_InfoCategory)); otherInformation->list[i]->category->categoryTypeId = (Odr_oid*) odr_oiddup (odr, oid); - otherInformation->list[i]->category->categoryValue = + otherInformation->list[i]->category->categoryValue = odr_intdup(odr, categoryValue); } else otherInformation->list[i]->category = 0; otherInformation->list[i]->which = Z_OtherInfo_characterInfo; otherInformation->list[i]->information.characterInfo = 0; - + otherInformation->num_elements = i+1; return otherInformation->list[i]; } @@ -170,7 +174,7 @@ char *yaz_oi_get_string_oid ( const Odr_oid *oid, int categoryValue, int delete_flag) { Z_OtherInformationUnit *oi; - + if ((oi = yaz_oi_update(otherInformation, 0, oid, categoryValue, delete_flag)) && oi->which == Z_OtherInfo_characterInfo) @@ -178,43 +182,6 @@ char *yaz_oi_get_string_oid ( return 0; } -void yaz_oi_set_facetlist_oid ( - Z_OtherInformation **otherInformation, ODR odr, - const Odr_oid *oid, int categoryValue, - Z_FacetList *facet_list) -{ - Z_External *z_external = 0; - Z_OtherInformationUnit *oi = - yaz_oi_update(otherInformation, odr, oid, categoryValue, 0); - if (!oi) - return; - oi->which = Z_OtherInfo_externallyDefinedInfo; - z_external = odr_malloc(odr, sizeof(*z_external)); - z_external->which = Z_External_userFacets; - z_external->direct_reference = odr_oiddup(odr, oid); - z_external->indirect_reference = 0; - z_external->descriptor = 0; - z_external->u.facetList = facet_list; - oi->information.externallyDefinedInfo = z_external; -} - -Z_FacetList *yaz_oi_get_facetlist_oid ( - Z_OtherInformation **otherInformation, ODR odr, - const Odr_oid *oid, int categoryValue, int delete_flag) -{ - Z_External *z_external = 0; - Z_OtherInformationUnit *oi = - yaz_oi_update(otherInformation, 0, oid, categoryValue, delete_flag); - if (!oi) - return 0; - z_external = oi->information.externallyDefinedInfo; - - if (z_external && z_external->which == Z_External_userFacets) { - return z_external->u.facetList; - } - return 0; -} - /* * Local variables: