|
|
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