diff options
author | Cem Keylan <cem@ckyln.com> | 2020-04-25 12:12:24 +0300 |
---|---|---|
committer | Cem Keylan <cem@ckyln.com> | 2020-04-25 12:12:24 +0300 |
commit | 96fcfde6452f55e1b7a7c4dea70f5219e02d4cf3 (patch) | |
tree | 2d59ea335ed20f538fe71d04b2d14fb16dce4d3f /extra/rsync/files/mkproto.awk | |
parent | 49d08d2e868ac078044fdda368735fc7166300a5 (diff) | |
download | repository-96fcfde6452f55e1b7a7c4dea70f5219e02d4cf3.tar.gz |
rsync: move to extra
Diffstat (limited to 'extra/rsync/files/mkproto.awk')
-rw-r--r-- | extra/rsync/files/mkproto.awk | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/extra/rsync/files/mkproto.awk b/extra/rsync/files/mkproto.awk new file mode 100644 index 00000000..d3802f95 --- /dev/null +++ b/extra/rsync/files/mkproto.awk @@ -0,0 +1,39 @@ +#!/usr/bin/awk -f + +BEGIN { + while ((getline i < "proto.h") > 0) old_protos = old_protos ? old_protos "\n" i : i + 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 *") + 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" + print "" > "proto.h-tstamp" +} |