aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>1994-02-13 22:08:06 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>1994-02-13 22:08:06 +0000
commit266f3aacd548ed854b16123f2d9a1e59c5915397 (patch)
tree3203fbe01eb5b2e8871a5b255fb16b4050332c73 /gcc
parentf09dcaa805ef96150be52bb0ace52e22f20a724c (diff)
downloadgcc-266f3aacd548ed854b16123f2d9a1e59c5915397.zip
gcc-266f3aacd548ed854b16123f2d9a1e59c5915397.tar.gz
gcc-266f3aacd548ed854b16123f2d9a1e59c5915397.tar.bz2
Clean up some X11 header files for C++; problems found on RS/6000.
From-SVN: r6547
Diffstat (limited to 'gcc')
-rwxr-xr-xgcc/fixincludes80
1 files changed, 80 insertions, 0 deletions
diff --git a/gcc/fixincludes b/gcc/fixincludes
index d792cbf..0b5c140 100755
--- a/gcc/fixincludes
+++ b/gcc/fixincludes
@@ -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