PATCH [perl #112244]
authorLeon Timmermans <fawaka@gmail.com>
Thu, 5 Jul 2012 14:17:44 +0000 (16:17 +0200)
committerKarl Williamson <public@khwilliamson.com>
Tue, 19 Feb 2013 04:32:41 +0000 (21:32 -0700)
:crlf currently doesn't fall back on :pending the way :perlio
does when the unread data doesn't fit into its own buffer. Instead it
just rejects them. This patch resolves that.  Tests are coming in a
future commit

The committer added a cast to get it to compile on Win32, and silence a
gcc warning on Linux

perlio.c

index 5de5e65..097bc49 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -4571,6 +4571,8 @@ PerlIOCrlf_unread(pTHX_ PerlIO *f, const void *vbuf, Size_t count)
                }
            }
        }
+        if (count > 0)
+            unread += PerlIOBase_unread(aTHX_ f, (const STDCHAR *) vbuf + unread, count);
        return unread;
     }
 }