X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr_int.c;h=ba35c9d5567f01ea9f4854b31d28589ad3ef720c;hp=cb9645f7d1c289c41193c9e9ea3075bf2d175106;hb=ce627148dbba2878565b8d9da33f6b25f33da4bd;hpb=8d691989077a0addcbd840d769dce6700f3d9622 diff --git a/src/odr_int.c b/src/odr_int.c index cb9645f..ba35c9d 100644 --- a/src/odr_int.c +++ b/src/odr_int.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: odr_int.c,v 1.6 2007-01-03 08:42:15 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_printf(o, ODR_INT_PRINTF "\n", **p); return 1; } if (cons) @@ -45,12 +44,13 @@ 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