From: Adam Dickmeiss Date: Fri, 16 Jan 2009 14:55:13 +0000 (+0100) Subject: BITSTRING value shows value. Bug #2346 X-Git-Tag: v3.0.42~11 X-Git-Url: http://lists.indexdata.dk/?a=commitdiff_plain;h=bf0ac0c751ab677318e0a92a8e40145e0e4623b9;p=yaz-moved-to-github.git BITSTRING value shows value. Bug #2346 --- diff --git a/src/odr_bit.c b/src/odr_bit.c index 6b615d5..b7dcd76 100644 --- a/src/odr_bit.c +++ b/src/odr_bit.c @@ -37,8 +37,20 @@ int odr_bitstring(ODR o, Odr_bitmask **p, int opt, const char *name) return odr_missing(o, opt, name); if (o->direction == ODR_PRINT) { + int i = ODR_BITMASK_SIZE; + int j; odr_prname(o, name); - odr_printf(o, "BITSTRING(len=%d)\n",(*p)->top + 1); + odr_printf(o, "BITSTRING(len=%d) ",(*p)->top + 1); + while (--i > 0) + if (ODR_MASK_GET(*p, i)) + break; + for (j = 0; j <= i; j++) + { + odr_printf(o, "%c", ODR_MASK_GET(*p, j) ? '1' : '0'); + if (j && ((j+1)&7) == 0) + odr_printf(o, "-"); + } + odr_printf(o, "\n"); return 1; } if (o->direction == ODR_DECODE)