summaryrefslogtreecommitdiff
path: root/libc/error/mktab.sh
blob: b5afcc4438ecb7f9640b3df573c3c2b9d2c52d48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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