From 185f9c1c4652cfe44b8c4df12f524933dbe04dc5 Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Mon, 28 Apr 2014 11:43:28 +0100
Subject: [PATCH] py: Fix lexerunix, where not all data may be read from a
 file.

Addresses issue #526.
---
 py/lexerunix.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/py/lexerunix.c b/py/lexerunix.c
index 46c66f41d..1bb1a759d 100644
--- a/py/lexerunix.c
+++ b/py/lexerunix.c
@@ -22,11 +22,12 @@ typedef struct _mp_lexer_file_buf_t {
 
 STATIC unichar file_buf_next_char(mp_lexer_file_buf_t *fb) {
     if (fb->pos >= fb->len) {
-        if (fb->len < sizeof(fb->buf)) {
+        if (fb->len == 0) {
             return MP_LEXER_CHAR_EOF;
         } else {
             int n = read(fb->fd, fb->buf, sizeof(fb->buf));
             if (n <= 0) {
+                fb->len = 0;
                 return MP_LEXER_CHAR_EOF;
             }
             fb->len = n;
-- 
GitLab