entered into RCS
From-SVN: r927
This commit is contained in:
parent
c2724863cc
commit
73e2ea18f1
109
gcc/fixcpp
Executable file
109
gcc/fixcpp
Executable file
@ -0,0 +1,109 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# NAME:
|
||||
# fixcpp - fix CPP errors
|
||||
#
|
||||
# SYNOPSIS:
|
||||
# fixcpp [-c][-p patch_file][-b bak_dir][-n new_dir] files(s)
|
||||
#
|
||||
# DESCRIPTION:
|
||||
# For each named file, use sed(1) to fixup any descriptive
|
||||
# text after #else or #endif or that is not properly
|
||||
# commented as this causes ANSI compilers to generate
|
||||
# unnecessary warnings.
|
||||
#
|
||||
# Naturally this script is not guaranteed to be bullet
|
||||
# proof, use of -n or -b is advisable!
|
||||
#
|
||||
# -c causes fixcpp to make sure that only files that
|
||||
# needed changing are affected by returning the original
|
||||
# file to its original location if no changes were needed.
|
||||
#
|
||||
# -p causes fixcpp to append to a patch file the context
|
||||
# diffs of the changes wrought.
|
||||
#
|
||||
# SEE ALSO:
|
||||
# sed(1)
|
||||
#
|
||||
# AMENDED:
|
||||
# 90/08/08 22:46:32 (sjg)
|
||||
#
|
||||
# RELEASED:
|
||||
# 90/08/08 22:46:34 v1.4
|
||||
#
|
||||
# SCCSID:
|
||||
# @(#)fixcpp.sh 1.4 90/08/08 22:46:32 (sjg)
|
||||
#
|
||||
# @(#)Copyright (c) 1990 Simon J. Gerraty
|
||||
#
|
||||
# This is free software. It comes with NO WARRANTY.
|
||||
# Everyone is granted permission to copy, modify and
|
||||
# redistribute this source code provided that all
|
||||
# recipients are given similar rights, and that the above
|
||||
# copyright notice and this notice are preserved in all
|
||||
# copies.
|
||||
|
||||
TMPF=/tmp/fixcpp.$$
|
||||
NEWDIR=
|
||||
BAKDIR=
|
||||
PATCHF=
|
||||
CHECK=
|
||||
|
||||
set -- `getopt "cp:b:n:" $*`
|
||||
if [ $? != 0 ]; then
|
||||
echo "$0 [-c][-p patch_file][-b bakup_dir][-n new_dir] file [file ...]" >&2
|
||||
exit 1
|
||||
fi
|
||||
for i in $*
|
||||
do
|
||||
case $i in
|
||||
-c) CHECK=yes; shift;;
|
||||
-p) PATCHF=$2; shift 2;;
|
||||
-b) BAKDIR=$2; shift 2;;
|
||||
-n) NEWDIR=$2; shift 2;;
|
||||
--) shift; break;;
|
||||
esac
|
||||
done
|
||||
NEWDIR=${NEWDIR:-.}
|
||||
if [ $BAKDIR ]; then
|
||||
if [ ! -d $BAKDIR ]; then
|
||||
echo "$0: no such directory -- $BAKDIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
for i in $*
|
||||
do
|
||||
if [ $BAKDIR ]; then
|
||||
mv $i $BAKDIR
|
||||
infile=$BAKDIR/$i
|
||||
else
|
||||
if [ "$NEWDIR" = "." ]; then
|
||||
mv $i ${TMPF}
|
||||
infile=${TMPF}
|
||||
else
|
||||
infile=$i
|
||||
fi
|
||||
fi
|
||||
sed -e 's;^#\([ ]*e[nl][^ ]*[ ][ ]*\)\([^/ ][^\*].*\);#\1/* \2 */;' -e 's;^#\([ ]*e[nl][^ ]*[ ][ ]*\)\([^/ ]\)$;#\1/* \2 */;' $infile >${NEWDIR}/$i
|
||||
if [ "${CHECK}" = "yes" -o ${PATCHF} ]; then
|
||||
if cmp -s $infile ${NEWDIR}/$i ; then
|
||||
if [ "${CHECK}" = "yes" ]; then
|
||||
if [ $BAKDIR ]; then
|
||||
mv $infile ${NEWDIR}/$i
|
||||
else
|
||||
rm ${NEWDIR}/$i
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [ $PATCHF ]; then
|
||||
diff -c $infile ${NEWDIR}/$i >> ${PATCHF}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
rm -f ${TMPF}
|
Loading…
Reference in New Issue
Block a user