4.4BSD/usr/src/kerberosIV/compile_et/et_name.c

Compare this file to the similar file:
Show the results in this format:

/*
 * Copyright 1987 by MIT Student Information Processing Board
 *
 * For copyright info, see mit-sipb-copyright.h.
 */

#include "error_table.h"
#include "mit-sipb-copyright.h"

static char copyright[] = "Copyright 1987 by MIT Student Information Processing Board";

char *malloc();

char *
error_table_name(num)
	int num;
{
	register int ch;
	register int i;
	register char *buf, *p;

	/* num = aa aaa abb bbb bcc ccc cdd ddd d?? ??? ??? */
	buf = malloc(5);
	p = buf;
	num >>= ERRCODE_RANGE;
	/* num = ?? ??? ??? aaa aaa bbb bbb ccc ccc ddd ddd */
	num &= 077777777;
	/* num = 00 000 000 aaa aaa bbb bbb ccc ccc ddd ddd */
	for (i = 0; i < 5; i++) {
		ch = (num >> 24-6*i) & 077;
		if (ch == 0)
			continue;
		else if (ch < 27)
			*p++ = ch - 1 + 'A';
		else if (ch < 53)
			*p++ = ch - 27 + 'a';
		else if (ch < 63)
			*p++ = ch - 53 + '0';
		else		/* ch == 63 */
			*p++ = '_';
	}
	return(buf);
}