Home | History | Annotate | Line # | Download | only in vgrind
      1 #!/bin/csh -f
      2 #
      3 #	$NetBSD: vgrind.sh,v 1.5 2003/08/18 14:10:22 pooka Exp $
      4 #
      5 # Copyright (c) 1980, 1993
      6 #	The Regents of the University of California.  All rights reserved.
      7 #
      8 # Redistribution and use in source and binary forms, with or without
      9 # modification, are permitted provided that the following conditions
     10 # are met:
     11 # 1. Redistributions of source code must retain the above copyright
     12 #    notice, this list of conditions and the following disclaimer.
     13 # 2. Redistributions in binary form must reproduce the above copyright
     14 #    notice, this list of conditions and the following disclaimer in the
     15 #    documentation and/or other materials provided with the distribution.
     16 # 3. All advertising materials mentioning features or use of this software
     17 #    must display the following acknowledgement:
     18 #	This product includes software developed by the University of
     19 #	California, Berkeley and its contributors.
     20 # 4. Neither the name of the University nor the names of its contributors
     21 #    may be used to endorse or promote products derived from this software
     22 #    without specific prior written permission.
     23 #
     24 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     25 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     26 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     27 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     28 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     29 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     30 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     31 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     32 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     33 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     34 # SUCH DAMAGE.
     35 #
     36 #       @(#)vgrind.sh	8.1 (Berkeley) 6/6/93
     37 #
     38 
     39 set voptions=
     40 set options=
     41 set files=
     42 set f=''
     43 set head=""
     44 set vf=/usr/libexec/vfontedpr
     45 set tm=/usr/share/tmac
     46 set vmacs=vgrind.tmac
     47 top:
     48 if ($#argv > 0) then
     49     switch ($1:q)
     50 
     51     case -f:
     52 	set f='filter'
     53 	set options = "$options $1:q"
     54 	shift
     55 	goto top
     56 
     57     case -t:
     58 	set voptions = "$voptions -t"
     59 	shift
     60 	goto top
     61 
     62     case -o*:
     63 	set voptions="$voptions $1:q"
     64 	shift
     65 	goto top
     66 
     67     case -W:
     68 	set voptions = "$voptions -W"
     69 	shift
     70 	goto top
     71 
     72     case -d:
     73 	if ($#argv < 2) then
     74 	    echo "vgrind: $1:q option must have argument"
     75 	    goto done
     76 	else
     77 	    set options = ($options $1:q $2)
     78 	    shift
     79 	    shift
     80 	    goto top
     81 	endif
     82 			
     83     case -h:
     84 	if ($#argv < 2) then
     85 	    echo "vgrind: $1:q option must have argument"
     86 	    goto done
     87 	else
     88 	    set head="$2"
     89 	    shift
     90 	    shift
     91 	    goto top
     92 	endif
     93 			
     94     case -*:
     95 	set options = "$options $1:q"
     96 	shift
     97 	goto top
     98 
     99     default:
    100 	set files = "$files $1:q"
    101 	shift
    102 	goto top
    103     endsw
    104 endif
    105 if (-r index) then
    106     echo > nindex
    107     foreach i ($files)
    108 	#	make up a sed delete command for filenames
    109 	#	being careful about slashes.
    110 	echo "? $i ?d" | sed -e "s:/:\\/:g" -e "s:?:/:g" >> nindex
    111     end
    112     sed -f nindex index >xindex
    113     if ($f == 'filter') then
    114 	if ("$head" != "") then
    115 	    $vf $options -h "$head" $files | cat $tm/$vmacs -
    116 	else
    117 	    $vf $options $files | cat $tm/$vmacs -
    118 	endif
    119     else
    120 	if ("$head" != "") then
    121 	    $vf $options -h "$head" $files | \
    122 		sh -c "groff -Tps -l -C -rx1 $voptions -i -mvgrind 2>> xindex"
    123 	else
    124 	    $vf $options $files | \
    125 		sh -c "groff -Tps -l -C -rx1 $voptions -i -mvgrind 2>> xindex"
    126 	endif
    127     endif
    128     sort -df +0 -2 xindex >index
    129     rm nindex xindex
    130 else
    131     if ($f == 'filter') then
    132 	if ("$head" != "") then
    133 	    $vf $options -h "$head" $files | cat $tm/$vmacs -
    134 	else
    135 	    $vf $options $files | cat $tm/$vmacs -
    136 	endif
    137     else
    138 	if ("$head" != "") then
    139 	    $vf $options -h "$head" $files | groff -Tps -l -C -i $voptions -mvgrind
    140 	else
    141 	    $vf $options $files | groff -Tps -l -C -i $voptions -mvgrind
    142 	endif
    143     endif
    144 endif
    145 
    146 done:
    147