BcNum copy;
unsigned long pow;
size_t i, powrdx, resrdx;
- bool neg, zero;
+ bool neg;
if (b->rdx) RETURN_STATUS(bc_error("non integer number"));
bc_num_copy(c, ©);
for (resrdx = powrdx, pow >>= 1; pow != 0; pow >>= 1) {
-
powrdx <<= 1;
s = zbc_num_mul(©, ©, ©, powrdx);
if (s) goto err;
if (c->rdx > scale) bc_num_truncate(c, c->rdx - scale);
// We can't use bc_num_clean() here.
- for (zero = true, i = 0; zero && i < c->len; ++i) zero = !c->num[i];
- if (zero) bc_num_setToZero(c, scale);
+ for (i = 0; i < c->len; ++i)
+ if (c->num[i] != 0)
+ goto skip;
+ bc_num_setToZero(c, scale);
+ skip:
-err:
+ err:
bc_num_free(©);
RETURN_STATUS(s);
}
l->t.t = BC_LEX_STR;
- for (c = l->buf[i]; c != 0 && c != '"'; c = l->buf[++i])
+ for (c = l->buf[i]; c != '\0' && c != '"'; c = l->buf[++i])
nls += (c == '\n');
if (c == '\0') {
static char *bc_program_name(char *code, size_t *bgn)
{
size_t i;
- char c, *s, *str = code + *bgn, *ptr = strchr(str, BC_PARSE_STREND);
+ char *s, *str = code + *bgn, *ptr = strchr(str, BC_PARSE_STREND);
s = xmalloc(ptr - str + 1);
- c = code[(*bgn)++];
-
- for (i = 0; c != 0 && c != BC_PARSE_STREND; c = code[(*bgn)++], ++i)
- s[i] = c;
-
+ i = 0;
+ for (;;) {
+ char c = code[(*bgn)++];
+ if (c == '\0' || c == BC_PARSE_STREND)
+ break;
+ s[i++] = c;
+ }
s[i] = '\0';
return s;