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 c1426b7f2f709173592bfdce97d2687c231e7946..58c22920fe5665b97837acce82592f7455125528 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 15b7ca07405a2ac97cc9370438921e5f3466cd51..5f659bfe91d4c2ec7e14ace8b911192a2f6e6e60 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 14460075ff950e73ef3b3a679be91c83850e7220..cc230fb1cda27e7f528251b7fb98e74a2f6c3f6c 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 07f5f5dbf4f7a47f362aaa6e9934081e8ee6ae35..e49c950ffd4a83b2f97c10c05e50a0b43fa1ae24 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 cf074be260ea5b2bde1db29caca3ed251f2ad3c4..daad2901adf982c621394acd1b78c9a807acfff1 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 a2c6fe65420fcd1b533e3175a41c2eb87e57339e..dcdc3d24c8f19ba296fbaffd7bbc4cba5108a525 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 4ca0a3456c0b41eaf4604adc23266647eda1c3da..b34ef75f66bfc364b2ba63fe6f1e2e75f898f8f6 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 b96218ab4b4e09e89a3fed874e5f1a1a513fe874..5617beee3da2eb1c885ea3db69b95ebc2855a7f0 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 9f560f9db2493719fdb8c0267d0c358e6bd00425..3ae6d569a2b1bcc2e8b45a898d23e9d5309e3089 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