]> git.ipfire.org Git - thirdparty/squid.git/blame - src/mk-globals-c.awk
Prep for 3.3.12 and 3.4.4
[thirdparty/squid.git] / src / mk-globals-c.awk
CommitLineData
0f3f9baa 1# tested with gawk, mawk, and nawk.
2# drop-in replacement for mk-globals-c.pl.
3# modified to work with Solaris awk (junk).
4# creates "globals.c" (on stdout) from "globals.h".
42c674fd 5# invoke similarly: perl mk-globals-c.pl globals.h
0f3f9baa 6# --> awk -f mk-globals-c.awk globals.h
7#
8# 2006 by Christopher Kerr.
9
10BEGIN { Copyright = 0
11 print "#include \"squid.h\"" }
12
13Copyright != 1 && /^ \*\/$/ { Copyright = 1; print; next }
14Copyright != 1 { print; next }
15/SQUID_GLOBALS_H/ { next }
16
17# arrays defined elsewhere
18/\[\];/ { next }
42c674fd 19/^extern \"C\"/ { print; next }
0f3f9baa 20
42c674fd 21#
22# Check exactly for lines beginning with " extern", generated
23# from astyle (grrrrr ...)
24#
b2bca226 25/^ *extern / { # process "^extern " input lines.
0f3f9baa 26 # 0 1 2 #######
27 # extern int variable; /* val */ --> int variable; /* val */ #######
28 ##########################################################################
b2bca226
FC
29 pos0 = index($0,"extern") #find how much whitespeace there is
30 str = substr($0,pos0,length($0))
31 len = length(str) - length("extern ") # sub(/extern /, "")
32 str = substr($0, length("extern ")+1, len) # strip "^extern ".
0f3f9baa 33
34 pos0 = index(str, ";") # position of ";".
35 pos1 = index(str, "/*") # position of "/*".
36 pos2 = index(str, "*/") # position of "*/".
37
38 if ( pos1 != 0 ) { # make assignment.
39
40 val = substr(str, pos1+3, pos2-pos1-4) # get comment value.
41 str = substr(str, 1, pos0-1) " = " val ";" # string to semi-colon.
42 }
43 print str; next # get next input line.
44}
45{ print } # C preprocessor lines.