]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - usr.bin/vgrind/vgrind.sh
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / usr.bin / vgrind / vgrind.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 1980, 1993
4 #       The Regents of the University of California.  All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 #    notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 #    notice, this list of conditions and the following disclaimer in the
13 #    documentation and/or other materials provided with the distribution.
14 # 4. Neither the name of the University nor the names of its contributors
15 #    may be used to endorse or promote products derived from this software
16 #    without specific prior written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 # SUCH DAMAGE.
29 #
30 #       @(#)vgrind.sh   8.1 (Berkeley) 6/6/93
31 #
32 # $FreeBSD$
33 #
34
35 voptions=""
36 options=""
37 files=""
38 f=""
39 head=""
40 vf="/usr/libexec/vfontedpr"
41 tm="/usr/share/tmac"
42 postproc="psroff"
43
44 # Parse args
45 while test $# -gt 0; do
46         case $1 in
47         -f)
48                 f="filter"
49                 options="$options -f"
50         ;;
51         -t)
52                 voptions="$voptions -t"
53         ;;
54         -o*)
55                 voptions="$voptions $1"
56         ;;
57         -W)
58                 voptions="$voptions -W"
59         ;;
60         -d)
61                 if test $# -lt 2; then
62                         echo "$0: option $1 must have argument" >&2
63                         exit 1
64                 fi
65                 options="$options $1 $2"
66                 shift
67         ;;
68         -h)
69                 if test $# -lt 2; then
70                         echo "$0: option $1 must have argument" >&2
71                         exit 1
72                 fi
73                 head="$2"
74                 shift
75         ;;
76         -p)
77                 if test $# -lt 2; then
78                         echo "$0: option $1 must have argument" >&2
79                         exit 1
80                 fi
81                 postproc="$2"
82                 shift
83         ;;
84         -*)
85                 options="$options $1"
86         ;;
87         *)
88                 files="$files $1"
89         ;;
90         esac
91         shift
92 done
93
94 if test -r index; then
95         echo > nindex
96         for i in $files; do
97                 #       make up a sed delete command for filenames
98                 #       being careful about slashes.
99                 echo "? $i ?d" | sed -e "s:/:\\/:g" -e "s:?:/:g" >> nindex
100         done
101         sed -f nindex index > xindex
102         if test "x$f" = xfilter; then
103                 if test "x$head" != x; then
104                         $vf $options -h "$head" $files
105                 else
106                         $vf $options $files
107                 fi | cat $tm/tmac.vgrind -
108         else
109                 if test "x$head" != x; then
110                         $vf $options -h "$head" $files
111                 else
112                         $vf $options $files
113                 fi | sh -c "$postproc -rx1 $voptions -i -mvgrind 2>> xindex"
114         fi
115         sort -df -k 1,2 xindex > index
116         rm nindex xindex
117 else
118         if test "x$f" = xfilter; then
119                 if test "x$head" != x; then
120                         $vf $options -h "$head" $files
121                 else
122                         $vf $options $files
123                 fi | cat $tm/tmac.vgrind -
124         else
125                 if test "x$head" != x; then
126                         $vf $options -h "$head" $files
127                 else
128                         $vf $options $files
129                 fi | $postproc -i $voptions -mvgrind
130         fi
131 fi