]> granicus.if.org Git - python/commitdiff
SF patch #683187, fix universal newline problems on error
authorNeal Norwitz <nnorwitz@gmail.com>
Sun, 9 Feb 2003 01:10:02 +0000 (01:10 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Sun, 9 Feb 2003 01:10:02 +0000 (01:10 +0000)
Objects/fileobject.c

index fb8ec90cfebcb2702479cda3498e9f0666001dae..5b2267b417d784a7b487a1abb5f810b70dcd42fc 100644 (file)
@@ -2278,7 +2278,7 @@ Py_UniversalNewlineFread(char *buf, size_t n,
 
        if (!fobj || !PyFile_Check(fobj)) {
                errno = ENXIO;  /* What can you do... */
-               return -1;
+               return 0;
        }
        if (!f->f_univ_newline)
                return fread(buf, 1, n, stream);
@@ -2294,6 +2294,9 @@ Py_UniversalNewlineFread(char *buf, size_t n,
 
                nread = fread(dst, 1, n, stream);
                assert(nread <= n);
+               if (nread == 0)
+                       break;
+
                n -= nread; /* assuming 1 byte out for each in; will adjust */
                shortread = n != 0;     /* true iff EOF or error */
                while (nread--) {