L4Re/departure

libext2fs/lib/libet/et_name.c

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