X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr_bool.c;h=62354cbec01c7232d58ff8fbdca1bd983433fe1b;hp=151d0504c3a4713c6f02ec0f24d913a31cec5d31;hb=43a9d38d20c1b1bcd1a03b2445a501d27526bd35;hpb=0a7d4354288c747883261e9f430a7e0069225a5b diff --git a/src/odr_bool.c b/src/odr_bool.c index 151d050..62354cb 100644 --- a/src/odr_bool.c +++ b/src/odr_bool.c @@ -1,9 +1,11 @@ -/* - * Copyright (c) 1995-2003, Index Data +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2011 Index Data * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss - * - * $Id: odr_bool.c,v 1.2 2004-08-11 12:15:38 adam Exp $ + */ + +/** + * \file odr_bool.c + * \brief Implements ODR BOOLEAN codec */ #if HAVE_CONFIG_H #include @@ -16,30 +18,40 @@ * Top level boolean en/decoder. * Returns 1 on success, 0 on error. */ -int odr_bool(ODR o, int **p, int opt, const char *name) +int odr_bool(ODR o, Odr_bool **p, int opt, const char *name) { int res, cons = 0; if (o->error) - return 0; - if (o->t_class < 0) + return 0; + if (o->op->t_class < 0) { - o->t_class = ODR_UNIVERSAL; - o->t_tag = ODR_BOOLEAN; + o->op->t_class = ODR_UNIVERSAL; + o->op->t_tag = ODR_BOOLEAN; } - if ((res = ber_tag(o, p, o->t_class, o->t_tag, &cons, opt, name)) < 0) - return 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); + return odr_missing(o, opt, name); if (o->direction == ODR_PRINT) { - odr_prname(o, name); - odr_printf(o, "%s\n", (**p ? "TRUE" : "FALSE")); - return 1; + odr_prname(o, name); + odr_printf(o, "%s\n", (**p ? "TRUE" : "FALSE")); + return 1; } if (cons) - return 0; + return 0; if (o->direction == ODR_DECODE) - *p = (int *)odr_malloc(o, sizeof(int)); + *p = (int *)odr_malloc(o, sizeof(int)); return ber_boolean(o, *p); } +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +