jbw%bucsf.BU.EDU@BU-CS.BU.EDU (Joe Wells) (04/24/89)
The fixincludes script that comes with gcc 1.34 fails to transform macro definitions like this: #define _IOR(x, y, t) (IOC_OUT | ((sizeof (t) & IOCPARM_MASK) << 16) | \ ('x' << 8) | y) This occurs because the macro definition is on two lines. I have made a change to fixincludes so that it will work no matter how many continuation lines are used in a macro definition. I'm including a patch, for anyone who is interested. Enjoy! -- Joe Wells <jbw@bucsf.bu.edu> jbw%bucsf.bu.edu@bu-it.bu.edu ...!harvard!bu-cs!bucsf!jbw ---------------------------------------------------------------------- *** fixincludes.orig Sun Apr 23 16:52:24 1989 --- fixincludes Sun Apr 23 16:34:49 1989 *************** *** 6,12 **** # for other versions, you had better check. # Directory in which to store the results. ! LIB=/usr15/degree/stud/jbw/gcc-include2 echo 'Making directories:' cd /usr/include --- 6,12 ---- # for other versions, you had better check. # Directory in which to store the results. ! LIB=/usr15/degree/stud/jbw/gcc-include echo 'Making directories:' cd /usr/include *************** *** 26,38 **** cp $file ${LIB}/$file >/dev/null 2>&1 \ || echo "Can't copy $file" chmod +w ${LIB}/$file ! ex ${LIB}/$file <<EOF ! g/[ ]_IO[A-Z]*(/s/(\(.\),/('\1',/ ! g/#define._IO/s/'x'/x/g ! g/[^A-Z]CTRL[ ]*(/s/\(.\))/'\1')/ ! g/#define.CTRL/s/'c'/c/g ! wq ! EOF if cmp $file ${LIB}/$file >/dev/null 2>&1; then echo Deleting ${LIB}/$file\; no fixes were needed. rm ${LIB}/$file --- 26,41 ---- cp $file ${LIB}/$file >/dev/null 2>&1 \ || echo "Can't copy $file" chmod +w ${LIB}/$file ! sed -e ' ! :loop ! /\\$/ N ! /\\$/ b loop ! /[ ]_IO[A-Z]*(/ s/(\(.\),/('\''\1'\'',/ ! /#define._IO/ s/'\''x'\''/x/g ! /[^A-Z]CTRL[ ]*(/ s/\(.\))/'\''\1'\'')/ ! /#define.CTRL/ s/'\''c'\''/c/g ! ' ${LIB}/$file > ${LIB}/$file.sed ! mv ${LIB}/$file.sed ${LIB}/$file if cmp $file ${LIB}/$file >/dev/null 2>&1; then echo Deleting ${LIB}/$file\; no fixes were needed. rm ${LIB}/$file