]> git.saurik.com Git - apple/libc.git/blobdiff - stdlib/l64a.c
Libc-262.tar.gz
[apple/libc.git] / stdlib / l64a.c
diff --git a/stdlib/l64a.c b/stdlib/l64a.c
new file mode 100644 (file)
index 0000000..c666bc6
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+static char *rcsid = "$OpenBSD: l64a.c,v 1.3 1997/08/17 22:58:34 millert Exp $";
+#endif /* LIBC_SCCS and not lint */
+
+#include <errno.h>
+#include <stdlib.h>
+
+char *
+l64a(value)
+       long value;
+{
+       static char buf[8];
+       char *s = buf;
+       int digit;
+       int i;
+
+       if (value < 0) {
+               errno = EINVAL;
+               return(NULL);
+       }
+
+       for (i = 0; value != 0 && i < 6; i++) {
+               digit = value & 0x3f;
+
+               if (digit < 2) 
+                       *s = digit + '.';
+               else if (digit < 12)
+                       *s = digit + '0' - 2;
+               else if (digit < 38)
+                       *s = digit + 'A' - 12;
+               else
+                       *s = digit + 'a' - 38;
+
+               value >>= 6;
+               s++;
+       }
+
+       *s = '\0';
+
+       return(buf);
+}
+