X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr_int.c;h=ba35c9d5567f01ea9f4854b31d28589ad3ef720c;hp=33e86fbd6e84a845e606b883e973f1d2be885c53;hb=ce627148dbba2878565b8d9da33f6b25f33da4bd;hpb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9 diff --git a/src/odr_int.c b/src/odr_int.c index 33e86fb..ba35c9d 100644 --- a/src/odr_int.c +++ b/src/odr_int.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_int.c,v 1.1 2003-10-27 12:21:33 adam Exp $ + */ +/** + * \file odr_int.c + * \brief Implements ODR INTEGER codec */ #if HAVE_CONFIG_H #include @@ -15,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); - fprintf(o->print, "%d\n", **p); + odr_prname(o, name); + odr_printf(o, ODR_INT_PRINTF "\n", **p); return 1; } if (cons) @@ -42,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 + */ +