]> git.sur5r.net Git - cc65/commitdiff
Add support for pushed back chars
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 13 May 2004 21:13:51 +0000 (21:13 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 13 May 2004 21:13:51 +0000 (21:13 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3033 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/common/fgetc.c

index c84d8e662857419117e379e2776950d363fac702..cb2f75f80da5761f89c96adcee572eb2f3fd4113 100644 (file)
@@ -20,7 +20,7 @@
 
 
 
-int __fastcall__ fgetc (FILE* f)
+int __fastcall__ fgetc (register FILE* f)
 {
     unsigned char c;
 
@@ -29,7 +29,13 @@ int __fastcall__ fgetc (FILE* f)
        return EOF;
     }
 
-    /* Read the byte */
+    /* If we have a pushed back character, return it */
+    if (f->f_flags & _FPUSHBACK) {
+        f->f_flags &= ~_FPUSHBACK;
+        return f->f_pushback;
+    }
+
+    /* Read one byte */
     switch (read (f->f_fd, &c, 1)) {
 
         case -1: