l64a.c revision 1.4
11.1Sjtc/*
21.4Sjtc * Written by J.T. Conklin <jtc@netbsd.org>.
31.4Sjtc * Public domain.
41.1Sjtc */
51.1Sjtc
61.1Sjtc#if defined(LIBC_SCCS) && !defined(lint)
71.4Sjtcstatic char *rcsid = "$NetBSD: l64a.c,v 1.4 1995/05/11 23:03:44 jtc Exp $";
81.1Sjtc#endif
91.1Sjtc
101.1Sjtc#include <stdlib.h>
111.1Sjtc
121.1Sjtcchar *
131.1Sjtcl64a (value)
141.1Sjtc	long value;
151.1Sjtc{
161.1Sjtc	static char buf[8];
171.1Sjtc	char *s = buf;
181.1Sjtc	int digit;
191.1Sjtc	int i;
201.1Sjtc
211.1Sjtc	if (!value)
221.1Sjtc		return NULL;
231.1Sjtc
241.1Sjtc	for (i = 0; value != 0 && i < 6; i++) {
251.1Sjtc		digit = value & 0x3f;
261.1Sjtc
271.1Sjtc		if (digit < 2)
281.1Sjtc			*s = digit + '.';
291.1Sjtc		else if (digit < 12)
301.1Sjtc			*s = digit + '0' - 2;
311.1Sjtc		else if (digit < 38)
321.1Sjtc			*s = digit + 'A' - 12;
331.1Sjtc		else
341.1Sjtc			*s = digit + 'a' - 38;
351.1Sjtc
361.1Sjtc		value >>= 6;
371.1Sjtc		s++;
381.1Sjtc	}
391.1Sjtc
401.1Sjtc	*s = '\0';
411.1Sjtc
421.1Sjtc	return buf;
431.1Sjtc}
44