Fix bugs found in debugging add function
diff --git a/src/bc/num.c b/src/bc/num.c
index 81e48c2..f219a54 100644
--- a/src/bc/num.c
+++ b/src/bc/num.c
@@ -619,7 +619,7 @@
i = scale - 1;
- while (i >= min) {
+ while (i < scale && i >= min) {
ptr_c[i] = ptr[i];
--i;
}
@@ -682,7 +682,7 @@
i = scale - 1;
while (i < scale) {
- *ptr_c = ptr[i];
+ *ptr_c += ptr[i];
--ptr_c;
--i;
}
@@ -1076,6 +1076,9 @@
memmove(n->num, ptr, i * sizeof(char));
+ n->len -= i;
+ n->rdx -= i;
+
memset(n->num + n->len, 0, sizeof(char) * (n->cap - n->len));
return BC_STATUS_SUCCESS;