/*
- * Copyright (c) 1995-1997, Index Data
+ * Copyright (c) 1995-2000, Index Data
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ber_tag.c,v $
- * Revision 1.17 1997-09-30 09:33:10 adam
+ * Revision 1.22 2000-02-29 13:44:55 adam
+ * Check for config.h (currently not generated).
+ *
+ * Revision 1.21 2000/01/31 13:15:21 adam
+ * Removed uses of assert(3). Cleanup of ODR. CCL parser update so
+ * that some characters are not surrounded by spaces in resulting term.
+ * ILL-code updates.
+ *
+ * Revision 1.20 1999/11/30 13:47:11 adam
+ * Improved installation. Moved header files to include/yaz.
+ *
+ * Revision 1.19 1999/01/08 11:23:25 adam
+ * Added const modifier to some of the BER/ODR encoding routines.
+ *
+ * Revision 1.18 1998/02/11 11:53:34 adam
+ * Changed code so that it compiles as C++.
+ *
+ * Revision 1.17 1997/09/30 09:33:10 adam
* Minor changes - removed indentation of ifdef.
*
* Revision 1.16 1997/09/17 12:10:33 adam
* First kick.
*
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <stdio.h>
-#include <odr.h>
+#include <yaz/odr.h>
/* ber_tag
* On encoding:
{
Odr_ber_tag *odr_ber_tag = &o->odr_ber_tag;
int rd;
- char **pp = p;
+ char **pp = (char **)p;
if (o->direction == ODR_DECODE)
*pp = 0;
if (o->stackp < 0)
{
odr_seek(o, ODR_S_SET, 0);
- o->ecb.top = 0;
+ o->top = 0;
o->bp = o->buf;
odr_ber_tag->lclass = -1;
}
if (zclass == odr_ber_tag->lclass && tag == odr_ber_tag->ltag)
{
o->bp += odr_ber_tag->br;
- o->left -= odr_ber_tag->br;
*constructed = odr_ber_tag->lcons;
odr_ber_tag->lclass = -1;
return 1;
/* ber_dectag
* Decode BER identifier octets. Return number of bytes read or -1 for error.
*/
-int ber_dectag(unsigned char *buf, int *zclass, int *tag, int *constructed)
+int ber_dectag(const unsigned char *buf, int *zclass, int *tag, int *constructed)
{
- unsigned char *b = buf;
+ const unsigned char *b = buf;
*zclass = *b >> 6;
*constructed = (*b >> 5) & 0X01;