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