| #!/usr/bin/awk -f | 
 | #  | 
 | # Usage: awk -f separate.awk foo.SUSv4.in | 
 | # Input: http://www.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html#tag_13_77_03_06 | 
 | # Output: foo-$CODE.SUSv4.syms, foo.SUSv4.syms | 
 | # | 
 | # Copyright (C) 2010 Bernhard Reutner-Fischer | 
 | # Public domain | 
 |  | 
 | function get_code(line) | 
 | { | 
 | 	sub("\\]\\[.*", "", line) | 
 | 	sub("\\[", "", line) | 
 | 	sub(" ", "", line) | 
 | 	return line | 
 | } | 
 | BEGIN{ | 
 | 	code="";# feature set; XSI, OB XSI, CX, etc | 
 |  | 
 | } | 
 | /\[Option Start\]/{ | 
 | 	code = get_code($0) | 
 | 	next | 
 | } | 
 | /\[Option End\]/{ code = ""; next; } | 
 | /.*/ { | 
 | 	if (!hdrname) { | 
 | 		split(FILENAME, fparts, ".") | 
 | 		hdrname = fparts[1] | 
 | 		stdname = fparts[2] | 
 | 		if (fparts[3] != "in") { | 
 | 			print "inputfilename may not be ok, exiting." | 
 | 			exit(1) | 
 | 		} | 
 | 	} | 
 | 	if (code) { | 
 | 		fname = hdrname "-" code "." stdname ".syms" | 
 | 	} else { | 
 | 		fname = hdrname "." stdname ".syms" | 
 | 	} | 
 | 	sub("^*", "", $0) | 
 | 	if (file[code]) { | 
 | 		print $0 >> fname | 
 | 	} else { | 
 | 		print $0 > fname | 
 | 		file[code] = 1 | 
 | 	} | 
 | } |