Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!allbery From: news@cs.utexas.edu.uucp@@uunet.uu.net:emx.utexas.edu Newsgroups: comp.sources.misc Subject: v10i063: man_burst, csh script to expand multi-name mans via .so references Summary: (intended for use with the X11R4 man pages and similar situations.) Keywords: X11, man, man_burst Message-ID: <78922@uunet.UU.NET> Date: 14 Feb 90 02:01:35 GMT Sender: allbery@uunet.UU.NET Organization: Packaging/Interconnect, M.C.C. Lines: 92 Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) Posting-number: Volume 10, Issue 63 Submitted-by: news@cs.utexas.edu.uucp@@uunet.uu.net:emx.utexas.edu Archive-name: man_burst.csh #! /bin/sh # This file was wrapped with "dummyshar". "sh" this file to extract. # Contents: man_burst.csh echo extracting 'man_burst.csh' if test -f 'man_burst.csh' -a -z "$1"; then echo Not overwriting 'man_burst.csh'; else sed 's/^X//' << \EOF > 'man_burst.csh' X#! /bin/csh -fb X# shellscript "man_burst", 25.1.1990, unsupported. X# Christopher North-Keys (harp@mcc.com erlkonig@ccwf.cc.utexas.edu) X# X# expand multi-name man pages by adding .so references within the man dir X# so that man(1) can find man pages discussing multiple commands. X# (intended for use with the X11R4 man pages and similar situations.) X# X# run within the directory in which the man pages are to be "burst", X# then you will probably have to run makewhatis or catman. X# test in verbose/no-write mode by running with -w. X Xif ($#argv > 0) then X if ("$argv[1]" == "-w") then X set nowrite X echo '--------------------NOWRITE mode set (will not write)' X endif Xendif X Xset failures = 0 X Xecho $cwd:h | grep -s man\$ ; @ failures += $status Xecho $cwd:t | grep -s man ; @ failures += $status X Xif ($failures) then X echo -n $cwd' may not be a directory of manual pages; continue? ' X if ("$<" != "y") exit 1 Xendif X Xset section = `echo $cwd:t | cut -c4-` Xset length X Xforeach file (*) X echo Checking $file X X # attempt to insure that $file is a [nt]roff/tbl/eqn man sourcefile X file $file | grep -s 'roff' X if ($status) then X head -1 $file | grep -s '\.so' X if !($status) then X echo $file refers to another manual page. X continue X endif X echo $file' does not appear to be a manual page; skipping.' X continue X endif X X set startline = `egrep -n ".SH NAME" $file | cut -d: -f1` X @ startline ++ X set endline = `egrep -n ".SH SYNTAX"\|".SH STRUCTURES" $file | cut -d: -f1` X @ length = $endline - $startline X set names = `tail +${startline} $file | head -${length} | tr -d "," ` X X set suffix = $file:e X foreach name ($names) X set target = ${name}.$suffix X X if (("$name" == "\-") || ("$name" == "\")) break X X echo " "${name} X if (-e $target) then X echo already exists as $target X continue X endif X X if ($?nowrite) then X echo "echo .so man${section}/${file} > $target" X else X echo ".so man${section}/${file}" > $target X endif X end Xend EOF chars=`wc -c < 'man_burst.csh'` if test $chars != 1961; then echo 'man_burst.csh' is $chars characters, should be 1961 characters!; fi fi exit 0 ------------------------------------/\---------------------------------------- Seo: Harp[@Mcc.Com] / \/\ ^*^ Christopher North-Keys Tha mi gu trang a'cluich. / \ \ Assoc. Systems Analyst, MCC --------------------------------(disclaimer)----------------------------------