aboutsummaryrefslogtreecommitdiff
path: root/miscutils/bc.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--miscutils/bc.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index ea200ebda..07793e9d4 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -1676,6 +1676,10 @@ static BcStatus bc_num_k(BcNum *restrict a, BcNum *restrict b,
1676 1676
1677 c->num[i + j] += (BcDig) carry; 1677 c->num[i + j] += (BcDig) carry;
1678 len = BC_MAX(len, i + j + !!carry); 1678 len = BC_MAX(len, i + j + !!carry);
1679
1680 // a=2^1000000
1681 // a*a <- without check below, this will not be interruptible
1682 if (G_interrupt) return BC_STATUS_FAILURE;
1679 } 1683 }
1680 1684
1681 c->len = len; 1685 c->len = len;
@@ -1935,11 +1939,11 @@ static BcStatus bc_num_p(BcNum *a, BcNum *b, BcNum *restrict c, size_t scale)
1935 powrdx <<= 1; 1939 powrdx <<= 1;
1936 s = bc_num_mul(&copy, &copy, &copy, powrdx); 1940 s = bc_num_mul(&copy, &copy, &copy, powrdx);
1937 if (s) goto err; 1941 if (s) goto err;
1938 // It is too slow to handle ^C only after entire "2^1000000" completes 1942 // Not needed: bc_num_mul() has a check for ^C:
1939 if (G_interrupt) { 1943 //if (G_interrupt) {
1940 s = BC_STATUS_FAILURE; 1944 // s = BC_STATUS_FAILURE;
1941 goto err; 1945 // goto err;
1942 } 1946 //}
1943 } 1947 }
1944 1948
1945 bc_num_copy(c, &copy); 1949 bc_num_copy(c, &copy);
@@ -1955,11 +1959,11 @@ static BcStatus bc_num_p(BcNum *a, BcNum *b, BcNum *restrict c, size_t scale)
1955 s = bc_num_mul(c, &copy, c, resrdx); 1959 s = bc_num_mul(c, &copy, c, resrdx);
1956 if (s) goto err; 1960 if (s) goto err;
1957 } 1961 }
1958 // It is too slow to handle ^C only after entire "2^1000000" completes 1962 // Not needed: bc_num_mul() has a check for ^C:
1959 if (G_interrupt) { 1963 //if (G_interrupt) {
1960 s = BC_STATUS_FAILURE; 1964 // s = BC_STATUS_FAILURE;
1961 goto err; 1965 // goto err;
1962 } 1966 //}
1963 } 1967 }
1964 1968
1965 if (neg) { 1969 if (neg) {