diff options
author | Marc Espie <espie@cvs.openbsd.org> | 1999-05-26 13:38:57 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 1999-05-26 13:38:57 +0000 |
commit | 0126e157b87f137fc08dc7f46f6c291b9d06ac5d (patch) | |
tree | f8555e3e504eb82b4cd3cba5cec20ae4ce8124ff /gnu/egcs/gcc/fixcpp | |
parent | ff8e9a4356e55ed142306c3a375fa280800abc86 (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/fixcpp | 109 |
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} |