From 0d804cdea010d958b2f42e597741efb8dc459073 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Sun, 28 Jun 1998 17:12:31 +0200
Subject: [PATCH] Improved EOF handling in Stdio.FILE->read().

Rev: lib/modules/Stdio.pmod:1.9
---
 lib/modules/Stdio.pmod | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/modules/Stdio.pmod b/lib/modules/Stdio.pmod
index 14ecc3bdcb..00db15df79 100644
--- a/lib/modules/Stdio.pmod
+++ b/lib/modules/Stdio.pmod
@@ -121,11 +121,19 @@ class FILE {
 	return file::write(sprintf(fmt,@data));
     }
     
-    string read(int bytes)
+    string read(int|void bytes)
     {
+      if (!query_num_arg()) {
+	bytes = 0x7fffffff;
+      }
       while(strlen(b) - bpos < bytes)
-	if(!get_data())
-	  break;
+	if(!get_data()) {
+	  // EOF.
+	  string res = b[bpos..];
+	  b = "";
+	  bpos = 0;
+	  return res;
+	}
 
       return extract(bytes);
     }
-- 
GitLab