Added dynamic memory allocation on encoding (whew). Code is now somewhat
[yaz-moved-to-github.git] / odr / ber_null.c
1 /*
2  * Copyright (C) 1994, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: ber_null.c,v $
7  * Revision 1.4  1995-04-18 08:15:16  quinn
8  * Added dynamic memory allocation on encoding (whew). Code is now somewhat
9  * neater. We'll make the same change for decoding one day.
10  *
11  * Revision 1.3  1995/03/08  12:12:09  quinn
12  * Added better error checking.
13  *
14  * Revision 1.2  1995/02/09  15:51:46  quinn
15  * Works better now.
16  *
17  * Revision 1.1  1995/02/02  16:21:52  quinn
18  * First kick.
19  *
20  */
21
22 #include <odr.h>
23
24 /*
25  * BER-en/decoder for NULL type.
26  */
27 int ber_null(ODR o, int *val)
28 {
29     switch (o->direction)
30     {
31         case ODR_ENCODE:
32             if (odr_putc(o, 0X00) < 0)
33                 return 0;
34 #ifdef ODR_DEBUG
35             fprintf(stderr, "[NULL]\n");
36 #endif
37             return 1;
38         case ODR_DECODE:
39             if (*(o->bp++) != 0X00)
40             {
41                 o->error = OPROTO;
42                 return 0;
43             }
44             o->left--;
45 #ifdef ODR_DEBUG
46             fprintf(stderr, "[NULL]\n");
47 #endif
48             return 1;
49         case ODR_PRINT: return 1;
50         default: o->error = OOTHER; return 0;
51     }
52 }