Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.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 # 3. All advertising materials mentioning features or use of this software
15 #    must display the following acknowledgement:
16 #       This product includes software developed by the University of
17 #       California, Berkeley and its contributors.
18 # 4. Neither the name of the University nor the names of its contributors
19 #    may be used to endorse or promote products derived from this software
20 #    without specific prior written permission.
21 #
22 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 # SUCH DAMAGE.
33 #
34 #       @(#)vgrind.sh   8.1 (Berkeley) 6/6/93
35 #
36 # $FreeBSD: src/usr.bin/vgrind/vgrind.sh,v 1.2.8.1 2003/06/14 14:26:25 schweikh Exp $
37 # $DragonFly: src/usr.bin/vgrind/vgrind.sh,v 1.2 2003/06/17 04:29:33 dillon Exp $
38 #
39
40 voptions=""
41 options=""
42 files=""
43 f=""
44 head=""
45 vf="/usr/libexec/vfontedpr"
46 tm="/usr/share/tmac"
47 postproc="psroff"
48
49 # Parse args
50 while test $# -gt 0; do
51         case $1 in
52         -f)
53                 f="filter"
54                 options="$options -f"
55         ;;
56         -t)
57                 voptions="$voptions -t"
58         ;;
59         -o*)
60                 voptions="$voptions $1"
61         ;;
62         -W)
63                 voptions="$voptions -W"
64         ;;
65         -d)
66                 if test $# -lt 2; then
67                         echo "$0: option $1 must have argument" >&2
68                         exit 1
69                 fi
70                 options="$options $1 $2"
71                 shift
72         ;;
73         -h)
74                 if test $# -lt 2; then
75                         echo "$0: option $1 must have argument" >&2
76                         exit 1
77                 fi
78                 head="$2"
79                 shift
80         ;;
81         -p)
82                 if test $# -lt 2; then
83                         echo "$0: option $1 must have argument" >&2
84                         exit 1
85                 fi
86                 postproc="$2"
87                 shift
88         ;;
89         -*)
90                 options="$options $1"
91         ;;
92         *)
93                 files="$files $1"
94         ;;
95         esac
96         shift
97 done
98
99 if test -r index; then
100         echo > nindex
101         for i in $files; do
102                 #       make up a sed delete command for filenames
103                 #       being careful about slashes.
104                 echo "? $i ?d" | sed -e "s:/:\\/:g" -e "s:?:/:g" >> nindex
105         done
106         sed -f nindex index > xindex
107         if test "x$f" = xfilter; then
108                 if test "x$head" != x; then
109                         $vf $options -h "$head" $files
110                 else
111                         $vf $options $files
112                 fi | cat $tm/tmac.vgrind -
113         else
114                 if test "x$head" != x; then
115                         $vf $options -h "$head" $files
116                 else
117                         $vf $options $files
118                 fi | sh -c "$postproc -rx1 $voptions -i -mvgrind 2>> xindex"
119         fi
120         sort -df -k 1,2 xindex > index
121         rm nindex xindex
122 else
123         if test "x$f" = xfilter; then
124                 if test "x$head" != x; then
125                         $vf $options -h "$head" $files
126                 else
127                         $vf $options $files
128                 fi | cat $tm/tmac.vgrind -
129         else
130                 if test "x$head" != x; then
131                         $vf $options -h "$head" $files
132                 else
133                         $vf $options $files
134                 fi | $postproc -i $voptions -mvgrind
135         fi
136 fi