diff lib/freadptr.c @ 16344:ecfc57537d99

stdioext: Add tentative support for Plan9. * lib/stdio-impl.h: Include <errno.h>. * lib/fseterr.c (fseterr) [EPLAN9]: Add conditional code. * lib/freadable.c (freadable): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fbufmode.c (fbufmode): Likewise. * lib/freading.c (freading): Likewise. * lib/fwriting.c (fwriting): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/fpurge.c (fpurge): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Plan9. Reported by Jens Staal <staal1978@gmail.com>.
author Bruno Haible <bruno@clisp.org>
date Fri, 03 Feb 2012 22:58:33 +0100
parents 8250f2777afc
children 498a2211d839
line wrap: on
line diff
--- a/lib/freadptr.c
+++ b/lib/freadptr.c
@@ -101,6 +101,13 @@
     return NULL;
   *sizep = size;
   return fp->__bufp;
+#elif defined EPLAN9                /* Plan9 */
+  if (fp->state == 4 /* WR */)
+    return NULL;
+  if (fp->rp >= fp->wp)
+    return NULL;
+  *sizep = fp->wp - fp->rp;
+  return fp->rp;
 #elif defined SLOW_BUT_NO_HACKS     /* users can define this */
   /* This implementation is correct on any ANSI C platform.  It is just
      awfully slow.  */