First kick.
[yaz-moved-to-github.git] / odr / ber_bool.c
1 /*
2  * Copyright (C) 1994, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: ber_bool.c,v $
7  * Revision 1.1  1995-02-02 16:21:51  quinn
8  * First kick.
9  *
10  */
11
12 #include <stdio.h>
13 #include <odr.h>
14
15
16 int ber_boolean(ODR o, int *val)
17 {
18     unsigned char *b = o->bp;
19     int res, len;
20
21     switch (o->direction)
22     {
23         case ODR_ENCODE:
24             if (ber_enclen(o->bp, 1, 1, 1) != 1)
25                 return 0;
26             o->bp++;
27             o->left--;
28             *(o->bp++) = (unsigned char) *val;
29             fprintf(stderr, "[val=%d]\n", *val);
30             o->left--;
31             return 1;
32         case ODR_DECODE:
33             if ((res = ber_declen(b, &len)) < 0)
34                 return 0;
35             if (len != 1)
36                 return 0;
37             o->bp+= res;
38             o->left -= res;
39             *val = *b;
40             o->bp++;
41             o->left--;
42             fprintf(stderr, "[val=%d]\n", *val);
43             return 1;
44         case ODR_PRINT:
45             return 1;
46         default: return 0;
47     }
48 }