|
|
1.1 ! root 1: #!/bin/sh ! 2: # ! 3: # NAME: ! 4: # fixcpp - fix CPP errors ! 5: # ! 6: # SYNOPSIS: ! 7: # fixcpp [-c][-p patch_file][-b bak_dir][-n new_dir] files(s) ! 8: # ! 9: # DESCRIPTION: ! 10: # For each named file, use sed(1) to fixup any descriptive ! 11: # text after #else or #endif or that is not properly ! 12: # commented as this causes ANSI compilers to generate ! 13: # unnecessary warnings. ! 14: # ! 15: # Naturally this script is not guaranteed to be bullet ! 16: # proof, use of -n or -b is advisable! ! 17: # ! 18: # -c causes fixcpp to make sure that only files that ! 19: # needed changing are affected by returning the original ! 20: # file to its original location if no changes were needed. ! 21: # ! 22: # -p causes fixcpp to append to a patch file the context ! 23: # diffs of the changes wrought. ! 24: # ! 25: # SEE ALSO: ! 26: # sed(1) ! 27: # ! 28: # AMENDED: ! 29: # 90/08/08 22:46:32 (sjg) ! 30: # ! 31: # RELEASED: ! 32: # 90/08/08 22:46:34 v1.4 ! 33: # ! 34: # SCCSID: ! 35: # @(#)fixcpp.sh 1.4 90/08/08 22:46:32 (sjg) ! 36: # ! 37: # @(#)Copyright (c) 1990 Simon J. Gerraty ! 38: # ! 39: # This is free software. It comes with NO WARRANTY. ! 40: # Everyone is granted permission to copy, modify and ! 41: # redistribute this source code provided that all ! 42: # recipients are given similar rights, and that the above ! 43: # copyright notice and this notice are preserved in all ! 44: # copies. ! 45: ! 46: TMPF=/tmp/fixcpp.$$ ! 47: NEWDIR= ! 48: BAKDIR= ! 49: PATCHF= ! 50: CHECK= ! 51: ! 52: set -- `getopt "cp:b:n:" $*` ! 53: if [ $? != 0 ]; then ! 54: echo "$0 [-c][-p patch_file][-b bakup_dir][-n new_dir] file [file ...]" >&2 ! 55: exit 1 ! 56: fi ! 57: for i in $* ! 58: do ! 59: case $i in ! 60: -c) CHECK=yes; shift;; ! 61: -p) PATCHF=$2; shift 2;; ! 62: -b) BAKDIR=$2; shift 2;; ! 63: -n) NEWDIR=$2; shift 2;; ! 64: --) shift; break;; ! 65: esac ! 66: done ! 67: NEWDIR=${NEWDIR:-.} ! 68: if [ $BAKDIR ]; then ! 69: if [ ! -d $BAKDIR ]; then ! 70: echo "$0: no such directory -- $BAKDIR" >&2 ! 71: exit 1 ! 72: fi ! 73: fi ! 74: ! 75: ! 76: ! 77: for i in $* ! 78: do ! 79: if [ $BAKDIR ]; then ! 80: mv $i $BAKDIR ! 81: infile=$BAKDIR/$i ! 82: else ! 83: if [ "$NEWDIR" = "." ]; then ! 84: mv $i ${TMPF} ! 85: infile=${TMPF} ! 86: else ! 87: infile=$i ! 88: fi ! 89: fi ! 90: sed -e 's;^#\([ ]*e[nl][^ ]*[ ][ ]*\)\([^/ ][^\*].*\);#\1/* \2 */;' -e 's;^#\([ ]*e[nl][^ ]*[ ][ ]*\)\([^/ ]\)$;#\1/* \2 */;' $infile >${NEWDIR}/$i ! 91: if [ "${CHECK}" = "yes" -o ${PATCHF} ]; then ! 92: if cmp -s $infile ${NEWDIR}/$i ; then ! 93: if [ "${CHECK}" = "yes" ]; then ! 94: if [ $BAKDIR ]; then ! 95: mv $infile ${NEWDIR}/$i ! 96: else ! 97: rm ${NEWDIR}/$i ! 98: fi ! 99: fi ! 100: else ! 101: if [ $PATCHF ]; then ! 102: diff -c $infile ${NEWDIR}/$i >> ${PATCHF} ! 103: fi ! 104: fi ! 105: fi ! 106: ! 107: done ! 108: ! 109: rm -f ${TMPF}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.