summaryrefslogtreecommitdiff
path: root/reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'reader.py')
-rw-r--r--reader.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/reader.py b/reader.py
index dc9a036..c377024 100644
--- a/reader.py
+++ b/reader.py
@@ -143,7 +143,7 @@ class Reader(object):
self.update(length)
return self.buffer[self.pointer : self.pointer + length]
- def forward(self, length=1):
+ def forward_1_1(self, length=1):
# type: (int) -> None
if self.pointer + length + 1 >= len(self.buffer):
self.update(length + 1)
@@ -160,6 +160,23 @@ class Reader(object):
self.column += 1
length -= 1
+ def forward(self, length=1):
+ # type: (int) -> None
+ if self.pointer + length + 1 >= len(self.buffer):
+ self.update(length + 1)
+ while length != 0:
+ ch = self.buffer[self.pointer]
+ self.pointer += 1
+ self.index += 1
+ if ch == u'\n' or (
+ ch == u'\r' and self.buffer[self.pointer] != u'\n'
+ ):
+ self.line += 1
+ self.column = 0
+ elif ch != u'\uFEFF':
+ self.column += 1
+ length -= 1
+
def get_mark(self):
# type: () -> Any
if self.stream is None: