X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fber_tag.c;h=64908d7a044591623d148529e9e138cd63823c9d;hp=b6f76448e6727c0a4204b1fec040e5fa69638048;hb=fb6d99a0c7e07d9cc4a315c447deaf6564a85505;hpb=67002f49611adb64993391b0cbf6c235f18080a4 diff --git a/src/ber_tag.c b/src/ber_tag.c index b6f7644..64908d7 100644 --- a/src/ber_tag.c +++ b/src/ber_tag.c @@ -2,7 +2,7 @@ * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: ber_tag.c,v 1.4 2005-01-15 19:47:11 adam Exp $ + * $Id: ber_tag.c,v 1.5 2005-06-25 15:46:03 adam Exp $ */ /** @@ -21,8 +21,8 @@ /* ber_tag * On encoding: - * if p: write tag. return 1 (success) or -1 (error). - * if !p: return 0. + * if p: write tag. return 1 (success) or -1 (error). + * if !p: return 0. * On decoding: * if tag && zclass match up, advance pointer and return 1. set cons. * else leave pointer unchanged. Return 0. @@ -37,13 +37,13 @@ int ber_tag(ODR o, void *p, int zclass, int tag, int *constructed, int opt, char **pp = (char **)p; if (o->direction == ODR_DECODE) - *pp = 0; + *pp = 0; o->t_class = -1; if (o->op->stackp < 0) { - odr_seek(o, ODR_S_SET, 0); + odr_seek(o, ODR_S_SET, 0); o->top = 0; - o->bp = o->buf; + o->bp = o->buf; odr_ber_tag->lclass = -1; } switch (o->direction) @@ -137,31 +137,31 @@ int ber_enctag(ODR o, int zclass, int tag, int constructed) b |= (cons << 5) & 0X20; if (tag <= 30) { - b |= tag & 0X1F; - if (odr_putc(o, b) < 0) - return -1; - return 1; + b |= tag & 0X1F; + if (odr_putc(o, b) < 0) + return -1; + return 1; } else { - b |= 0X1F; - if (odr_putc(o, b) < 0) - return -1; - do - { - octs[n++] = tag & 0X7F; - tag >>= 7; - } - while (tag); - while (n--) - { - unsigned char oo; + b |= 0X1F; + if (odr_putc(o, b) < 0) + return -1; + do + { + octs[n++] = tag & 0X7F; + tag >>= 7; + } + while (tag); + while (n--) + { + unsigned char oo; - oo = octs[n] | ((n > 0) << 7); - if (odr_putc(o, oo) < 0) - return -1; - } - return 0; + oo = octs[n] | ((n > 0) << 7); + if (odr_putc(o, oo) < 0) + return -1; + } + return 0; } } @@ -179,15 +179,23 @@ int ber_dectag(const unsigned char *b, int *zclass, int *tag, *zclass = *b >> 6; *constructed = (*b >> 5) & 0X01; if ((*tag = *b & 0x1F) <= 30) - return 1; + return 1; *tag = 0; do { if (l >= max) return -1; - *tag <<= 7; - *tag |= b[l] & 0X7F; + *tag <<= 7; + *tag |= b[l] & 0X7F; } while (b[l++] & 0X80); return l; } +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +