X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr_enum.c;h=cf733d5b8c1ac0b0df72efa4d07e49008e1e43b3;hp=45710f6604a48a835c1fc650750b081ff186e22d;hb=5c1eb188e9cf6f0dd2e435a1f81938f258515edb;hpb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9 diff --git a/src/odr_enum.c b/src/odr_enum.c index 45710f6..cf733d5 100644 --- a/src/odr_enum.c +++ b/src/odr_enum.c @@ -1,9 +1,10 @@ -/* - * Copyright (c) 1995-2003, Index Data +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss - * - * $Id: odr_enum.c,v 1.1 2003-10-27 12:21:33 adam Exp $ + */ +/** + * \file odr_enum.c + * \brief Implements ODR ENUM codec */ #if HAVE_CONFIG_H #include @@ -15,25 +16,26 @@ * 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); if (o->direction == ODR_PRINT) { - odr_prname(o, name); - fprintf(o->print, "%d\n", **p); + odr_prname(o, name); + odr_printf(o, "%d\n", **p); return 1; } if (cons) @@ -42,6 +44,15 @@ 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 + */ +