1#!/bin/sh - 2 3awk '{ 4 e=$0; 5 sub("^[^ ]* ", "", e); 6 sub(" [^ ]*$", "", e); 7 n=0+$1; 8 if (!(n in errlist)) 9 errlist[n] = e; 10 if(n > maxerr) maxerr=n; 11} 12END{ 13 printf ("#define NR_ERRORS\t%d\n", maxerr+1); 14 printf ("int sys_nerr = NR_ERRORS;\n"); 15 printf ("char *sys_errlist[NR_ERRORS] = {\n"); 16 17 for(i=0; i<=maxerr; i++) { 18 if (errlist[i] == "") 19 printf(" \"Error %d\"", i); 20 else 21 printf(" \"%s\"", errlist[i]); 22 if (i != maxerr) printf(",\n"); else printf("\n"); 23 } 24 printf ("};\n"); 25}' < liberror.txt > error_list.h 26