summaryrefslogtreecommitdiff
path: root/pkg/strace/printers.awk
blob: cb3fa15ad67c0d3c8dcd2f695690c812aa9442dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
BEGIN {
	FS = "\\(|\\)|, "
	OFS = ", "
	print "typedef struct {"
}

$1 == "MPERS_PRINTER_DECL" {
	printf " %s (*%s)(%s", $2, $3, $4
	for (i = 5; i < NF; ++i)
		printf ", %s", $i
	print ");"
	print "#define " $3 " MPERS_PRINTER_NAME(" $3 ")\n"
}

END {
	print "} struct_printers;"
	print "extern const struct_printers *printers;"
	print "#define MPERS_PRINTER_NAME(printer_name) printers->printer_name"
}