mirror of
https://github.com/samba-team/samba.git
synced 2024-12-29 11:21:54 +03:00
b551dc98f7
prototypes automatically using "make proto". This is much less prone to error than the old method of manually adding prototypes
79 lines
1.2 KiB
Awk
79 lines
1.2 KiB
Awk
# generate prototypes for Samba C code
|
|
# tridge, June 1996
|
|
|
|
BEGIN {
|
|
inheader=0;
|
|
print "/* This file is automatically generated with \"make proto\". DO NOT EDIT */"
|
|
print ""
|
|
}
|
|
|
|
{
|
|
if (inheader) {
|
|
if (match($0,"[)][ \t]*$")) {
|
|
inheader = 0;
|
|
printf "%s;\n",$0;
|
|
} else {
|
|
printf "%s\n",$0;
|
|
}
|
|
next;
|
|
}
|
|
}
|
|
|
|
# we handle the loadparm.c fns separately
|
|
|
|
/^FN_LOCAL_BOOL/ {
|
|
split($0,a,"[,()]")
|
|
printf "BOOL %s(int );\n", a[2]
|
|
}
|
|
|
|
/^FN_LOCAL_STRING/ {
|
|
split($0,a,"[,()]")
|
|
printf "char *%s(int );\n", a[2]
|
|
}
|
|
|
|
/^FN_LOCAL_INT/ {
|
|
split($0,a,"[,()]")
|
|
printf "int %s(int );\n", a[2]
|
|
}
|
|
|
|
/^FN_LOCAL_CHAR/ {
|
|
split($0,a,"[,()]")
|
|
printf "char %s(int );\n", a[2]
|
|
}
|
|
|
|
/^FN_GLOBAL_BOOL/ {
|
|
split($0,a,"[,()]")
|
|
printf "BOOL %s(void);\n", a[2]
|
|
}
|
|
|
|
/^FN_GLOBAL_STRING/ {
|
|
split($0,a,"[,()]")
|
|
printf "char *%s(void);\n", a[2]
|
|
}
|
|
|
|
/^FN_GLOBAL_INT/ {
|
|
split($0,a,"[,()]")
|
|
printf "int %s(void);\n", a[2]
|
|
}
|
|
|
|
/^static|^extern/ || !/^[a-zA-Z]/ || /[;]/ {
|
|
next;
|
|
}
|
|
|
|
!/^unsigned|^mode_t|^DIR|^user|^int|^char|^uint|^struct|^BOOL|^void|^time/ {
|
|
next;
|
|
}
|
|
|
|
|
|
/[(].*[)][ \t]*$/ {
|
|
printf "%s;\n",$0;
|
|
next;
|
|
}
|
|
|
|
/[(]/ {
|
|
inheader=1;
|
|
printf "%s\n",$0;
|
|
next;
|
|
}
|
|
|