OSDN Git Service

entered into RCS
authorroland <roland@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 May 1992 06:35:33 +0000 (06:35 +0000)
committerroland <roland@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 May 1992 06:35:33 +0000 (06:35 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@927 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fixcpp [new file with mode: 0755]

diff --git a/gcc/fixcpp b/gcc/fixcpp
new file mode 100755 (executable)
index 0000000..044353f
--- /dev/null
@@ -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}