$NetBSD: patch-az,v 1.2 2005/11/02 08:56:40 taca Exp $

--- io.c.orig	2005-09-20 17:11:35.000000000 +0900
+++ io.c
@@ -1020,8 +1020,10 @@ read_buffered_data(ptr, len, f)
     if (n > len) n = len;
     return fread(ptr, 1, n, f);
 #else
-    for (n = 0; n < len && READ_DATA_PENDING(f); ++n) {
-        *ptr++ = getc(f);
+    int c;
+
+    for (n = 0; n < len && READ_DATA_PENDING(f) && (c = getc(f)) != EOF; ++n) {
+	*ptr++ = c;
     }
     return n;
 #endif
@@ -3516,6 +3518,7 @@ rb_io_reopen(argc, argv, file)
     return file;
 }
 
+/* :nodoc: */
 static VALUE
 rb_io_init_copy(dest, io)
     VALUE dest, io;
@@ -3632,7 +3635,7 @@ rb_f_printf(argc, argv)
  *     ios.print(obj, ...)     => nil
  *  
  *  Writes the given object(s) to <em>ios</em>. The stream must be
- *  opened for writing. If the output record separator (<code>$\</code>)
+ *  opened for writing. If the output record separator (<code>$\\</code>)
  *  is not <code>nil</code>, it will be appended to the output. If no
  *  arguments are given, prints <code>$_</code>. Objects that aren't
  *  strings will be converted by calling their <code>to_s</code> method.
@@ -3688,7 +3691,7 @@ rb_io_print(argc, argv, out)
  *  Prints each object in turn to <code>$stdout</code>. If the output
  *  field separator (<code>$,</code>) is not +nil+, its
  *  contents will appear between each field. If the output record
- *  separator (<code>$\</code>) is not +nil+, it will be
+ *  separator (<code>$\\</code>) is not +nil+, it will be
  *  appended to the output. If no arguments are given, prints
  *  <code>$_</code>. Objects that aren't strings will be converted by
  *  calling their <code>to_s</code> method.
