From: Bruno Haible Date: Wed, 22 Dec 2010 16:37:34 +0000 (+0100) Subject: Port extended stdio modules to HP NonStop Kernel. X-Git-Tag: v0.1~3490 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=1a56c64d39a790bc69b58166f7b963334951e1a9;p=gnulib.git Port extended stdio modules to HP NonStop Kernel. * lib/stdio-impl.h (_IOERR, _IOREAD, _IOWRT, _IORW) [__TANDEM]: New macros. * lib/fbufmode.c: Update comments. * lib/fflush.c: Likewise. * lib/fpurge.c: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.c: Likewise. * lib/freadptr.c: Likewise. * lib/freadseek.c: Likewise. * lib/fseeko.c: Likewise. * lib/fseterr.c: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.c: Likewise. Reported by Joachim Schmitz . --- diff --git a/ChangeLog b/ChangeLog index c2141ed0c..e0e4e3afd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,24 @@ 2010-12-22 Bruno Haible + Port extended stdio modules to HP NonStop Kernel. + * lib/stdio-impl.h (_IOERR, _IOREAD, _IOWRT, _IORW) [__TANDEM]: New + macros. + * lib/fbufmode.c: Update comments. + * lib/fflush.c: Likewise. + * lib/fpurge.c: Likewise. + * lib/freadable.c: Likewise. + * lib/freadahead.c: Likewise. + * lib/freading.c: Likewise. + * lib/freadptr.c: Likewise. + * lib/freadseek.c: Likewise. + * lib/fseeko.c: Likewise. + * lib/fseterr.c: Likewise. + * lib/fwritable.c: Likewise. + * lib/fwriting.c: Likewise. + Reported by Joachim Schmitz . + +2010-12-22 Bruno Haible + ttyname_r: Work around bug on OSF/1 5.1. * doc/posix-functions/ttyname_r.texi: Mention the OSF/1 bug. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Detect the OSF/1 bug. Say "no" diff --git a/lib/fbufmode.c b/lib/fbufmode.c index 42a305b59..1ccf0c4f9 100644 --- a/lib/fbufmode.c +++ b/lib/fbufmode.c @@ -50,7 +50,7 @@ fbufmode (FILE *fp) return _IOFBF; #elif defined __EMX__ /* emx+gcc */ return fp->_flags & (_IOLBF | _IONBF | _IOFBF); -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ # if HAVE___FLBF /* Solaris >= 7 */ if (__flbf (fp)) return _IOLBF; diff --git a/lib/fflush.c b/lib/fflush.c index ead487549..a84a0a25f 100644 --- a/lib/fflush.c +++ b/lib/fflush.c @@ -60,7 +60,7 @@ clear_ungetc_buffer (FILE *fp) fp->_ungetc_count = 0; fp->_rcount = - fp->_rcount; } -# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ /* Nothing to do. */ # else /* other implementations */ fseeko (fp, 0, SEEK_CUR); diff --git a/lib/fpurge.c b/lib/fpurge.c index 079a2995a..eaa6d2c53 100644 --- a/lib/fpurge.c +++ b/lib/fpurge.c @@ -91,7 +91,7 @@ fpurge (FILE *fp) fp->_wcount = 0; fp->_ungetc_count = 0; return 0; -# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +# elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ fp->_ptr = fp->_base; if (fp->_ptr != NULL) fp->_cnt = 0; diff --git a/lib/freadable.c b/lib/freadable.c index 9464408ba..1ab3e53f0 100644 --- a/lib/freadable.c +++ b/lib/freadable.c @@ -33,7 +33,7 @@ freadable (FILE *fp) return (fp_->_flags & (__SRW | __SRD)) != 0; #elif defined __EMX__ /* emx+gcc */ return (fp->_flags & (_IORW | _IOREAD)) != 0; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ return (fp->_flag & (_IORW | _IOREAD)) != 0; #elif defined __QNX__ /* QNX */ return (fp->_Mode & 0x1 /* _MOPENR */) != 0; diff --git a/lib/freadahead.c b/lib/freadahead.c index 50ff27ee2..09424b80c 100644 --- a/lib/freadahead.c +++ b/lib/freadahead.c @@ -48,7 +48,7 @@ freadahead (FILE *fp) /* equivalent to (fp->_ungetc_count == 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount) */ return (fp->_rcount > 0 ? fp->_rcount : fp->_ungetc_count - fp->_rcount); -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ if ((fp_->_flag & _IOWRT) != 0) return 0; return fp_->_cnt; diff --git a/lib/freading.c b/lib/freading.c index 202c3f76c..4b8beedda 100644 --- a/lib/freading.c +++ b/lib/freading.c @@ -39,7 +39,7 @@ freading (FILE *fp) return (fp_->_flags & __SRD) != 0; #elif defined __EMX__ /* emx+gcc */ return (fp->_flags & _IOREAD) != 0; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ # if defined __sun /* Solaris */ return (fp->_flag & _IOREAD) != 0 && (fp->_flag & _IOWRT) == 0; # else diff --git a/lib/freadptr.c b/lib/freadptr.c index 05f501bfe..2fcdf81cc 100644 --- a/lib/freadptr.c +++ b/lib/freadptr.c @@ -56,7 +56,7 @@ freadptr (FILE *fp, size_t *sizep) abort (); *sizep = fp->_rcount; return fp->_ptr; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ if ((fp_->_flag & _IOWRT) != 0) return NULL; size = fp_->_cnt; diff --git a/lib/freadseek.c b/lib/freadseek.c index 99af4370a..11fad2999 100644 --- a/lib/freadseek.c +++ b/lib/freadseek.c @@ -42,7 +42,7 @@ freadptrinc (FILE *fp, size_t increment) #elif defined __EMX__ /* emx+gcc */ fp->_ptr += increment; fp->_rcount -= increment; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ fp_->_ptr += increment; fp_->_cnt -= increment; #elif defined __UCLIBC__ /* uClibc */ diff --git a/lib/fseeko.c b/lib/fseeko.c index 1fd1266bf..f5359683e 100644 --- a/lib/fseeko.c +++ b/lib/fseeko.c @@ -69,7 +69,7 @@ fseeko (FILE *fp, off_t offset, int whence) && fp->_rcount == 0 && fp->_wcount == 0 && fp->_ungetc_count == 0) -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ if (fp_->_ptr == fp_->_base && (fp_->_ptr == NULL || fp_->_cnt == 0)) #elif defined __UCLIBC__ /* uClibc */ @@ -131,7 +131,7 @@ fseeko (FILE *fp, off_t offset, int whence) fp_->_flags &= ~__SEOF; #elif defined __EMX__ /* emx+gcc */ fp->_flags &= ~_IOEOF; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ fp->_flag &= ~_IOEOF; #elif defined __MINT__ /* Atari FreeMiNT */ fp->__offset = pos; diff --git a/lib/fseterr.c b/lib/fseterr.c index b1a379ebb..f14d3c047 100644 --- a/lib/fseterr.c +++ b/lib/fseterr.c @@ -35,7 +35,7 @@ fseterr (FILE *fp) fp_->_flags |= __SERR; #elif defined __EMX__ /* emx+gcc */ fp->_flags |= _IOERR; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ fp_->_flag |= _IOERR; #elif defined __UCLIBC__ /* uClibc */ fp->__modeflags |= __FLAG_ERROR; diff --git a/lib/fwritable.c b/lib/fwritable.c index a3f879580..5e2f4a603 100644 --- a/lib/fwritable.c +++ b/lib/fwritable.c @@ -33,7 +33,7 @@ fwritable (FILE *fp) return (fp_->_flags & (__SRW | __SWR)) != 0; #elif defined __EMX__ /* emx+gcc */ return (fp->_flags & (_IORW | _IOWRT)) != 0; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ return (fp->_flag & (_IORW | _IOWRT)) != 0; #elif defined __QNX__ /* QNX */ return (fp->_Mode & 0x2 /* _MOPENW */) != 0; diff --git a/lib/fwriting.c b/lib/fwriting.c index 12cd25e23..5322e9f3b 100644 --- a/lib/fwriting.c +++ b/lib/fwriting.c @@ -33,7 +33,7 @@ fwriting (FILE *fp) return (fp_->_flags & __SWR) != 0; #elif defined __EMX__ /* emx+gcc */ return (fp->_flags & _IOWRT) != 0; -#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw */ +#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */ return (fp->_flag & _IOWRT) != 0; #elif defined __UCLIBC__ /* uClibc */ return (fp->__modeflags & __FLAG_WRITING) != 0; diff --git a/lib/stdio-impl.h b/lib/stdio-impl.h index 0e67f66ef..9f5cdfeeb 100644 --- a/lib/stdio-impl.h +++ b/lib/stdio-impl.h @@ -75,6 +75,17 @@ /* SystemV derived implementations. */ +#ifdef __TANDEM /* NonStop Kernel */ +# ifndef _IOERR +/* These values were determined by the program 'stdioext-flags' at + . */ +# define _IOERR 0x40 +# define _IOREAD 0x80 +# define _IOWRT 0x4 +# define _IORW 0x100 +# endif +#endif + #if defined _IOERR # if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */