|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T f
Length: 2777 (0xad9) Types: TextFile Names: »fixincludes«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89 └─⟦d53cfc7b2⟧ »./gcc-1.35.tar.Z« └─⟦90f628c1d⟧ └─⟦this⟧ »gcc-1.35/fixincludes«
#! /bin/sh # Install modified versions of certain ANSI-incompatible system header files # which are fixed to work correctly with ANSI C # and placed in a directory that GNU C will search. # This works properly on a Sun in system version 3.4; # for other versions, you had better check. # Directory in which to store the results. LIB=/usr/lib/gnu/gcc-include # Determine whether this system has symbolic links. if ln -s X $LIB/ShouldNotExist 2>/dev/null; then rm -f $LIB/ShouldNotExist LINKS=true else LINKS=false fi echo 'Making directories:' cd /usr/include mkdir $LIB > /dev/null 2>&1 if $LINKS; then files=`ls -LR | sed -n s/:$//p` else files=`find . -type d -print` fi for file in $files; do mkdir $LIB/$file > /dev/null 2>&1 done # treetops gets an alternating list # of old directories to copy # and the new directories to copy to. treetops="/usr/include ${LIB}" if $LINKS; then echo 'Making internal symbolic directory links' for file in $files; do dest=`ls -ld $file | sed -n 's/.*-> //p'` if [ "$dest" ]; then if expr $dest : '[^/].*' > /dev/null; then rmdir ${LIB}/$file > /dev/null 2>&1 rm -f ${LIB}/$file > /dev/null 2>&1 ln -s $dest ${LIB}/$file > /dev/null 2>&1 else # dont make links outside /usr/include treetops="$treetops $dest ${LIB}/$file" fi fi done fi set - $treetops while [ $# != 0 ]; do # $1 is an old directory to copy, and $2 is the new directory to copy to. echo 'Finding header files in $1:' cd $1 files=`find . -type f -print` echo 'Checking header files:' for file in $files; do if egrep -s '[ ]_IO[A-Z]*\(|#define._IO|CTRL' $file; then echo Fixing $file if [ -r $file ]; then cp $file $2/$file >/dev/null 2>&1 \ || echo "Can't copy $file" chmod +w $2/$file ex $2/$file <<EOF g/[ ]_IO[A-Z]*(/s/(\(.\),/('\1',/ g/[ ]_IO[A-Z]*(.*\\$/.,+1s/(\(.\),/('\1',/ g/#define._IO/s/'x'/x/g g/#define._IO.*\\$/.,+1s/'x'/x/g g/[^A-Z]CTRL[ ]*(/s/\(.\))/'\1')/ g/#define.CTRL/s/'c'/c/g wq EOF if cmp $file $2/$file >/dev/null 2>&1; then echo Deleting $2/$file\; no fixes were needed. rm $2/$file fi fi fi done shift; shift done # Fix one other error in this file: a mismatched quote not inside a C comment. file=sundev/vuid_event.h if [ -r $file ]; then if [ ! -r ${LIB}/$file ]; then cp $file ${LIB}/$file >/dev/null 2>&1 \ || echo "Can't copy $file" chmod +w ${LIB}/$file fi fi if [ -r ${LIB}/sundev/vuid_event.h ]; then echo Fixing sundev/vuid_event.h comment ex ${LIB}/sundev/vuid_event.h <<EOF g/doesn't/s/doesn't/doesn''t/ wq EOF fi echo 'Removing unneeded directories:' cd $LIB files=`find . -type d -print | sort -r` for file in $files; do rmdir $LIB/$file > /dev/null 2>&1 done