Fix port to QNX.
authorBruno Haible <bruno@clisp.org>
Wed, 7 Nov 2007 00:36:49 +0000 (01:36 +0100)
committerBruno Haible <bruno@clisp.org>
Wed, 7 Nov 2007 00:36:49 +0000 (01:36 +0100)
ChangeLog
lib/fbufmode.c
lib/fpurge.c
lib/freadable.c
lib/freadahead.c
lib/freading.c
lib/fseterr.c
lib/fwritable.c
lib/fwriting.c

index c1426b7..58c2292 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2007-11-06  Bruno Haible  <bruno@clisp.org>
 
+       * lib/fbufmode.c (fbufmode) [QNX]: Use numerical values for flags; the
+       symbolic values are not defined in a public header.
+       * lib/freadable.c (freadable) [QNX]: Likewise.
+       * lib/freadahead.c (freadahead) [QNX]: Likewise.
+       * lib/freading.c (freading) [QNX]: Likewise.
+       * lib/fseterr.c (fseterr) [QNX]: Likewise.
+       * lib/fwritable.c (fwritable) [QNX]: Likewise.
+       * lib/fwriting.c (fwriting) [QNX]: Likewise.
+       * lib/fpurge.c (fpurge) [QNX]: Likewise. Add a return statement.
+       Reported by Alain Magloire.
+
        * m4/fpending.m4 (gl_FUNC_FPENDING): Add a variant for QNX.
 
 2007-11-05  Bruno Haible  <bruno@clisp.org>
index 15b7ca0..5f659bf 100644 (file)
@@ -75,9 +75,9 @@ fbufmode (FILE *fp)
     return _IONBF;
   return _IOFBF;
 #elif defined __QNX__               /* QNX */
-  if (fp->_Mode & _MLBF)
+  if (fp->_Mode & 0x400 /* _MLBF */)
     return _IOLBF;
-  if (fp->_Mode & _MNBF)
+  if (fp->_Mode & 0x800 /* _MNBF */)
     return _IONBF;
   return _IOFBF;
 #else
index 1446007..cc230fb 100644 (file)
@@ -106,12 +106,13 @@ fpurge (FILE *fp)
 # elif defined __QNX__              /* QNX */
   fp->_Rback = fp->_Back + sizeof (fp->_Back);
   fp->_Rsave = NULL;
-  if (fp->_Mode & _MWRITE)
+  if (fp->_Mode & 0x2000 /* _MWRITE */)
     /* fp->_Buf <= fp->_Next <= fp->_Wend */
     fp->_Next = fp->_Buf;
   else
     /* fp->_Buf <= fp->_Next <= fp->_Rend */
     fp->_Rend = fp->_Next;
+  return 0;
 # else
  #error "Please port gnulib fpurge.c to your platform! Look at the definitions of fflush, setvbuf and ungetc on your system, then report this to bug-gnulib."
 # endif
index 07f5f5d..e49c950 100644 (file)
@@ -32,7 +32,7 @@ freadable (FILE *fp)
 #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, mingw */
   return (fp->_flag & (_IORW | _IOREAD)) != 0;
 #elif defined __QNX__               /* QNX */
-  return (fp->_Mode & _MOPENR) != 0;
+  return (fp->_Mode & 0x1 /* _MOPENR */) != 0;
 #else
  #error "Please port gnulib freadable.c to your platform! Look at the definition of fopen, fdopen on your system, then report this to bug-gnulib."
 #endif
index cf074be..daad290 100644 (file)
@@ -56,7 +56,7 @@ freadahead (FILE *fp)
   return 0;
 # endif
 #elif defined __QNX__               /* QNX */
-  if ((fp->_Mode & _MWRITE) != 0)
+  if ((fp->_Mode & 0x2000 /* _MWRITE */) != 0)
     return 0;
   /* fp->_Buf <= fp->_Next <= fp->_Rend */
   return fp->_Rend - fp->_Next;
index a2c6fe6..dcdc3d2 100644 (file)
@@ -40,8 +40,8 @@ freading (FILE *fp)
 #elif defined __UCLIBC__            /* uClibc */
   return (fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) != 0;
 #elif defined __QNX__               /* QNX */
-  return ((fp->_Mode & _MOPENW) == 0
-         || (fp->_Mode & _MREAD) != 0);
+  return ((fp->_Mode & 0x2 /* _MOPENW */) == 0
+         || (fp->_Mode & 0x1000 /* _MREAD */) != 0);
 #else
  #error "Please port gnulib freading.c to your platform!"
 #endif
index 4ca0a34..b34ef75 100644 (file)
@@ -47,7 +47,7 @@ fseterr (FILE *fp)
 #elif defined __UCLIBC__            /* uClibc */
   fp->__modeflags |= __FLAG_ERROR;
 #elif defined __QNX__               /* QNX */
-  fp->_Mode |= _MERR;
+  fp->_Mode |= 0x200 /* _MERR */;
 #elif 0                             /* unknown  */
   /* Portable fallback, based on an idea by Rich Felker.
      Wow! 6 system calls for something that is just a bit operation!
index b96218a..5617bee 100644 (file)
@@ -32,7 +32,7 @@ fwritable (FILE *fp)
 #elif defined _IOERR                /* AIX, HP-UX, IRIX, OSF/1, Solaris, mingw */
   return (fp->_flag & (_IORW | _IOWRT)) != 0;
 #elif defined __QNX__               /* QNX */
-  return (fp->_mode & _MOPENW) != 0;
+  return (fp->_Mode & 0x2 /* _MOPENW */) != 0;
 #else
  #error "Please port gnulib fwritable.c to your platform! Look at the definition of fopen, fdopen on your system, then report this to bug-gnulib."
 #endif
index 9f560f9..3ae6d56 100644 (file)
@@ -34,8 +34,8 @@ fwriting (FILE *fp)
 #elif defined __UCLIBC__            /* uClibc */
   return (fp->__modeflags & __FLAG_WRITING) != 0;
 #elif defined __QNX__               /* QNX */
-  return ((fp->_Mode & _MOPENR) == 0
-         || (fp->_Mode & _MWRITE) != 0);
+  return ((fp->_Mode & 0x1 /* _MOPENR */) == 0
+         || (fp->_Mode & 0x2000 /* _MWRITE */) != 0);
 #else
  #error "Please port gnulib fwriting.c to your platform!"
 #endif