summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/fixcpp
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1996-09-18 05:35:50 +0000
committerpeter <peter@FreeBSD.org>1996-09-18 05:35:50 +0000
commitd4691e641ba47cb86eef80f5c879e13f9d961724 (patch)
tree5b7ea73fc49c8998d9dc87d3eeff5b96439e6856 /contrib/gcc/fixcpp
downloadFreeBSD-src-d4691e641ba47cb86eef80f5c879e13f9d961724.zip
FreeBSD-src-d4691e641ba47cb86eef80f5c879e13f9d961724.tar.gz
Import of unmodified (but trimmed) gcc-2.7.2. The bigger parts of the
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
Diffstat (limited to 'contrib/gcc/fixcpp')
-rwxr-xr-xcontrib/gcc/fixcpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/contrib/gcc/fixcpp b/contrib/gcc/fixcpp
new file mode 100755
index 0000000..044353f
--- /dev/null
+++ b/contrib/gcc/fixcpp
@@ -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}
OpenPOWER on IntegriCloud