Annotation of embedaddon/rsync/mkproto.awk, revision 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>