diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-10 12:57:01 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-10 12:57:01 +0100 |
commit | a7f1a3654041ed4b1d4716f71a8396977aca8223 (patch) | |
tree | 122ec83245361be7d0ad96d13e2b20b2620f5772 /miscutils/bc.c | |
parent | 44d79d866dc4c9bb0c3bba47612feae78365a046 (diff) |
bc: simplify bc_program_len()
function old new delta
bc_program_len 42 34 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils/bc.c')
-rw-r--r-- | miscutils/bc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c index 1879581e3..afd5c8d0e 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -6254,12 +6254,14 @@ static unsigned long bc_program_scale(BcNum *n) static unsigned long bc_program_len(BcNum *n) { - unsigned long len = n->len; - size_t i; - - if (n->rdx != n->len) return len; - for (i = n->len - 1; i < n->len && n->num[i] == 0; --len, --i); + size_t len = n->len; + if (n->rdx != len) return len; + for (;;) { + if (len == 0) break; + len--; + if (n->num[len] != 0) break; + } return len; } |