OSDN Git Service

Clean up some X11 header files for C++; problems found on RS/6000.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Feb 1994 22:08:06 +0000 (22:08 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 Feb 1994 22:08:06 +0000 (22:08 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6547 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fixincludes

index d792cbf..0b5c140 100755 (executable)
@@ -1051,6 +1051,86 @@ if [ -r ${LIB}/$file ]; then
   fi
 fi
 
+# There are several name conflicts with C++ reserved words in X11
+# header files.  These are fixed in some versions, so don't do the
+# fixes if we find __cplusplus in the file.  These were found on the
+# RS/6000.
+
+# class in X11/ShellP.h
+file=X11/ShellP.h
+if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
+  mkdir ${LIB}/sys 2>/dev/null
+  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
+  if grep __cplusplus ${LIB}/$file >/dev/null 2>/dev/null; then
+    true;
+  else
+    echo Fixing $file, field class
+    sed -e '/char [*]class;/i\
+#ifdef __cplusplus\
+       char *c_class;\
+#else' \
+        -e '/char [*]class;/a\
+#endif' ${LIB}/$file > ${LIB}/${file}.sed
+    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
+  fi
+  if cmp $file ${LIB}/$file >/dev/null 2>&1; then
+    rm -f ${LIB}/$file
+  fi
+fi
+# new in Xm/Traversal.h
+file=Xm/Traversal.h
+if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
+  mkdir ${LIB}/sys 2>/dev/null
+  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
+  if grep __cplusplus ${LIB}/$file >/dev/null 2>/dev/null; then
+    true;
+  else
+    echo Fixing $file, field new
+    sed -e '/Widget    old, new;/i\
+#ifdef __cplusplus\
+       Widget  old, c_new;\
+#else' \
+        -e '/Widget    old, new;/a\
+#endif' ${LIB}/$file > ${LIB}/${file}.sed
+    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
+  fi
+  if cmp $file ${LIB}/$file >/dev/null 2>&1; then
+    rm -f ${LIB}/$file
+  fi
+fi
+# class in Xm/BaseClassI.h
+file=Xm/BaseClassI.h
+if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
+  mkdir ${LIB}/sys 2>/dev/null
+  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
+  if grep __cplusplus ${LIB}/$file >/dev/null 2>/dev/null; then
+    true;
+  else
+    echo Fixing $file, prototype parameter name
+    sed -e 's/ class[)]/ c_class)/g' ${LIB}/$file > ${LIB}/${file}.sed
+    rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
+  fi
+  if cmp $file ${LIB}/$file >/dev/null 2>&1; then
+    rm -f ${LIB}/$file
+  fi
+fi
+
+
 # NeXT 2.0 defines 'int wait(union wait*)', which conflicts with Posix.1.
 # Note that version 3 of the NeXT system has wait.h in a different directory,
 # so that this code won't do anything.  But wait.h in version 3 has a