diff options
author | William Harrington <kb0iic@berzerkula.org> | 2025-01-14 16:06:02 -0600 |
---|---|---|
committer | William Harrington <kb0iic@berzerkula.org> | 2025-01-14 16:06:02 -0600 |
commit | 0cc9b20c15460213e488bf5e70963b941482f628 (patch) | |
tree | bb0143245583ec846630f39bfa2258dba640ccd7 /sdk/other/strint.c | |
parent | 0e084ade5069756d487b5c948c48b777e37c00c9 (diff) |
Add source.
Diffstat (limited to 'sdk/other/strint.c')
-rw-r--r-- | sdk/other/strint.c | 51 |
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; +} + + + |