aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/other/strint.c
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/other/strint.c')
-rw-r--r--sdk/other/strint.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/sdk/other/strint.c b/sdk/other/strint.c
new file mode 100644
index 0000000..f4291a1
--- /dev/null
+++ b/sdk/other/strint.c
@@ -0,0 +1,51 @@
+/*
+ * Convert integer to string, with optional leading zeros.
+ * $Id$
+ * Copyright (c) 1997 by Tycho Softworks.
+ * For conditions of distribution and reuse see product license.
+ */
+
+#include <other/strcvt.h>
+
+char *strint(long i, int z)
+{
+ static char buf[30];
+ char b1[30];
+ char *p = buf, *q = b1;
+ unsigned u;
+
+ if(!i)
+ {
+ if(z < 1)
+ z = 1;
+ while(z--)
+ *(p++) = '0';
+ *p = 0;
+ return buf;
+ }
+ if((i < 0) && !z)
+ {
+ i = -i;
+ buf[0] = '-';
+ ++p;
+ }
+ u = (unsigned)i;
+
+ while(u > 0)
+ {
+ *(q++) = (char)(u % 10) + '0';
+ u /= 10;
+ }
+ *q = 0;
+ z -= strlen(b1);
+ while(z-- > 0)
+ *(p++) = '0';
+
+ while(q > b1)
+ *(p++) = *(--q);
+ *p = 0;
+ return buf;
+}
+
+
+