summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc/fixcpp
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>1999-05-26 13:38:57 +0000
committerMarc Espie <espie@cvs.openbsd.org>1999-05-26 13:38:57 +0000
commit0126e157b87f137fc08dc7f46f6c291b9d06ac5d (patch)
treef8555e3e504eb82b4cd3cba5cec20ae4ce8124ff /gnu/egcs/gcc/fixcpp
parentff8e9a4356e55ed142306c3a375fa280800abc86 (diff)
egcs projects compiler system
Exact copy of the snapshot, except for the removal of texinfo/ gcc/ch/ libchill/
Diffstat (limited to 'gnu/egcs/gcc/fixcpp')
-rw-r--r--gnu/egcs/gcc/fixcpp109
1 files changed, 109 insertions, 0 deletions
diff --git a/gnu/egcs/gcc/fixcpp b/gnu/egcs/gcc/fixcpp
new file mode 100644
index 00000000000..044353f3a43
--- /dev/null
+++ b/gnu/egcs/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}