diff options
author | ngie-eign <1574099+ngie-eign@users.noreply.github.com> | 2019-03-03 07:28:26 (GMT) |
---|---|---|
committer | Inada Naoki <songofacandy@gmail.com> | 2019-03-03 07:28:26 (GMT) |
commit | 848037c1476ddf86dd2798fca35527a63c764a8a (patch) | |
tree | 3db7ffcabbc9549e0db1669d4d0f37a9c19dd847 | |
parent | 8589f14bbe55fb1ff5c765af5281100c38f0df63 (diff) | |
download | cpython-848037c1476ddf86dd2798fca35527a63c764a8a.zip cpython-848037c1476ddf86dd2798fca35527a63c764a8a.tar.gz cpython-848037c1476ddf86dd2798fca35527a63c764a8a.tar.bz2 |
Use names SEEK_SET, etc instead of magic number (GH-12057)
The previous code hardcoded `SEEK_SET`, etc. While it's very unlikely
that these values will change, it's best to use the definitions to avoid
there being mismatches in behavior with the code in the future.
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
-rw-r--r-- | Lib/_pyio.py | 6 | ||||
-rw-r--r-- | Modules/_io/textio.c | 14 |
2 files changed, 11 insertions, 9 deletions
diff --git a/Lib/_pyio.py b/Lib/_pyio.py index e4a8799..b0593c3 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -2386,18 +2386,18 @@ class TextIOWrapper(TextIOBase): raise ValueError("tell on closed file") if not self._seekable: raise UnsupportedOperation("underlying stream is not seekable") - if whence == 1: # seek relative to current position + if whence == SEEK_CUR: if cookie != 0: raise UnsupportedOperation("can't do nonzero cur-relative seeks") # Seeking to the current position should attempt to # sync the underlying buffer with the current position. whence = 0 cookie = self.tell() - if whence == 2: # seek relative to end of file + elif whence == SEEK_END: if cookie != 0: raise UnsupportedOperation("can't do nonzero end-relative seeks") self.flush() - position = self.buffer.seek(0, 2) + position = self.buffer.seek(0, whence) self._set_decoded_chars('') self._snapshot = None if self._decoder: diff --git a/Modules/_io/textio.c b/Modules/_io/textio.c index 14f9488..0f0092f 100644 --- a/Modules/_io/textio.c +++ b/Modules/_io/textio.c @@ -2344,7 +2344,8 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence) goto fail; } - if (whence == 1) { + switch (whence) { + case SEEK_CUR: /* seek relative to current position */ cmp = PyObject_RichCompareBool(cookieObj, _PyLong_Zero, Py_EQ); if (cmp < 0) @@ -2362,8 +2363,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence) cookieObj = _PyObject_CallMethodId((PyObject *)self, &PyId_tell, NULL); if (cookieObj == NULL) goto fail; - } - else if (whence == 2) { + case SEEK_END: /* seek relative to end of file */ cmp = PyObject_RichCompareBool(cookieObj, _PyLong_Zero, Py_EQ); if (cmp < 0) @@ -2401,10 +2401,12 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence) } } return res; - } - else if (whence != 0) { + case SEEK_SET: + break; + default: PyErr_Format(PyExc_ValueError, - "invalid whence (%d, should be 0, 1 or 2)", whence); + "invalid whence (%d, should be %d, %d or %d)", whence, + SEEK_SET, SEEK_CUR, SEEK_END); goto fail; } |