BSD 4_3_Net_2 release
[unix-history] / usr / src / usr.bin / vgrind / vgrind.sh
index 89aac88..d7fa30b 100644 (file)
+#!/bin/csh -f
 #
 #
-# vgrind
+# Copyright (c) 1980 The Regents of the University of California.
+# All rights reserved.
 #
 #
-set b=.
-set o=
-set t=
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#      This product includes software developed by the University of
+#      California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+#    may be used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+#      @(#)vgrind.sh   5.7 (Berkeley) 4/16/91
+#
+
+set voptions=
+set options=
+set files=
 set f=''
 set f=''
-set wide = ""
+set head=""
+set vf=/usr/libexec/vfontedpr
+set tm=/usr/share/tmac
 top:
 top:
-if ($#argv > 1) then
-       switch ($1:q)
-
-       case -f:
-               set f='filter'
-               shift
-               goto top
-
-       case -t:
-               set t=-t
-               shift
-               goto top
-
-       case -o*:
-               set o=$1:q
-               shift
-               goto top
-
-       case -W:
-               set wide = "-W"
-               shift
-               goto top
-       endsw
+if ($#argv > 0) then
+    switch ($1:q)
+
+    case -f:
+       set f='filter'
+       set options = "$options $1:q"
+       shift
+       goto top
+
+    case -t:
+       set voptions = "$voptions -t"
+       shift
+       goto top
+
+    case -o*:
+       set voptions="$voptions $1:q"
+       shift
+       goto top
+
+    case -W:
+       set voptions = "$voptions -W"
+       shift
+       goto top
+
+    case -d:
+       if ($#argv < 2) then
+           echo "vgrind: $1:q option must have argument"
+           goto done
+       else
+           set options = ($options $1:q $2)
+           shift
+           shift
+           goto top
+       endif
+                       
+    case -h:
+       if ($#argv < 2) then
+           echo "vgrind: $1:q option must have argument"
+           goto done
+       else
+           set head="$2"
+           shift
+           shift
+           goto top
+       endif
+                       
+    case -*:
+       set options = "$options $1:q"
+       shift
+       goto top
+
+    default:
+       set files = "$files $1:q"
+       shift
+       goto top
+    endsw
 endif
 if (-r index) then
 endif
 if (-r index) then
-       echo > nindex
-       foreach i ($*:q)
-               echo "/ $i /d" >> nindex
-       end
-       sed -f nindex index >xindex
-       if ($f == 'filter') then
-           $b/vfontedpr -f $*:q | cat /usr/lib/tmac/tmac.vgrind -
+    echo > nindex
+    foreach i ($files)
+       #       make up a sed delete command for filenames
+       #       being careful about slashes.
+       echo "? $i ?d" | sed -e "s:/:\\/:g" -e "s:?:/:g" >> nindex
+    end
+    sed -f nindex index >xindex
+    if ($f == 'filter') then
+       if ("$head" != "") then
+           $vf $options -h "$head" $files | cat $tm/tmac.vgrind -
        else
        else
-           $b/vfontedpr $*:q | \
-                   /bin/sh -c "vtroff $t $wide -rx1 $o -i -mvgrind 2>> xindex"
+           $vf $options $files | cat $tm/tmac.vgrind -
        endif
        endif
-       sort -df +0 -2 xindex >index
-       rm nindex xindex
+    else
+       if ("$head" != "") then
+           $vf $options -h "$head" $files | \
+               sh -c "vtroff -rx1 $voptions -i -mvgrind 2>> xindex"
+       else
+           $vf $options $files | \
+               sh -c "vtroff -rx1 $voptions -i -mvgrind 2>> xindex"
+       endif
+    endif
+    sort -df +0 -2 xindex >index
+    rm nindex xindex
 else
 else
-       if ($f == 'filter') then
-           $b/vfontedpr -f $*:q | cat /usr/lib/tmac/tmac.vgrind -
+    if ($f == 'filter') then
+       if ("$head" != "") then
+           $vf $options -h "$head" $files | cat $tm/tmac.vgrind -
+       else
+           $vf $options $files | cat $tm/tmac.vgrind -
+       endif
+    else
+       if ("$head" != "") then
+           $vf $options -h "$head" $files | vtroff -i $voptions -mvgrind
        else
        else
-           $b/vfontedpr $*:q | vtroff $t $wide -i $o -mvgrind
+           $vf $options $files | vtroff -i $voptions -mvgrind
        endif
        endif
+    endif
 endif
 endif
+
+done: