1 | BEGIN {
|
---|
2 | inheader=0;
|
---|
3 | # use_ldap_define = 0;
|
---|
4 | current_file="";
|
---|
5 | if (headername=="") {
|
---|
6 | headername="_PROTO_H_";
|
---|
7 | }
|
---|
8 |
|
---|
9 | print "#ifndef",headername
|
---|
10 | print "#define",headername
|
---|
11 | print ""
|
---|
12 | print "/* This file is automatically generated with \"make proto\". DO NOT EDIT */"
|
---|
13 | print ""
|
---|
14 | }
|
---|
15 |
|
---|
16 | END {
|
---|
17 | print ""
|
---|
18 | print "#endif /* ",headername," */"
|
---|
19 | }
|
---|
20 |
|
---|
21 | {
|
---|
22 | if (FILENAME!=current_file) {
|
---|
23 | # if (use_ldap_define)
|
---|
24 | # {
|
---|
25 | # print "#endif /* USE_LDAP */"
|
---|
26 | # use_ldap_define = 0;
|
---|
27 | # }
|
---|
28 | print ""
|
---|
29 | print "/* The following definitions come from",FILENAME," */"
|
---|
30 | print ""
|
---|
31 | current_file=FILENAME
|
---|
32 | }
|
---|
33 | if (inheader) {
|
---|
34 | if (match($0,"[)][ \t]*$")) {
|
---|
35 | inheader = 0;
|
---|
36 | printf "%s;\n",$0;
|
---|
37 | } else {
|
---|
38 | printf "%s\n",$0;
|
---|
39 | }
|
---|
40 | next;
|
---|
41 | }
|
---|
42 | }
|
---|
43 |
|
---|
44 | # we handle the loadparm.c fns separately
|
---|
45 |
|
---|
46 | /^FN_LOCAL_BOOL/ {
|
---|
47 | split($0,a,"[,()]")
|
---|
48 | printf "bool %s(int );\n", a[2]
|
---|
49 | }
|
---|
50 |
|
---|
51 | /^FN_LOCAL_PARM_BOOL/ {
|
---|
52 | split($0,a,"[,()]")
|
---|
53 | printf "bool %s(const struct share_params *p );\n", a[2]
|
---|
54 | }
|
---|
55 |
|
---|
56 | /^FN_LOCAL_PARM_INTEGER/ {
|
---|
57 | split($0,a,"[,()]")
|
---|
58 | printf "int %s(const struct share_params *p );\n", a[2]
|
---|
59 | }
|
---|
60 |
|
---|
61 | /^FN_LOCAL_LIST/ {
|
---|
62 | split($0,a,"[,()]")
|
---|
63 | printf "const char **%s(int );\n", a[2]
|
---|
64 | }
|
---|
65 |
|
---|
66 | /^FN_LOCAL_STRING/ {
|
---|
67 | split($0,a,"[,()]")
|
---|
68 | printf "char *%s(int );\n", a[2]
|
---|
69 | }
|
---|
70 |
|
---|
71 | /^FN_LOCAL_PARM_STRING/ {
|
---|
72 | split($0,a,"[,()]")
|
---|
73 | printf "char *%s(const struct share_params *p );\n", a[2]
|
---|
74 | }
|
---|
75 |
|
---|
76 | /^FN_LOCAL_CONST_STRING/ {
|
---|
77 | split($0,a,"[,()]")
|
---|
78 | printf "const char *%s(int );\n", a[2]
|
---|
79 | }
|
---|
80 |
|
---|
81 | /^FN_LOCAL_INT/ {
|
---|
82 | split($0,a,"[,()]")
|
---|
83 | printf "int %s(int );\n", a[2]
|
---|
84 | }
|
---|
85 |
|
---|
86 | /^FN_LOCAL_CHAR/ {
|
---|
87 | split($0,a,"[,()]")
|
---|
88 | printf "char %s(const struct share_params *p );\n", a[2]
|
---|
89 | }
|
---|
90 |
|
---|
91 | /^FN_GLOBAL_BOOL/ {
|
---|
92 | split($0,a,"[,()]")
|
---|
93 | printf "bool %s(void);\n", a[2]
|
---|
94 | }
|
---|
95 |
|
---|
96 | /^FN_GLOBAL_LIST/ {
|
---|
97 | split($0,a,"[,()]")
|
---|
98 | printf "const char **%s(void);\n", a[2]
|
---|
99 | }
|
---|
100 |
|
---|
101 | /^FN_GLOBAL_STRING/ {
|
---|
102 | split($0,a,"[,()]")
|
---|
103 | printf "char *%s(void);\n", a[2]
|
---|
104 | }
|
---|
105 |
|
---|
106 | /^FN_GLOBAL_CONST_STRING/ {
|
---|
107 | split($0,a,"[,()]")
|
---|
108 | printf "const char *%s(void);\n", a[2]
|
---|
109 | }
|
---|
110 |
|
---|
111 | /^FN_GLOBAL_INT/ {
|
---|
112 | split($0,a,"[,()]")
|
---|
113 | printf "int %s(void);\n", a[2]
|
---|
114 | }
|
---|
115 |
|
---|
116 | /^static|^extern/ || !/^[a-zA-Z\_]/ || /[;]/ {
|
---|
117 | next;
|
---|
118 | }
|
---|
119 |
|
---|
120 | #
|
---|
121 | # We have to split up the start
|
---|
122 | # matching as we now have so many start
|
---|
123 | # types that it can cause some versions
|
---|
124 | # of nawk/awk to choke and fail on
|
---|
125 | # the full match. JRA.
|
---|
126 | #
|
---|
127 |
|
---|
128 | {
|
---|
129 | gotstart = 0;
|
---|
130 | if( $0 ~ /^const|^connection_struct|^pipes_struct|^smb_np_struct|^file_fd_struct|^files_struct|^connection_struct|^uid_t|^gid_t|^unsigned|^mode_t|^DIR|^user|^int|^pid_t|^ino_t|^off_t|^double/ ) {
|
---|
131 | gotstart = 1;
|
---|
132 | }
|
---|
133 |
|
---|
134 | if( $0 ~ /^vuser_key|^UNISTR2|^LOCAL_GRP|^DOMAIN_GRP|^SMB_STRUCT_DIRENT|^SEC_ACL|^SEC_DESC|^SEC_DESC_BUF|^DOM_SID|^RPC_HND_NODE|^BYTE/ ) {
|
---|
135 | gotstart = 1;
|
---|
136 | }
|
---|
137 |
|
---|
138 | if( $0 ~ /^ADS_STRUCT|^ADS_STATUS|^DATA_BLOB|^ASN1_DATA|^TDB_CONTEXT|^TDB_DATA|^smb_ucs2_t|^TALLOC_CTX|^hash_element|^NT_DEVICEMODE|^enum.*\(|^NT_USER_TOKEN|^SAM_ACCOUNT|^NTTIME/ ) {
|
---|
139 | gotstart = 1;
|
---|
140 | }
|
---|
141 |
|
---|
142 | if( $0 ~ /^smb_iconv_t|^long|^char|^uint|^NTSTATUS|^WERROR|^CLI_POLICY_HND|^struct|^bool|^void|^time|^smb_shm_offset_t|^shm_offset_t|^FILE|^XFILE|^SMB_OFF_T|^size_t|^ssize_t|^SMB_BIG_UINT|^SMB_BIG_INT/ ) {
|
---|
143 | gotstart = 1;
|
---|
144 | }
|
---|
145 |
|
---|
146 | if( $0 ~ /^SAM_ACCT_INFO_NODE|^SMB_ACL_T|^ADS_MODLIST|^PyObject|^SORTED_TREE|^REGISTRY_HOOK|^REGISTRY_OPS|^REGISTRY_VALUE|^REGVAL_CTR|^DEVICEMODE|^PAC_DATA|^NET_USER_INFO_3|^smb_event_id_t/ ) {
|
---|
147 | gotstart = 1;
|
---|
148 | }
|
---|
149 |
|
---|
150 | if( $0 ~ /^WINBINDD_PW|^WINBINDD_GR|^NT_PRINTER_INFO_LEVEL_2|^LOGIN_CACHE|^krb5_error_code|^LDAP|^u32|^LUID_ATTR|^NSS_STATUS/ ) {
|
---|
151 | gotstart = 1;
|
---|
152 | }
|
---|
153 |
|
---|
154 | if( $0 ~ /^NODE_STATUS_STRUCT|^SMB_STRUCT_DIR|^ELOG_TDB|^codepoint_t|^_PUBLIC_|^wbcErr/ ) {
|
---|
155 | gotstart = 1;
|
---|
156 | }
|
---|
157 |
|
---|
158 | if(!gotstart) {
|
---|
159 | next;
|
---|
160 | }
|
---|
161 | }
|
---|
162 |
|
---|
163 |
|
---|
164 | /[(].*[)][ \t]*$/ {
|
---|
165 | printf "%s;\n",$0;
|
---|
166 | next;
|
---|
167 | }
|
---|
168 |
|
---|
169 | /[(]/ {
|
---|
170 | inheader=1;
|
---|
171 | printf "%s\n",$0;
|
---|
172 | next;
|
---|
173 | }
|
---|
174 |
|
---|