OSDN Git Service

Fix typos in last change.
[pf3gnuchains/gcc-fork.git] / gcc / fixincludes
index 5a66c9d..51616e4 100755 (executable)
@@ -161,9 +161,12 @@ if $LINKS; then
        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
@@ -201,8 +204,11 @@ if $LINKS; then
                ;;
            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
@@ -270,8 +276,10 @@ while [ $# != 0 ]; do
                                   :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'\'',/
@@ -403,20 +411,20 @@ fi
 
 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
@@ -520,24 +528,6 @@ if [ -r ${LIB}/$file ]; 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
@@ -704,24 +694,6 @@ if [ -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
@@ -818,20 +790,6 @@ if [ -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
@@ -1099,17 +1057,6 @@ if test -d /etc/conf/kconfig.d \
   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`