l64a.c revision 1.8
1/*
2 * Written by J.T. Conklin <jtc@netbsd.org>.
3 * Public domain.
4 */
5
6#include <sys/cdefs.h>
7#if defined(LIBC_SCCS) && !defined(lint)
8__RCSID("$NetBSD: l64a.c,v 1.8 1998/11/15 17:13:51 christos Exp $");
9#endif
10
11#include "namespace.h"
12#include <stdlib.h>
13
14#ifdef __weak_alias
15__weak_alias(l64a,_l64a);
16#endif
17
18char *
19l64a (value)
20	long value;
21{
22	static char buf[8];
23	char *s = buf;
24	int digit;
25	int i;
26	unsigned long v = value;
27
28	if (!value)
29		goto out;
30
31	for (i = 0; v != 0 && i < 6; i++) {
32		digit = (int)(v & 0x3f);
33
34		if (digit < 2)
35			*s = digit + '.';
36		else if (digit < 12)
37			*s = digit + '0' - 2;
38		else if (digit < 38)
39			*s = digit + 'A' - 12;
40		else
41			*s = digit + 'a' - 38;
42		v >>= 6;
43		s++;
44	}
45
46out:
47	*s = '\0';
48
49	return buf;
50}
51