Improved installation. Moved header files to include/yaz.
[yaz-moved-to-github.git] / odr / ber_null.c
1 /*
2  * Copyright (c) 1995, Index Data
3  * See the file LICENSE for details.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: ber_null.c,v $
7  * Revision 1.9  1999-11-30 13:47:11  adam
8  * Improved installation. Moved header files to include/yaz.
9  *
10  * Revision 1.8  1995/09/29 17:12:18  quinn
11  * Smallish
12  *
13  * Revision 1.7  1995/09/27  15:02:55  quinn
14  * Modified function heads & prototypes.
15  *
16  * Revision 1.6  1995/05/22  11:32:01  quinn
17  * Fixing Interface to odr_null.
18  *
19  * Revision 1.5  1995/05/16  08:50:46  quinn
20  * License, documentation, and memory fixes
21  *
22  * Revision 1.4  1995/04/18  08:15:16  quinn
23  * Added dynamic memory allocation on encoding (whew). Code is now somewhat
24  * neater. We'll make the same change for decoding one day.
25  *
26  * Revision 1.3  1995/03/08  12:12:09  quinn
27  * Added better error checking.
28  *
29  * Revision 1.2  1995/02/09  15:51:46  quinn
30  * Works better now.
31  *
32  * Revision 1.1  1995/02/02  16:21:52  quinn
33  * First kick.
34  *
35  */
36
37 #include <yaz/odr.h>
38
39 /*
40  * BER-en/decoder for NULL type.
41  */
42 int ber_null(ODR o)
43 {
44     switch (o->direction)
45     {
46         case ODR_ENCODE:
47             if (odr_putc(o, 0X00) < 0)
48                 return 0;
49 #ifdef ODR_DEBUG
50             fprintf(stderr, "[NULL]\n");
51 #endif
52             return 1;
53         case ODR_DECODE:
54             if (*(o->bp++) != 0X00)
55             {
56                 o->error = OPROTO;
57                 return 0;
58             }
59             o->left--;
60 #ifdef ODR_DEBUG
61             fprintf(stderr, "[NULL]\n");
62 #endif
63             return 1;
64         case ODR_PRINT: return 1;
65         default: o->error = OOTHER; return 0;
66     }
67 }