diff options
Diffstat (limited to 'libc/error/mktab.sh')
-rw-r--r-- | libc/error/mktab.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libc/error/mktab.sh b/libc/error/mktab.sh new file mode 100644 index 0000000..b5afcc4 --- /dev/null +++ b/libc/error/mktab.sh @@ -0,0 +1,25 @@ +#!/bin/sh - + +awk '{ + e=$0; + sub("^[^ ]* ", "", e); + sub(" [^ ]*$", "", e); + n=0+$1; + if (!(n in errlist)) + errlist[n] = e; + if(n > maxerr) maxerr=n; +} +END{ + printf ("#define NR_ERRORS\t%d\n", maxerr+1); + printf ("int sys_nerr = NR_ERRORS;\n"); + printf ("char *sys_errlist[NR_ERRORS] = {\n"); + + for(i=0; i<=maxerr; i++) { + if (errlist[i] == "") + printf(" \"Error %d\"", i); + else + printf(" \"%s\"", errlist[i]); + if (i != maxerr) printf(",\n"); else printf("\n"); + } + printf ("};\n"); +}' < liberror.txt > error_list.h |