L4Re/departure

libext2fs/lib/libet/et_name.c

617:2733e5770ee9
9 months ago Paul Boddie Made the run command wait for completion, introducing the spawn command to run programs in the background. Introduced conveniences for waiting for the last job to be initiated and for piping from the last job, also subscribing to signals from pipe-supplying jobs so that they may be transparently removed from the job list upon completion. Augmented the job listing with the "+" notation familiar from Unix. Prevented new jobs from being started when no job slots are available.
     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 }