X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fber_len.c;h=47c6f0f2a291c330b0636d90f342bf3f18df7059;hp=1a02fdebef49239ace7ffa9b487ee71292949aa7;hb=11ed1645174d8ca8d8dcf5ef2bbe91e70a4a3e00;hpb=fb6d99a0c7e07d9cc4a315c447deaf6564a85505 diff --git a/src/ber_len.c b/src/ber_len.c index 1a02fde..47c6f0f 100644 --- a/src/ber_len.c +++ b/src/ber_len.c @@ -1,11 +1,9 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: ber_len.c,v 1.4 2005-06-25 15:46:03 adam Exp $ */ -/** +/** * \file ber_len.c * \brief Implements BER length octet encoding and decoding * @@ -35,16 +33,10 @@ int ber_enclen(ODR o, int len, int lenlen, int exact) int n = 0; int lenpos, end; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", len); -#endif if (len < 0) /* Indefinite */ { if (odr_putc(o, 0x80) < 0) return 0; -#ifdef ODR_DEBUG - fprintf(stderr, "[indefinite]"); -#endif return 0; } if (len <= 127 && (lenlen == 1 || !exact)) /* definite short form */ @@ -89,8 +81,8 @@ int ber_enclen(ODR o, int len, int lenlen, int exact) /** * ber_declen: - * Decode BER length octets. Returns - * > 0 : number of bytes read + * Decode BER length octets. Returns + * > 0 : number of bytes read * -1 : not enough room to read bytes within max bytes * -2 : other error * @@ -98,9 +90,9 @@ int ber_enclen(ODR o, int len, int lenlen, int exact) * len = -1 indefinite length. * len >= 0 definite length */ -int ber_declen(const unsigned char *buf, int *len, int max) +int ber_declen(const char *buf, int *len, int max) { - const unsigned char *b = buf; + const unsigned char *b = (const unsigned char *) buf; int n; if (max < 1) @@ -108,22 +100,16 @@ int ber_declen(const unsigned char *buf, int *len, int max) if (*b == 0X80) /* Indefinite */ { *len = -1; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", *len); -#endif return 1; } if (!(*b & 0X80)) /* Definite short form */ { *len = (int) *b; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", *len); -#endif return 1; } if (*b == 0XFF) /* reserved value */ return -2; - /* indefinite long form */ + /* indefinite long form */ n = *b & 0X7F; if (n >= max) return -1; @@ -136,14 +122,12 @@ int ber_declen(const unsigned char *buf, int *len, int max) } if (*len < 0) return -2; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", *len); -#endif - return (b - buf); + return ((const char *) b - buf); } /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab