+## Copyright (C) 1996-2015 The Squid Software Foundation and contributors
+##
+## Squid software is distributed under GPLv2+ license and includes
+## contributions from numerous individuals and organizations.
+## Please see the COPYING and CONTRIBUTORS files for details.
+##
+
# tested with gawk, mawk, and nawk.
# drop-in replacement for mk-string-arrays.pl.
# creates "enum.c" (on stdout) from "enum.h".
print "/*"
print " * Auto-Generated File. Changes will be destroyed."
print " */"
- print "#include \"config.h\""
+ print "#include \"squid.h\""
codeSkip = 1
e = 0
nspath = ""
}
# when namespace is encountered store it
-/^namespace [a-zA-Z]+/ {
+/^namespace *[a-zA-Z]+/ {
nspath = tolower($2) "/" # nested folder
namespace = $2 # code namespace reconstruct
next
/^[ \t]*[A-Z]/ {
split($1, t, ",") # remove ,
- Element[++e] = t[1]
+ if (sbuf) Element[++e] = "SBuf(\"" t[1] "\")"
+ else Element[++e] = "\"" t[1] "\""
+ next
+}
+
+/^#/ {
+ if (codeSkip) next
+
+ Wrapper[++e] = $0
next
}
type = t[1]
codeSkip = 1
+ if (sbuf) print "#include \"SBuf.h\""
print "#include \"" nspath type ".h\""
# if namesapce is not empty ??
if (namespace) print "namespace " namespace
if (namespace) print "{"
- print "\nconst char *" type "_str[] = {"
+ if (sbuf) print "\nconst SBuf " type "_sb[] = {"
+ else print "\nconst char * " type "_str[] = {"
for ( i = 1; i < e; ++i)
- print "\t\"" Element[i] "\","
- print "\t\"" Element[i] "\""
+ if (Wrapper[i]) print Wrapper[i]
+ else print "\t" Element[i] ","
+
+ print "\t" Element[i]
print "};"
if (namespace) print "}; // namespace " namespace
next