summaryrefslogtreecommitdiff
path: root/byterun/ints.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/ints.c')
-rw-r--r--byterun/ints.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/byterun/ints.c b/byterun/ints.c
deleted file mode 100644
index 4a4f767225..0000000000
--- a/byterun/ints.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include <stdio.h>
-#include "alloc.h"
-#include "fail.h"
-#include "memory.h"
-#include "mlvalues.h"
-
-value int_of_string(s) /* ML */
- value s;
-{
- long res;
- int sign;
- int base;
- char * p;
- int c, d;
-
- p = String_val(s);
- if (*p == 0) failwith("int_of_string");
- sign = 1;
- if (*p == '-') {
- sign = -1;
- p++;
- }
- base = 10;
- if (*p == '0') {
- switch (p[1]) {
- case 'x': case 'X':
- base = 16; p += 2; break;
- case 'o': case 'O':
- base = 8; p += 2; break;
- case 'b': case 'B':
- base = 2; p += 2; break;
- }
- }
- res = 0;
- while (1) {
- c = *p;
- if (c >= '0' && c <= '9')
- d = c - '0';
- else if (c >= 'A' && c <= 'F')
- d = c - 'A' + 10;
- else if (c >= 'a' && c <= 'f')
- d = c - 'a' + 10;
- else
- break;
- if (d >= base) break;
- res = base * res + d;
- p++;
- }
- if (*p != 0)
- failwith("int_of_string");
- return Val_long(sign < 0 ? -res : res);
-}
-
-value format_int(fmt, arg) /* ML */
- value fmt, arg;
-{
- char format_buffer[32];
- int prec;
- char * p;
- char * dest;
- value res;
-
- prec = 32;
- for (p = String_val(fmt); *p != 0; p++) {
- if (*p >= '0' && *p <= '9') {
- prec = atoi(p) + 5;
- break;
- }
- }
- if (prec <= sizeof(format_buffer)) {
- dest = format_buffer;
- } else {
- dest = stat_alloc(prec);
- }
- sprintf(dest, String_val(fmt), Long_val(arg));
- res = copy_string(dest);
- if (dest != format_buffer) {
- stat_free(dest);
- }
- return res;
-}