From: ceriel Date: Mon, 27 Nov 1989 17:29:35 +0000 (+0000) Subject: speeded up a bit for printing 0.0 X-Git-Tag: release-5-5~2037 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=86b6eab206bf88de15e1f04f271e1a13b5675d45;p=ack.git speeded up a bit for printing 0.0 --- diff --git a/lang/cem/libcc/gen/ext_comp.c b/lang/cem/libcc/gen/ext_comp.c index e990d541a..e6b1edc15 100644 --- a/lang/cem/libcc/gen/ext_comp.c +++ b/lang/cem/libcc/gen/ext_comp.c @@ -608,18 +608,20 @@ _ext_str_cvt(e, ndigit, decpt, sign, ecvtflag) if (pe > &buf[NDIGITS]) pe = &buf[NDIGITS]; } while (p <= pe) { - if (e->exp >= 0) { + if (e->exp >= 0 && e->m1 != 0) { struct EXTEND x; x.m2 = 0; x.exp = e->exp; x.sign = 1; x.m1 = e->m1>>(31-e->exp); *p++ = (x.m1) + '0'; - x.m1 = x.m1 << (31-e->exp); - add_ext(e, &x, e); + if (x.m1) { + x.m1 = x.m1 << (31-e->exp); + add_ext(e, &x, e); + } } else *p++ = '0'; - mul_ext(e, &ten_powers[1], e); + if (e->m1) mul_ext(e, &ten_powers[1], e); } if (pe >= buf) { p = pe;