elif expr $x : "${INPUT}/.*" > /dev/null; then
# Y gets the actual target dir name, relative to ${INPUT}.
y=`echo $x | sed -n "s&${INPUT}/&&p"`
- echo $file '->' $y ': Making link'
+ # DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
+ dots=`echo "$file" |
+ sed -e 's@^./@@' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
+ echo $file '->' $dots$y ': Making link'
rm -fr ${LIB}/$file > /dev/null 2>&1
- ln -s ${LIB}/$y ${LIB}/$file > /dev/null 2>&1
+ ln -s $dots$y ${LIB}/$file > /dev/null 2>&1
else
# If the link is to a dir $target outside ${INPUT},
# repoint the link at ${INPUT}/root$target
;;
esac
done
+ # DOTS is the relative path from ${LIB}/$file's dir back to ${LIB}.
+ dots=`echo "$file" |
+ sed -e 's@^./@@' -e 's@[^/][^/]*@..@g' -e 's@..$@@'`
rm -fr ${LIB}/$file > /dev/null 2>&1
- ln -s ${LIB}/root$x ${LIB}/$file > /dev/null 2>&1
+ ln -s ${dots}root$x ${LIB}/$file > /dev/null 2>&1
treetops="$treetops $x ${LIB}/root$x"
fi
fi
:loop
/\\$/ N
/\\$/ b loop
- s%^\([ ]*#[ ]*endif[ ]*\)\([^/ ].*\)$%\1/* \2 */%
- s%^\([ ]*#[ ]*else[ ]*\)\([^/ ].*\)$%\1/* \2 */%
+ s%^\([ ]*#[ ]*else\)[ ]*/[^*].*%\1%
+ s%^\([ ]*#[ ]*else\)[ ]*[^/ ].*%\1%
+ s%^\([ ]*#[ ]*endif\)[ ]*/[^*].*%\1%
+ s%^\([ ]*#[ ]*endif\)[ ]*[^/ ].*%\1%
/\/\/[^*]/ s|//\(.*\)$|/*\1*/|
/[ ]_IO[A-Z]*[ ]*(/ s/\(_IO[A-Z]*[ ]*(\)\(.\),/\1'\''\2'\'',/
/[ ]BSD43__IO[A-Z]*[ ]*(/ s/(\(.\),/('\''\1'\'',/
if [ -r ${LIB}/$file ]; then
echo Fixing $file
-sed -e '/size_t.*;/i\
+sed -e '/[ ]size_t.*;/i\
#ifndef _GCC_SIZE_T\
#define _GCC_SIZE_T' \
- -e '/size_t.*;/a\
+ -e '/[ ]size_t.*;/a\
#endif' \
- -e '/ptrdiff_t.*;/i\
+ -e '/[ ]ptrdiff_t.*;/i\
#ifndef _GCC_PTRDIFF_T\
#define _GCC_PTRDIFF_T' \
- -e '/ptrdiff_t.*;/a\
+ -e '/[ ]ptrdiff_t.*;/a\
#endif' \
- -e '/wchar_t.*;/i\
+ -e '/[ ]wchar_t.*;/i\
#ifndef _GCC_WCHAR_T\
#define _GCC_WCHAR_T' \
- -e '/wchar_t.*;/a\
+ -e '/[ ]wchar_t.*;/a\
#endif' ${LIB}/$file > ${LIB}/${file}.sed
rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
if cmp $file ${LIB}/$file >/dev/null 2>&1; then
fi
fi
-# Remove nested comments created by #endifs in a comment (Ultrix 4.1)
-# Only needed if commenting out junk after #endif.
-file=signal.h
-if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
- cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
- chmod +w ${LIB}/$file 2>/dev/null
- chmod a+r ${LIB}/$file 2>/dev/null
-fi
-
-if [ -r ${LIB}/$file ]; then
- echo Fixing $file, nested comments
- sed -e 's/^[ ]*#endif.*/#endif/' ${LIB}/$file > ${LIB}/${file}.sed
- rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
- if cmp $file ${LIB}/$file >/dev/null 2>&1; then
- rm -f ${LIB}/$file
- fi
-fi
-
# Check for superfluous `static' (in Ultrix 4.2)
file=machine/cpu.h
if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
fi
fi
-
-# Fix bogus comment in <locale.h> on SunOS 4.1.
-file=locale.h
-if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
- cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
- chmod +w ${LIB}/$file 2>/dev/null
- chmod a+r ${LIB}/$file 2>/dev/null
-fi
-
-if [ -r ${LIB}/$file ]; then
- echo Fixing $file
- sed -e 's%#endif / \*%#endif /\* %g' ${LIB}/$file > ${LIB}/${file}.sed
- rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
- if cmp $file ${LIB}/$file >/dev/null 2>&1; then
- rm -f ${LIB}/$file
- fi
-fi
-
# Fix bogus #ifdef in <hsfs/hsfs_spec.h> on SunOS 4.1.
file=hsfs/hsfs_spec.h
if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
fi
fi
-# Fix line in IRIX 4.0.1 header file. The sed script turns
-# #define EM_CTRL (CUTIOC|0x1)
-# into
-# #define EM_CTRL (CUTIOC|0x'1')
-file=sys/t3270reg.h
-if [ -r ${LIB}/$file ]; then
- echo Fixing $file, overeager sed script
- sed -e "s/0x'1'/0x1/" ${LIB}/$file > ${LIB}/${file}.sed
- rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
- if cmp $file ${LIB}/$file >/dev/null 2>&1; then
- rm -f ${LIB}/$file
- fi
-fi
-
# Turning // comments into /* */ comments trashes this IRIX 4.0.1
# header file, which embeds // comments inside multi-line /* */
# comments. If this looks like the IRIX header file, we refix it by
-e 's@ _VA_LIST_));@ __gnuc_va_list));@' \
-e 's@ va_list@ __va_list__@' \
-e 's@\*va_list@*__va_list__@' \
+ -e 's@_NEED___VA_LIST@_NEED___Va_LIST@' \
-e 's@VA_LIST@DUMMY_VA_LIST@' \
+ -e 's@_NEED___Va_LIST@_NEED___VA_LIST@' \
${LIB}/$file >> ${LIB}/${file}.sed
rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
sed '/OPEN_MAX/s,/\* Max, Max,' < ${LIB}/$file. >${LIB}/$file
fi
-# These files on Ultrix 4.2 put comments around instances of #endif
-# __mips. When the sed expression turns that into #endif /* __mips */
-# the comment ends prematurely.
-for file in sys/audit.h sys/signal.h; do
- if [ -r ${LIB}/${file} ]; then
- echo Fixing $file, early comment termination
- sed -e 's|^#endif /\*.*\*/|#endif|g' ${LIB}/${file} > ${LIB}/${file}.sed
- rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
- fi
-done
-
echo 'Removing unneeded directories:'
cd $LIB
files=`find . -type d -print | sort -r`