assert(nbits<=28);
while (bd->npending < nbits)
inputchar(bd);
- int newnpending = bd->pending - nbits;
- uint32_t rv = bd->pending >> newnpending;
- bd->pending &= ((uint32_t)1 << newnpending)-1;
- bd->npending = newnpending;
+ uint32_t rv = bd->pending & (((uint32_t)1 << nbits)-1);
+ bd->pending >>= nbits;
+ bd->npending -= nbits;
return rv;
}
uint32_t dnsdomaindec_getu32(struct dnsdomaindec *bd)
uint32_t msw=dnsdomaindec_getbits(bd,16);
return (msw << 16) | lsw;
}
-int dnsdomaindec_restbytes(struct dnsdomaindec *bd, uint8_t outbuf[MAX_DOMAIN_BYTES])
+int dnsdomaindec_restbytes(struct dnsdomaindec *bd,
+ uint8_t outbuf[MAX_DOMAIN_BYTES])
{
uint8_t *out = outbuf;
for (;;) {