X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr_enum.c;h=cf733d5b8c1ac0b0df72efa4d07e49008e1e43b3;hp=1b3f81f29dedc7f6d18b6b75e286882f3c640fbf;hb=5c1eb188e9cf6f0dd2e435a1f81938f258515edb;hpb=fb6d99a0c7e07d9cc4a315c447deaf6564a85505 diff --git a/src/odr_enum.c b/src/odr_enum.c index 1b3f81f..cf733d5 100644 --- a/src/odr_enum.c +++ b/src/odr_enum.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: odr_enum.c,v 1.5 2005-06-25 15:46:04 adam Exp $ */ /** * \file odr_enum.c @@ -18,18 +16,19 @@ * Top level enum en/decoder. * Returns 1 on success, 0 on error. */ -int odr_enum(ODR o, int **p, int opt, const char *name) +int odr_enum(ODR o, Odr_int **p, int opt, const char *name) { int res, cons = 0; if (o->error) return 0; - if (o->t_class < 0) + if (o->op->t_class < 0) { - o->t_class = ODR_UNIVERSAL; - o->t_tag = ODR_ENUM; + o->op->t_class = ODR_UNIVERSAL; + o->op->t_tag = ODR_ENUM; } - if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) + res = ber_tag(o, p, o->op->t_class, o->op->t_tag, &cons, opt, name); + if (res < 0) return 0; if (!res) return odr_missing(o, opt, name); @@ -45,12 +44,13 @@ int odr_enum(ODR o, int **p, int opt, const char *name) return 0; } if (o->direction == ODR_DECODE) - *p = (int *)odr_malloc(o, sizeof(int)); + *p = (Odr_int *)odr_malloc(o, sizeof(**p)); return ber_integer(o, *p); } /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab