41 lines · 938 B · Text
RawDownload
#!/usr/bin/awk -f BEGIN {    while ((getline i < "proto.h") > 0) old_protos = old_protos ? old_protos "\n" i : i    close("proto.h")    protos = "/* This file is automatically generated with \"make proto\". DO NOT EDIT */\n"} inheader {    protos = protos "\n" ((inheader = /\)[ \t]*$/ ? 0 : 1) ? $0 : $0 ";")    next} /^FN_(LOCAL|GLOBAL)_[^(]+\([^,()]+/ {    local = /^FN_LOCAL/    gsub(/^FN_(LOC|GLOB)AL_|,.*$/, "")    sub(/^BOOL\(/, "BOOL ")    sub(/^CHAR\(/, "char ")    sub(/^INTEGER\(/, "int ")    sub(/^STRING\(/, "char *")    sub(/^STRING_SHELL\(/, "char *")    protos = protos "\n" $0 (local ? "(int module_id);" : "(void);")    next} /^static|^extern|;/||!/^[A-Za-z][A-Za-z0-9_]* / { next } /\(.*\)[ \t]*$/ {    protos = protos "\n" $0 ";"    next} /\(/ {    inheader = 1    protos = protos "\n" $0} END {    if (old_protos != protos) print protos > "proto.h"    system("touch proto.h-tstamp")}