fixes for hints/svr4 for UnixWare >= 2.1.1
John Hughes [Thu, 7 Aug 1997 00:00:00 +0000 (00:00 +0000)]
We've just upgraded from UnixWare 2.1 to 2.1.2 (*See footnote).  I was
supprised to see that I got

d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'

A quick bit of spelunking showed that in the 2.1->2.1.1 upgrade stdio.h
got modified, the _cnt and _ptr fields in FILE* got renamed to __cnt and
__ptr.

Here's a patch to hints/svr4.sh, all tests pass.

p5p-msgid: 199707021230.OAA24230@titanic.AtlanTech.COM

hints/svr4.sh

index dbae40d..922736a 100644 (file)
@@ -33,12 +33,23 @@ usevfork='false'
 d_lstat=define
 
 # UnixWare has a broken csh.  The undocumented -X argument to uname is probably
-# a reasonable way of detecting UnixWare
+# a reasonable way of detecting UnixWare.  Also in 2.1.1 the fields in
+# FILE* got renamed!
 uw_ver=`uname -v`
 uw_isuw=`uname -X 2>&1 | grep Release`
-if [ "$uw_isuw" = "Release = 4.2MP" -a \
-     \( "$uw_ver" = "2.1" -o "$uw_ver" = "2.1.1" \) ]; then
-   d_csh='undef'
+if [ "$uw_isuw" = "Release = 4.2MP" ]; then
+   case $uw_ver in
+   2.1)
+      d_csh='undef'
+      ;;
+   2.1.*)
+      d_csh='undef'
+      stdio_cnt='((fp)->__cnt)'
+      d_stdio_cnt_lval='define'
+      stdio_ptr='((fp)->__ptr)'
+      d_stdio_ptr_lval='define'
+      ;;
+   esac
 fi
 
 # DDE SMES Supermax Enterprise Server