sigconv.awk revision 285830
1178476Sjb# $FreeBSD: releng/10.2/contrib/top/sigconv.awk 164784 2006-12-01 07:01:19Z keramida $
2178476Sjb
3178476SjbBEGIN		{
4178476Sjb		    nsig = 0;
5178476Sjb		    j = 0;
6178476Sjb		    print "/* This file was automatically generated */"
7178476Sjb		    print "/* by the awk script \"sigconv.awk\".      */\n"
8178476Sjb		    print "struct sigdesc {"
9178476Sjb		    print "    char *name;"
10178476Sjb		    print "    int  number;"
11178476Sjb		    print "};\n"
12178476Sjb		    print "struct sigdesc sigdesc[] = {"
13178476Sjb		}
14178476Sjb
15178476Sjb/^#define[ \t][ \t]*SIG[A-Z]+[0-9]*[ \t]/	{
16178476Sjb
17178476Sjb				    j = sprintf("%d", $3);
18178476Sjb				    str = $2;
19178476Sjb
20178476Sjb				    if (nsig < j) 
21178476Sjb					nsig = j;
22178476Sjb
23178476Sjb				    siglist[j] = sprintf("{ \"%s\",\t%2d },", \
24178476Sjb						substr(str, 4), j);
25178476Sjb				}
26178476Sjb/^#[ \t]*define[ \t][ \t]*SIG[A-Z]+[0-9]*[ \t]/	{
27178476Sjb
28178476Sjb				    j = sprintf("%d", $4);
29178476Sjb				    str = $3;
30178476Sjb
31178476Sjb				    if (nsig < j)
32178476Sjb					nsig = j;
33178476Sjb
34178476Sjb				    siglist[j] = sprintf("{ \"%s\",\t%2d },", \
35178476Sjb						substr(str, 4), j);
36178476Sjb				}
37178476Sjb/^#[ \t]*define[ \t][ \t]*_SIG[A-Z]+[0-9]*[ \t]/	{
38178476Sjb
39178476Sjb				    j = sprintf("%d", $4);
40178476Sjb				    str = $3;
41178476Sjb
42178476Sjb				    if (nsig < j)
43					nsig = j;
44
45				    siglist[j] = sprintf("{ \"%s\",\t%2d },", \
46					    substr(str, 5), j);
47				}
48
49END				{
50				    for (n = 1; n <= nsig; n++) 
51					if (siglist[n] != "")
52					    printf("    %s\n", siglist[n]);
53
54				    printf("    { NULL,\t 0 }\n};\n");
55				}
56