From d4691e641ba47cb86eef80f5c879e13f9d961724 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 18 Sep 1996 05:35:50 +0000 Subject: 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. --- contrib/gcc/fixcpp | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100755 contrib/gcc/fixcpp (limited to 'contrib/gcc/fixcpp') 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} -- cgit v1.1