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>