X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr_int.c;h=d8a37571ff9f7ef85874cc5cb309acbf19e5659d;hp=938148135b348f17da13a2a7beea66e1596821c5;hb=b6aa93dcb5c07ed09b664c006b5f33b0135a0854;hpb=05c274ef315384faafcc5900c17468f0ea2474e6 diff --git a/src/odr_int.c b/src/odr_int.c index 9381481..d8a3757 100644 --- a/src/odr_int.c +++ b/src/odr_int.c @@ -1,8 +1,6 @@ -/* - * Copyright (c) 1995-2004, Index Data +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2010 Index Data * See the file LICENSE for details. - * - * $Id: odr_int.c,v 1.3 2004-10-15 00:19:00 adam Exp $ */ /** * \file odr_int.c @@ -18,25 +16,26 @@ * Top level integer en/decoder. * Returns 1 on success, 0 on error. */ -int odr_integer(ODR o, int **p, int opt, const char *name) +int odr_integer(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_INTEGER; + o->op->t_class = ODR_UNIVERSAL; + o->op->t_tag = ODR_INTEGER; } - 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); - odr_printf(o, "%d\n", **p); + odr_prname(o, name); + odr_printf(o, ODR_INT_PRINTF "\n", **p); return 1; } if (cons) @@ -45,6 +44,15 @@ int odr_integer(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 + */ +