]> pd.if.org Git - pdclib/blobdiff - functions/stdio/fflush.c
Merged PDPCLIB and Therx code.
[pdclib] / functions / stdio / fflush.c
index a74f77a7663e661a179d0049459bf5b65f96ded4..66e97a587f7c88a0453025aae336c2eefb9c6c58 100644 (file)
@@ -6,3 +6,50 @@
 // ----------------------------------------------------------------------------
 
 int fflush( FILE * stream ) { /* TODO */ };
+
+/* PDPC code - unreviewed
+Read the note in fopen.c.
+{
+#ifdef __OS2__
+    APIRET rc;
+    ULONG actualWritten;
+#endif
+#ifdef __MSDOS__
+    int errind;
+    size_t actualWritten;
+#endif
+
+    if ((stream->upto != stream->fbuf) && (stream->mode == __WRITE_MODE))
+    {
+#ifdef __OS2__
+        rc = DosWrite(stream->hfile,
+                     (VOID *)stream->fbuf,
+                     (size_t)(stream->upto - stream->fbuf),
+                     &actualWritten);
+        if (rc != 0)
+        {
+            stream->errorInd = 1;
+            errno = rc;
+            return (EOF);
+        }
+#endif
+#ifdef __MSDOS__
+        actualWritten = __write(stream->hfile,
+                                stream->fbuf,
+                                (size_t)(stream->upto - stream->fbuf),
+                                &errind);
+        if (errind)
+        {
+            stream->errorInd = 1;
+            errno = actualWritten;
+            return (EOF);
+        }
+#endif
+#ifndef __MVS__
+        stream->bufStartR += actualWritten;
+        stream->upto = stream->fbuf;
+#endif
+    }
+    return (0);
+}
+*/