mirror of
https://github.com/isc-projects/bind9.git
synced 2026-02-20 00:10:43 -05:00
84 lines
2.3 KiB
Awk
Executable file
84 lines
2.3 KiB
Awk
Executable file
#!/usr/bin/gawk -f
|
|
#
|
|
# Copyright (C) 2000 Internet Software Consortium.
|
|
#
|
|
# Permission to use, copy, modify, and distribute this software for any
|
|
# purpose with or without fee is hereby granted, provided that the above
|
|
# copyright notice and this permission notice appear in all copies.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
|
# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
|
# INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
|
# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
|
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
|
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
# $Id: ctoman,v 1.4 2000/07/27 09:42:25 tale Exp $
|
|
#
|
|
# ctoman - an awk program that makes a passable job of
|
|
# converting ISC BIND9 C files into template
|
|
# man pages
|
|
# Author: Jim Reid 1/6/00
|
|
#
|
|
BEGIN { quote = "\""
|
|
ftc = inc = fnc = arc = 1 }
|
|
|
|
|
|
# skip typedefs
|
|
/typedef/ { next }
|
|
# skip initialisations: lines ending in a semicolon
|
|
$0 ~ /;$/ { next }
|
|
# function return types
|
|
/^[a-z]/ && $0 !~ /\(/ { functypes[ftc++] = $0 }
|
|
|
|
# #include lines
|
|
/#include/ { while ((NF ==0) || ((NF > 0) && $0 ~ /#include/)) {
|
|
inclist[inc++] = $0
|
|
getline
|
|
}
|
|
}
|
|
|
|
# function names and argument prototypes
|
|
/^[a-z]/ && $0 ~ /\(/ {
|
|
str= $0
|
|
while ($NF != "{" ) {
|
|
next
|
|
str += $0
|
|
}
|
|
sub(/\(/, ":", str)
|
|
sub(/\).*{/, "", str)
|
|
gsub(/,./, ":", str)
|
|
arglist[arc++] = str
|
|
split(str, foo, ":")
|
|
funclist[fnc++] = foo[1]
|
|
}
|
|
|
|
#END { for (i = 1; i < inc; i++) print i, inclist[i] }
|
|
END {
|
|
while (getline < "/home/jim/bind9/doc/comment")
|
|
print
|
|
if (ftc != fnc)
|
|
print "FUNCTION NAME/RETURN COUNT MISMATCH"
|
|
for (i = 1; i < fnc - 1; i++)
|
|
print ".Nm", funclist[i], ","
|
|
print ".Nm", funclist[fnc - 1]
|
|
print ".Nd XXX"
|
|
print ".Sh SYNOPSIS"
|
|
for (i = 1; i < inc; i++)
|
|
print ".Fd", inclist[i]
|
|
for (i = 1; i < fnc; i++ ) {
|
|
print ".Ft", functypes[i]
|
|
print ".Fo", funclist[i]
|
|
j = split(arglist[i], foo, ":")
|
|
for (k = 2; k <= j; k++)
|
|
print ".Fa", quote foo[k] quote
|
|
print ".Fc"
|
|
}
|
|
print ".Sh DESCRIPTION"
|
|
print ".Sh RETURN VALUES"
|
|
print ".Sh SEE ALSO"
|
|
print ".Sh BUGS"
|
|
|
|
}
|