et_name.c revision 65f0aab98b20b5994a726ab90d355248bcddfffd
1d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton/* 2d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * Copyright 1987 by MIT Student Information Processing Board 3d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * 4d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * Permission to use, copy, modify, and distribute this software and 5d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * its documentation for any purpose is hereby granted, provided that 6d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * the names of M.I.T. and the M.I.T. S.I.P.B. not be used in 7d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * advertising or publicity pertaining to distribution of the software 8d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * without specific, written prior permission. M.I.T. and the 9d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * M.I.T. S.I.P.B. make no representations about the suitability of 10d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * this software for any purpose. It is provided "as is" without 11d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton * express or implied warranty. 12d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton */ 13d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton 14d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton#include "com_err.h" 15d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton#include "error_table.h" 16d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton#include "internal.h" 17d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton 18d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Claytonstatic const char char_set[] = 19d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"; 20d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton 21d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Claytonstatic char buf[6]; 22d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton 23d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Claytonconst char * error_table_name(num) 24d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton errcode_t num; 25d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton{ 26d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton int ch; 27d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton int i; 28d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton char *p; 29d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton 30d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton /* num = aa aaa abb bbb bcc ccc cdd ddd d?? ??? ??? */ 31d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton p = buf; 32d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton num >>= ERRCODE_RANGE; 33d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton /* num = ?? ??? ??? aaa aaa bbb bbb ccc ccc ddd ddd */ 34d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton num &= 077777777L; 35d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton /* num = 00 000 000 aaa aaa bbb bbb ccc ccc ddd ddd */ 36d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton for (i = 4; i >= 0; i--) { 37d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton ch = (int)((num >> BITS_PER_CHAR * i) & ((1 << BITS_PER_CHAR) - 1)); 38d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton if (ch != 0) 39d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton *p++ = char_set[ch-1]; 40d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton } 41d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton *p = '\0'; 42d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton return(buf); 43d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton} 44d84cc042a09c9aa7f89f8b032ba3a346a25d9447Greg Clayton