| #!/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 |
| } |
| } |