|
|
1.1 root 1: #!/bin/sh
2: #
3: # NAME:
4: # fixcpp - fix CPP errors
5: #
6: # SYNOPSIS:
7: # fixcpp [-c][-p patch_file][-b bak_dir][-n new_dir] files(s)
8: #
9: # DESCRIPTION:
10: # For each named file, use sed(1) to fixup any descriptive
11: # text after #else or #endif or that is not properly
12: # commented as this causes ANSI compilers to generate
13: # unnecessary warnings.
14: #
15: # Naturally this script is not guaranteed to be bullet
16: # proof, use of -n or -b is advisable!
17: #
18: # -c causes fixcpp to make sure that only files that
19: # needed changing are affected by returning the original
20: # file to its original location if no changes were needed.
21: #
22: # -p causes fixcpp to append to a patch file the context
23: # diffs of the changes wrought.
24: #
25: # SEE ALSO:
26: # sed(1)
27: #
28: # AMENDED:
29: # 90/08/08 22:46:32 (sjg)
30: #
31: # RELEASED:
32: # 90/08/08 22:46:34 v1.4
33: #
34: # SCCSID:
35: # @(#)fixcpp.sh 1.4 90/08/08 22:46:32 (sjg)
36: #
37: # @(#)Copyright (c) 1990 Simon J. Gerraty
38: #
39: # This is free software. It comes with NO WARRANTY.
40: # Everyone is granted permission to copy, modify and
41: # redistribute this source code provided that all
42: # recipients are given similar rights, and that the above
43: # copyright notice and this notice are preserved in all
44: # copies.
45:
46: TMPF=/tmp/fixcpp.$$
47: NEWDIR=
48: BAKDIR=
49: PATCHF=
50: CHECK=
51:
52: set -- `getopt "cp:b:n:" $*`
53: if [ $? != 0 ]; then
54: echo "$0 [-c][-p patch_file][-b bakup_dir][-n new_dir] file [file ...]" >&2
55: exit 1
56: fi
57: for i in $*
58: do
59: case $i in
60: -c) CHECK=yes; shift;;
61: -p) PATCHF=$2; shift 2;;
62: -b) BAKDIR=$2; shift 2;;
63: -n) NEWDIR=$2; shift 2;;
64: --) shift; break;;
65: esac
66: done
67: NEWDIR=${NEWDIR:-.}
68: if [ $BAKDIR ]; then
69: if [ ! -d $BAKDIR ]; then
70: echo "$0: no such directory -- $BAKDIR" >&2
71: exit 1
72: fi
73: fi
74:
75:
76:
77: for i in $*
78: do
79: if [ $BAKDIR ]; then
80: mv $i $BAKDIR
81: infile=$BAKDIR/$i
82: else
83: if [ "$NEWDIR" = "." ]; then
84: mv $i ${TMPF}
85: infile=${TMPF}
86: else
87: infile=$i
88: fi
89: fi
90: sed -e 's;^#\([ ]*e[nl][^ ]*[ ][ ]*\)\([^/ ][^\*].*\);#\1/* \2 */;' -e 's;^#\([ ]*e[nl][^ ]*[ ][ ]*\)\([^/ ]\)$;#\1/* \2 */;' $infile >${NEWDIR}/$i
91: if [ "${CHECK}" = "yes" -o ${PATCHF} ]; then
92: if cmp -s $infile ${NEWDIR}/$i ; then
93: if [ "${CHECK}" = "yes" ]; then
94: if [ $BAKDIR ]; then
95: mv $infile ${NEWDIR}/$i
96: else
97: rm ${NEWDIR}/$i
98: fi
99: fi
100: else
101: if [ $PATCHF ]; then
102: diff -c $infile ${NEWDIR}/$i >> ${PATCHF}
103: fi
104: fi
105: fi
106:
107: done
108:
109: rm -f ${TMPF}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.