1 1.1 tron #!/bin/sh 2 1.1 tron 3 1.1 tron # mansect - extract manual chapter number from source comment 4 1.1 tron 5 1.1 tron # @(#) mansect.sh 1.2 11/4/89 15:56:37 6 1.1 tron 7 1.1 tron LANG= 8 1.1 tron 9 1.1 tron : process arguments 10 1.1 tron 11 1.1 tron while : 12 1.1 tron do 13 1.1 tron case $1 in 14 1.1 tron [0-9]) SECT=$1;; 15 1.1 tron -) LANG=$1; B='[#:]';; 16 1.1 tron -a) LANG=$1; B='#';; 17 1.1 tron -c) LANG=$1; B='\/\*';; 18 1.1 tron -f) LANG=$1; B='[Cc]';; 19 1.1 tron -m) LANG=$1; B='#';; 20 1.1 tron -n|-t) LANG=$1; B='\\"';; 21 1.1 tron -p) LANG=$1; B='{';; 22 1.1 tron -r) LANG=$1; B='#';; 23 1.1 tron -C) LANG=$1; B=$2; shift;; 24 1.1 tron -*) ERROR="unknown option: $1"; break;; 25 1.1 tron "") ERROR="missing file argument"; break;; 26 1.1 tron *) break;; 27 1.1 tron esac 28 1.1 tron shift 29 1.1 tron done 30 1.1 tron 31 1.1 tron # check error status 32 1.1 tron 33 1.1 tron case $ERROR in 34 1.1 tron "") ;; 35 1.1 tron *) echo "$0: $ERROR" 1>&2 36 1.1 tron echo "usage: $0 [-|-a|-c|-f|-m|-n|-p|-t|-r|-C] file(s)" 1>&2; exit 1;; 37 1.1 tron esac 38 1.1 tron 39 1.1 tron # set up for file suffix processing 40 1.1 tron 41 1.1 tron case $LANG in 42 1.1 tron "") sh='[:#]'; r='#'; rh=$r; awk='#'; mk='#'; 43 1.1 tron c='\/\*'; d=$c; h=$c; y=$c; l=$c; 44 1.1 tron f='[Cc]'; fh=$f; p='{'; ph=$p; 45 1.1 tron ms='\\"'; nr=$ms; mn=$ms; man=$ms; 46 1.1 tron esac 47 1.1 tron 48 1.1 tron # extract chapter number from file 49 1.1 tron 50 1.1 tron for i 51 1.1 tron do 52 1.1 tron case $LANG in 53 1.1 tron "") eval B\="\$`expr $i : '.*\.\([^.]*\)$'`" 54 1.1 tron test "$B" || { echo "$0: unknown suffix: '$i'; assuming c" 1>&2; B=$c; } 55 1.1 tron esac 56 1.1 tron sed -n ' 57 1.1 tron /^'"$B"'++/,/^'"$B"'--/{ 58 1.1 tron s/[ ]*$// 59 1.1 tron /^'"$B"' NAME/{ 60 1.1 tron N 61 1.1 tron s/^.*\n'"$B"'.*[ ]\([0-9]\)[ ]*$/\1/p 62 1.1 tron q 63 1.1 tron } 64 1.1 tron } 65 1.1 tron ' $i 66 1.1 tron done 67 1.1 tron 68 1.1 tron exit 69 1.1 tron 70 1.1 tron #++ 71 1.1 tron # NAME 72 1.1 tron # mansect 1 73 1.1 tron # SUMMARY 74 1.1 tron # extract manual chapter number from comment 75 1.1 tron # PACKAGE 76 1.1 tron # sdetools 77 1.1 tron # SYNOPSIS 78 1.1 tron # mansect [-|-a|-c|-f|-m|-m|-n|-p|-t|-r|-C] file(s) 79 1.1 tron # DESCRIPTION 80 1.1 tron # \fImansect\fR extracts the manual chapter number from 81 1.1 tron # source file comments in the style of \fInewsrc(1)\fR. 82 1.1 tron # Typically, \fImansect\fR is integrated with \fImake(1)\fR scripts. 83 1.1 tron # 84 1.1 tron # Source files are processed in the indicated order; if no 85 1.1 tron # files are specified the command produces no output. 86 1.1 tron # 87 1.1 tron # The source file language can be specified through a command-line 88 1.1 tron # option, or can be implied by the filename suffix. 89 1.1 tron # The expected start-of-comment symbol is shown in the last column. 90 1.1 tron # 91 1.1 tron # .nf 92 1.1 tron # .ft C 93 1.1 tron option suffix language comment 94 1.1 tron 95 1.1 tron - .sh shell [:#] 96 1.1 tron -a .awk awk # 97 1.1 tron -c .c .h .l .y c lex yacc /* 98 1.1 tron -f .f .fh fortran [Cc] 99 1.1 tron -m .mk make # 100 1.1 tron -n .man .mn .ms .nr nroff troff \\" 101 1.1 tron -p .p .ph pascal { 102 1.1 tron -r .r .rh ratfor # 103 1.1 tron -C any language next argument 104 1.1 tron # .ft 105 1.1 tron # COMMANDS 106 1.1 tron # sh(1), sed(1) 107 1.1 tron # SEE ALSO 108 1.1 tron # newsrc(1), xman(1) 109 1.1 tron # The earlier commands new(1), mod(1), mkman(1) and dssman(1) 110 1.1 tron # by Ruud Zwart and Ben Noordzij (Erasmus University, Rotterdam) 111 1.1 tron # DIAGNOSTICS 112 1.1 tron # The program complaints if an unknown language is specified 113 1.1 tron # of if the language cannot be deduced from the file suffix. 114 1.1 tron # AUTHOR(S) 115 1.1 tron # W.Z. Venema 116 1.1 tron # Eindhoven University of Technology 117 1.1 tron # Department of Mathematics and Computer Science 118 1.1 tron # Den Dolech 2, P.O. Box 513, 5600 MB Eindhoven, The Netherlands 119 1.1 tron # CREATION DATE 120 1.1 tron # Sun Feb 15 21:40:28 GMT+1:00 1987 121 1.1 tron # LAST MODIFICATION 122 1.1 tron # 11/4/89 15:56:37 123 1.1 tron # VERSION/RELEASE 124 1.1 tron # 1.2 125 1.1 tron #-- 126