sigconv.awk revision 24140
1BEGIN		{
2		    nsig = 0;
3		    j = 0;
4		    print "/* This file was automatically generated */"
5		    print "/* by the awk script \"sigconv.awk\".      */\n"
6		    print "struct sigdesc {"
7		    print "    char *name;"
8		    print "    int  number;"
9		    print "};\n"
10		    print "struct sigdesc sigdesc[] = {"
11		}
12
13/^#define[ \t][ \t]*SIG[A-Z]/	{
14
15				    j = sprintf("%d", $3);
16				    str = $2;
17
18				    if (nsig < j) 
19					nsig = j;
20
21				    siglist[j] = sprintf("\"%s\",\t%2d,", \
22						substr(str, 4), j);
23				}
24/^#[ \t]*define[ \t][ \t]*SIG[A-Z]/	{
25
26				    j = sprintf("%d", $4);
27				    str = $3;
28
29				    if (nsig < j)
30					nsig = j;
31
32				    siglist[j] = sprintf("\"%s\",\t%2d,", \
33						substr(str, 4), j);
34				}
35/^#[ \t]*define[ \t][ \t]*_SIG[A-Z]/	{
36
37				    j = sprintf("%d", $4);
38				    str = $3;
39
40				    if (nsig < j)
41					nsig = j;
42
43				    siglist[j] = sprintf("\"%s\",\t%2d,", \
44					    substr(str, 5), j);
45				}
46
47END				{
48				    for (n = 1; n <= nsig; n++) 
49					if (siglist[n] != "")
50					    printf("    %s\n", siglist[n]);
51
52				    printf("    NULL,\t 0\n};\n");
53				}
54