aboutsummaryrefslogtreecommitdiff
path: root/core/rsync/files
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-04-30 11:22:07 +0300
committerCem Keylan <cem@ckyln.com>2020-04-30 11:22:07 +0300
commitd05d34425accf3a586de7f7c6df8dd7529e4c631 (patch)
treeabeee952cc6a757c952c5eeaf4fa7cd02a25131a /core/rsync/files
parent376b4914e8db81ec932acff57fded371b7d65164 (diff)
downloadrepository-d05d34425accf3a586de7f7c6df8dd7529e4c631.tar.gz
rsync: move back to core
Diffstat (limited to 'core/rsync/files')
-rw-r--r--core/rsync/files/mkproto.awk39
1 files changed, 39 insertions, 0 deletions
diff --git a/core/rsync/files/mkproto.awk b/core/rsync/files/mkproto.awk
new file mode 100644
index 00000000..d3802f95
--- /dev/null
+++ b/core/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"
+}