NetBSD/gnu/dist/postfix/mantools/mansect

126 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
# mansect - extract manual chapter number from source comment
# @(#) mansect.sh 1.2 11/4/89 15:56:37
LANG=
: process arguments
while :
do
case $1 in
[0-9]) SECT=$1;;
-) LANG=$1; B='[#:]';;
-a) LANG=$1; B='#';;
-c) LANG=$1; B='\/\*';;
-f) LANG=$1; B='[Cc]';;
-m) LANG=$1; B='#';;
-n|-t) LANG=$1; B='\\"';;
-p) LANG=$1; B='{';;
-r) LANG=$1; B='#';;
-C) LANG=$1; B=$2; shift;;
-*) ERROR="unknown option: $1"; break;;
"") ERROR="missing file argument"; break;;
*) break;;
esac
shift
done
# check error status
case $ERROR in
"") ;;
*) echo "$0: $ERROR" 1>&2
echo "usage: $0 [-|-a|-c|-f|-m|-n|-p|-t|-r|-C] file(s)" 1>&2; exit 1;;
esac
# set up for file suffix processing
case $LANG in
"") sh='[:#]'; r='#'; rh=$r; awk='#'; mk='#';
c='\/\*'; d=$c; h=$c; y=$c; l=$c;
f='[Cc]'; fh=$f; p='{'; ph=$p;
ms='\\"'; nr=$ms; mn=$ms; man=$ms;
esac
# extract chapter number from file
for i
do
case $LANG in
"") eval B\="\$`expr $i : '.*\.\([^.]*\)$'`"
test "$B" || { echo "$0: unknown suffix: '$i'; assuming c" 1>&2; B=$c; }
esac
sed -n '
/^'"$B"'++/,/^'"$B"'--/{
s/[ ]*$//
/^'"$B"' NAME/{
N
s/^.*\n'"$B"'.*[ ]\([0-9]\)[ ]*$/\1/p
q
}
}
' $i
done
exit
#++
# NAME
# mansect 1
# SUMMARY
# extract manual chapter number from comment
# PACKAGE
# sdetools
# SYNOPSIS
# mansect [-|-a|-c|-f|-m|-m|-n|-p|-t|-r|-C] file(s)
# DESCRIPTION
# \fImansect\fR extracts the manual chapter number from
# source file comments in the style of \fInewsrc(1)\fR.
# Typically, \fImansect\fR is integrated with \fImake(1)\fR scripts.
#
# Source files are processed in the indicated order; if no
# files are specified the command produces no output.
#
# The source file language can be specified through a command-line
# option, or can be implied by the filename suffix.
# The expected start-of-comment symbol is shown in the last column.
#
# .nf
# .ft C
option suffix language comment
- .sh shell [:#]
-a .awk awk #
-c .c .h .l .y c lex yacc /*
-f .f .fh fortran [Cc]
-m .mk make #
-n .man .mn .ms .nr nroff troff \\"
-p .p .ph pascal {
-r .r .rh ratfor #
-C any language next argument
# .ft
# COMMANDS
# sh(1), sed(1)
# SEE ALSO
# newsrc(1), xman(1)
# The earlier commands new(1), mod(1), mkman(1) and dssman(1)
# by Ruud Zwart and Ben Noordzij (Erasmus University, Rotterdam)
# DIAGNOSTICS
# The program complaints if an unknown language is specified
# of if the language cannot be deduced from the file suffix.
# AUTHOR(S)
# W.Z. Venema
# Eindhoven University of Technology
# Department of Mathematics and Computer Science
# Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands
# CREATION DATE
# Sun Feb 15 21:40:28 GMT+1:00 1987
# LAST MODIFICATION
# 11/4/89 15:56:37
# VERSION/RELEASE
# 1.2
#--