Update limits for passing tests
diff --git a/include/bc.h b/include/bc.h
index 6960fb0..478f783 100644
--- a/include/bc.h
+++ b/include/bc.h
@@ -25,6 +25,7 @@
#include <stdint.h>
#include <stdlib.h>
+#include <limits.h>
#define BC_FLAG_WARN (1<<0)
#define BC_FLAG_STANDARD (1<<1)
@@ -39,10 +40,10 @@
#define BC_INVALID_IDX ((size_t) -1)
-#define BC_BASE_MAX_DEF (99)
-#define BC_DIM_MAX_DEF (2048)
-#define BC_SCALE_MAX_DEF (99)
-#define BC_STRING_MAX_DEF (1024)
+#define BC_BASE_MAX_DEF (999)
+#define BC_DIM_MAX_DEF (INT_MAX)
+#define BC_SCALE_MAX_DEF (LONG_MAX)
+#define BC_STRING_MAX_DEF (INT_MAX)
typedef enum BcStatus {
diff --git a/src/bc/program.c b/src/bc/program.c
index 5f5de2a..7f48b29 100644
--- a/src/bc/program.c
+++ b/src/bc/program.c
@@ -1307,6 +1307,7 @@
p->base_max = BC_BASE_MAX_DEF;
}
else if (p->base_max > BC_BASE_MAX_DEF) return BC_STATUS_INVALID_LIMIT;
+ else p->base_max = BC_BASE_MAX_DEF;
#endif
#ifdef _POSIX_BC_DIM_MAX
@@ -1322,6 +1323,7 @@
p->dim_max = BC_DIM_MAX_DEF;
}
else if (p->dim_max > BC_DIM_MAX_DEF) return BC_STATUS_INVALID_LIMIT;
+ else p->dim_max = BC_DIM_MAX_DEF;
#endif
#ifdef _POSIX_BC_SCALE_MAX
@@ -1337,6 +1339,7 @@
p->scale_max = BC_SCALE_MAX_DEF;
}
else if (p->scale_max > BC_SCALE_MAX_DEF) return BC_STATUS_INVALID_LIMIT;
+ else p->scale_max = BC_SCALE_MAX_DEF;
#endif
#ifdef _POSIX_BC_STRING_MAX
@@ -1352,6 +1355,7 @@
p->string_max = BC_STRING_MAX_DEF;
}
else if (p->string_max > BC_STRING_MAX_DEF) return BC_STATUS_INVALID_LIMIT;
+ else p->string_max = BC_STRING_MAX_DEF;
#endif
p->scale = 0;
@@ -1561,7 +1565,7 @@
printf("BC_SCALE_MAX = %ld\n", p->scale_max);
printf("BC_STRING_MAX = %ld\n", p->string_max);
printf("Max Exponent = %ld\n", LONG_MAX);
- printf("Number of Vars = %u\n", UINT32_MAX);
+ printf("Number of Vars = %zu\n", SIZE_MAX);
putchar('\n');
}