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;