BEGIN { special = 0 } /ERRNOS/ { nerrnos = split(errnos, errs) for (i = 1; i <= nerrnos; ++i) # Some systems define errno codes inside undefined #ifdefs, # and then never actually use them. printf "#ifdef %s\n DO(\"%s\", %s);\n#endif\n", \ errs[i], errs[i], errs[i] special = 1 } { if (special == 0) print $0; special = 0 }