diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 1994-02-13 22:08:06 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 1994-02-13 22:08:06 +0000 |
commit | 266f3aacd548ed854b16123f2d9a1e59c5915397 (patch) | |
tree | 3203fbe01eb5b2e8871a5b255fb16b4050332c73 /gcc | |
parent | f09dcaa805ef96150be52bb0ace52e22f20a724c (diff) | |
download | gcc-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-x | gcc/fixincludes | 80 |
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 |