Annotation of embedaddon/rsync/mkproto.awk, revision 1.1.1.1
1.1 misho 1: #!/usr/bin/awk -f
2:
3: BEGIN {
4: while ((getline i < "proto.h") > 0) old_protos = old_protos ? old_protos "\n" i : i
5: close("proto.h")
6: protos = "/* This file is automatically generated with \"make proto\". DO NOT EDIT */\n"
7: }
8:
9: inheader {
10: protos = protos "\n" ((inheader = /\)[ \t]*$/ ? 0 : 1) ? $0 : $0 ";")
11: next
12: }
13:
14: /^FN_(LOCAL|GLOBAL)_[^(]+\([^,()]+/ {
15: local = /^FN_LOCAL/
16: gsub(/^FN_(LOC|GLOB)AL_|,.*$/, "")
17: sub(/^BOOL\(/, "BOOL ")
18: sub(/^CHAR\(/, "char ")
19: sub(/^INTEGER\(/, "int ")
20: sub(/^STRING\(/, "char *")
21: protos = protos "\n" $0 (local ? "(int module_id);" : "(void);")
22: next
23: }
24:
25: /^static|^extern|;/||!/^[A-Za-z][A-Za-z0-9_]* / { next }
26:
27: /\(.*\)[ \t]*$/ {
28: protos = protos "\n" $0 ";"
29: next
30: }
31:
32: /\(/ {
33: inheader = 1
34: protos = protos "\n" $0
35: }
36:
37: END {
38: if (old_protos != protos) print protos > "proto.h"
39: system("touch proto.h-tstamp")
40: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>