126 lines
2.8 KiB
Bash
Executable File
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
|
|
#--
|