Fix issue with devices-fake test.
[rsync/rsync.git] / io.c
diff --git a/io.c b/io.c
index bf39ff9..63dff83 100644 (file)
--- a/io.c
+++ b/io.c
@@ -2205,13 +2205,16 @@ int32 read_ndx(int f)
 /* Read a line of up to bufsiz-1 characters into buf.  Strips
  * the (required) trailing newline and all carriage returns.
  * Returns 1 for success; 0 for I/O error or truncation. */
-int read_line_old(int fd, char *buf, size_t bufsiz)
+int read_line_old(int fd, char *buf, size_t bufsiz, int eof_ok)
 {
+       assert(fd != iobuf.in_fd);
        bufsiz--; /* leave room for the null */
        while (bufsiz > 0) {
-               assert(fd != iobuf.in_fd);
-               if (safe_read(fd, buf, 1) == 0)
+               if (safe_read(fd, buf, 1) == 0) {
+                       if (eof_ok)
+                               break;
                        return 0;
+               }
                if (*buf == '\0')
                        return 0;
                if (*buf == '\n')