fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h and term.h from fixinc...
authorRobert Lipe <robertl@dgii.com>
Thu, 3 Sep 1998 09:43:46 +0000 (09:43 +0000)
committerRobert Lipe <robertl@gcc.gnu.org>
Thu, 3 Sep 1998 09:43:46 +0000 (09:43 +0000)
* fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
and term.h from fixinc.wrap.

From-SVN: r22206

gcc/ChangeLog
gcc/fixinc.sco

index 9bf581699081932cb2b21b3cb964fa3e0e763c74..0d89f27f70d33a75dc781ceedfa69316485f415c 100644 (file)
@@ -1,3 +1,8 @@
+Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
+
+       * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
+       and term.h from fixinc.wrap.
+
 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
index c0ca7826d7fadf0e471163cd3afe2eacddbb3613..205a8822af1d60f4f85feffb22488d29cf8316ff 100755 (executable)
@@ -369,6 +369,39 @@ extern "C"\
   fi
 fi
 
+# This fix has the regex modified from the from fixinc.wrap
+# Avoid the definition of the bool type in the following files when using
+# g++, since it's now an official type in the C++ language.
+for file in term.h tinfo.h
+do
+  if [ -r $INPUT/$file ]; then
+    echo Checking $INPUT/$file
+    w='[        ]'
+    if grep "typedef$w.*char$w.*bool$w*;" $INPUT/$file >/dev/null
+    then
+      echo Fixed $file
+      rm -f $LIB/$file
+      cat <<'__EOF__' >$LIB/$file
+#ifndef _CURSES_H_WRAPPER
+#ifdef __cplusplus
+# define bool __curses_bool_t
+#endif
+#include_next <curses.h>
+#ifdef __cplusplus
+# undef bool
+#endif
+#define _CURSES_H_WRAPPER
+#endif /* _CURSES_H_WRAPPER */
+__EOF__
+      # Define _CURSES_H_WRAPPER at the end of the wrapper, not the start,
+      # so that if #include_next gets another instance of the wrapper,
+      # this will follow the #include_next chain until we arrive at
+      # the real <curses.h>.
+      chmod a+r $LIB/$file
+    fi
+  fi
+done
+
 echo 'Removing unneeded directories:'
 cd $LIB
 files=`find . -type d -print | sort -r`