From e8464a391ad260860795a69bcd1bcf6940cc17de Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Wed, 29 Mar 1995 15:39:57 +0000 Subject: [PATCH] Fixed bugs in the bitmask operations --- odr/test.c | 50 +++++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/odr/test.c b/odr/test.c index 854f89b..013eefb 100644 --- a/odr/test.c +++ b/odr/test.c @@ -2,6 +2,8 @@ #include #include +#if 0 + typedef Odr_bitmask Z_ReferenceId; typedef struct Z_InitRequest @@ -133,30 +135,32 @@ int main() } #endif +#endif + int main() { - struct A ch, *chp1, *chp2; - int b = 9999; - char *c = "Nu tester vi en satans forpulet CHOICE!"; - struct odr o; - unsigned char buf[4096]; - - ch.u.c = c; - ch.which = 1; - chp1 = &ch; - - o.buf = buf; - o.bp=o.buf; - o.left = o.buflen = 1024; - o.direction = ODR_ENCODE; - o.t_class = -1; - - f_A(&o, &chp1, 0); - - o.direction = ODR_DECODE; - o.bp = o.buf; + Odr_bitmask a; + char command; + int val; + char line[100]; - f_A(&o, &chp2, 0); - - return 0; + ODR_MASK_ZERO(&a); + while (gets(line)) + { + int i; + + sscanf(line, "%c %d", &command, &val); + switch (command) + { + case 's': ODR_MASK_SET(&a, val); break; + case 'c': ODR_MASK_CLEAR(&a, val); break; + case 'g': printf("%d\n", ODR_MASK_GET(&a, val)); break; + case 'l': break; + default: printf("enter c or s or l\n"); continue; + } + printf("top is %d\n", a.top); + for (i = 0; i <= a.top; i++) + printf("%2.2x ", a.bits[i] ); + printf("\n"); + } } -- 1.7.10.4