X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fber_len.c;h=00be87c318da36e11f6ee4d8934f7d69e1454592;hp=4075ea67e0e9166811f4035ea6650921e40aa0bb;hb=2979c8fc3b5c53c06facad850dcae09645b43044;hpb=4c176312acdc3444c9afc820f76a393e64668e52 diff --git a/src/ber_len.c b/src/ber_len.c index 4075ea6..00be87c 100644 --- a/src/ber_len.c +++ b/src/ber_len.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 1995-2005, Index Data ApS + * Copyright (C) 1995-2007, Index Data ApS * See the file LICENSE for details. * - * $Id: ber_len.c,v 1.3 2005-01-15 19:47:11 adam Exp $ + * $Id: ber_len.c,v 1.6 2007-01-03 08:42:15 adam Exp $ */ /** @@ -35,54 +35,48 @@ 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 (odr_putc(o, 0x80) < 0) + return 0; + return 0; } if (len <= 127 && (lenlen == 1 || !exact)) /* definite short form */ { - if (odr_putc(o, (unsigned char) len) < 0) - return 0; - return 1; + if (odr_putc(o, (unsigned char) len) < 0) + return 0; + return 1; } if (lenlen == 1) { - if (odr_putc(o, 0x80) < 0) - return 0; - return 0; + if (odr_putc(o, 0x80) < 0) + return 0; + return 0; } /* definite long form */ do { - octs[n++] = len; - len >>= 8; + octs[n++] = len; + len >>= 8; } while (len); if (n >= lenlen) - return -1; + return -1; lenpos = odr_tell(o); /* remember length-of-length position */ if (odr_putc(o, 0) < 0) /* dummy */ - return 0; + return 0; if (exact) - while (n < --lenlen) /* pad length octets */ - if (odr_putc(o, 0) < 0) - return 0; + while (n < --lenlen) /* pad length octets */ + if (odr_putc(o, 0) < 0) + return 0; while (n--) - if (odr_putc(o, octs[n]) < 0) - return 0; + if (odr_putc(o, octs[n]) < 0) + return 0; /* set length of length */ end = odr_tell(o); odr_seek(o, ODR_S_SET, lenpos); if (odr_putc(o, (end - lenpos - 1) | 0X80) < 0) - return 0; + return 0; odr_seek(o, ODR_S_END, 0); return odr_tell(o) - lenpos; } @@ -107,22 +101,16 @@ int ber_declen(const unsigned char *buf, int *len, int max) return -1; if (*b == 0X80) /* Indefinite */ { - *len = -1; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", *len); -#endif - return 1; + *len = -1; + return 1; } if (!(*b & 0X80)) /* Definite short form */ { - *len = (int) *b; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", *len); -#endif - return 1; + *len = (int) *b; + return 1; } if (*b == 0XFF) /* reserved value */ - return -2; + return -2; /* indefinite long form */ n = *b & 0X7F; if (n >= max) @@ -131,13 +119,18 @@ int ber_declen(const unsigned char *buf, int *len, int max) b++; while (--n >= 0) { - *len <<= 8; - *len |= *(b++); + *len <<= 8; + *len |= *(b++); } if (*len < 0) return -2; -#ifdef ODR_DEBUG - fprintf(stderr, "[len=%d]", *len); -#endif return (b - buf); } +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +