X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=odr%2Fodr.c;h=1f8a6251f2f860527afe0998028d67b40fe08789;hb=a6d84a7dae6b0dc41228c301069bb14fb26bd38e;hp=15c6e6739c6834cee834dd34c1ee01c80bcddc2f;hpb=569f86b4615c2731727be2a0ff898d36f9725819;p=yaz-moved-to-github.git diff --git a/odr/odr.c b/odr/odr.c index 15c6e67..1f8a625 100644 --- a/odr/odr.c +++ b/odr/odr.c @@ -1,8 +1,8 @@ /* - * Copyright (c) 1995-2002, Index Data + * Copyright (c) 1995-2003, Index Data * See the file LICENSE for details. * - * $Id: odr.c,v 1.35 2002-07-25 12:51:08 adam Exp $ + * $Id: odr.c,v 1.40 2003-02-12 15:06:43 adam Exp $ * */ #if HAVE_CONFIG_H @@ -35,7 +35,8 @@ char *odr_errlist[] = "Malformed data", "Stack overflow", "Length of constructed type different from sum of members", - "Overflow writing definite length of constructed type" + "Overflow writing definite length of constructed type", + "HTTP Bad Request" }; char *odr_errmsg(int n) @@ -60,17 +61,13 @@ void odr_setprint(ODR o, FILE *file) int odr_set_charset(ODR o, const char *to, const char *from) { -#if HAVE_ICONV_H - if (o->op->iconv_handle != (iconv_t)(-1)) - iconv_close (o->op->iconv_handle); + if (o->op->iconv_handle) + yaz_iconv_close (o->op->iconv_handle); - o->op->iconv_handle = iconv_open (to, from); - if (o->op->iconv_handle == (iconv_t)(-1)) + o->op->iconv_handle = yaz_iconv_open (to, from); + if (o->op->iconv_handle == 0) return -1; return 0; -#else - return -1; -#endif } #include @@ -88,11 +85,9 @@ ODR odr_createmem(int direction) r->can_grow = 1; r->mem = nmem_create(); r->enable_bias = 1; - r->op = xmalloc (sizeof(*r->op)); + r->op = (struct Odr_private *) xmalloc (sizeof(*r->op)); r->op->odr_ber_tag.lclass = -1; -#if HAVE_ICONV_H - r->op->iconv_handle = (iconv_t)(-1); -#endif + r->op->iconv_handle = 0; odr_reset(r); yaz_log (LOG_DEBUG, "odr_createmem dir=%d o=%p", direction, r); return r; @@ -111,10 +106,8 @@ void odr_reset(ODR o) nmem_reset(o->mem); o->choice_bias = -1; o->lenlen = 1; -#if HAVE_ICONV_H - if (o->op->iconv_handle != (iconv_t)(-1)) - iconv(o->op->iconv_handle, 0, 0, 0, 0); -#endif + if (o->op->iconv_handle != 0) + yaz_iconv(o->op->iconv_handle, 0, 0, 0, 0); yaz_log (LOG_DEBUG, "odr_reset o=%p", o); } @@ -125,10 +118,8 @@ void odr_destroy(ODR o) xfree(o->buf); if (o->print && o->print != stderr) fclose(o->print); -#if HAVE_ICONV_H - if (o->op->iconv_handle != (iconv_t)(-1)) - iconv_close (o->op->iconv_handle); -#endif + if (o->op->iconv_handle != 0) + yaz_iconv_close (o->op->iconv_handle); xfree(o->op); xfree(o); yaz_log (LOG_DEBUG, "odr_destroy o=%p", o);