Author: Brian Kearns <[email protected]>
Branch: use-file-star-for-file
Changeset: r73471:51dc6795d2f6
Date: 2014-09-11 16:03 -0400
http://bitbucket.org/pypy/pypy/changeset/51dc6795d2f6/
Log: simplify rfile fread
diff --git a/rpython/rlib/rfile.py b/rpython/rlib/rfile.py
--- a/rpython/rlib/rfile.py
+++ b/rpython/rlib/rfile.py
@@ -315,27 +315,26 @@
if not self._univ_newline:
return c_fread(buf, 1, n, stream)
- i = 0 # XXX how to do ptrdiff (dst - buf) instead?
- dst = buf
+ i = 0
newlinetypes = self._newlinetypes
skipnextlf = self._skipnextlf
assert n >= 0
while n:
+ dst = rffi.ptradd(buf, i)
nread = c_fread(dst, 1, n, stream)
assert nread <= n
if nread == 0:
break
- src = dst
+ j = 0
n -= nread
shortread = n != 0
while nread:
nread -= 1
- c = src[0]
- src = rffi.ptradd(src, 1)
+ c = dst[j]
+ j += 1
if c == '\r':
- dst[0] = '\n'
- dst = rffi.ptradd(dst, 1)
+ buf[i] = '\n'
i += 1
skipnextlf = True
elif skipnextlf and c == '\n':
@@ -347,8 +346,7 @@
newlinetypes |= NEWLINE_LF
elif skipnextlf:
newlinetypes |= NEWLINE_CR
- dst[0] = c
- dst = rffi.ptradd(dst, 1)
+ buf[i] = c
i += 1
skipnextlf = False
if shortread:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit