Commit 0362b54f authored by Petri Lehtinen's avatar Petri Lehtinen

Revert "Issue #16121: Fix line number accounting in shlex"

parent 7a05113c
...@@ -44,7 +44,6 @@ class shlex: ...@@ -44,7 +44,6 @@ class shlex:
self.state = ' ' self.state = ' '
self.pushback = deque() self.pushback = deque()
self.lineno = 1 self.lineno = 1
self._lines_found = 0
self.debug = 0 self.debug = 0
self.token = '' self.token = ''
self.filestack = deque() self.filestack = deque()
...@@ -115,23 +114,12 @@ class shlex: ...@@ -115,23 +114,12 @@ class shlex:
return raw return raw
def read_token(self): def read_token(self):
if self._lines_found:
self.lineno += self._lines_found
self._lines_found = 0
i = 0
quoted = False quoted = False
escapedstate = ' ' escapedstate = ' '
while True: while True:
i += 1
nextchar = self.instream.read(1) nextchar = self.instream.read(1)
if nextchar == '\n': if nextchar == '\n':
# In case newline is the first character increment lineno self.lineno = self.lineno + 1
if i == 1:
self.lineno += 1
else:
self._lines_found += 1
if self.debug >= 3: if self.debug >= 3:
print("shlex: in state", repr(self.state), \ print("shlex: in state", repr(self.state), \
"I see character:", repr(nextchar)) "I see character:", repr(nextchar))
...@@ -151,7 +139,6 @@ class shlex: ...@@ -151,7 +139,6 @@ class shlex:
continue continue
elif nextchar in self.commenters: elif nextchar in self.commenters:
self.instream.readline() self.instream.readline()
# Not considered a token so incrementing lineno directly
self.lineno = self.lineno + 1 self.lineno = self.lineno + 1
elif self.posix and nextchar in self.escape: elif self.posix and nextchar in self.escape:
escapedstate = 'a' escapedstate = 'a'
...@@ -219,7 +206,6 @@ class shlex: ...@@ -219,7 +206,6 @@ class shlex:
continue continue
elif nextchar in self.commenters: elif nextchar in self.commenters:
self.instream.readline() self.instream.readline()
# Not considered a token so incrementing lineno directly
self.lineno = self.lineno + 1 self.lineno = self.lineno + 1
if self.posix: if self.posix:
self.state = ' ' self.state = ' '
......
...@@ -173,15 +173,6 @@ class ShlexTest(unittest.TestCase): ...@@ -173,15 +173,6 @@ class ShlexTest(unittest.TestCase):
"%s: %s != %s" % "%s: %s != %s" %
(self.data[i][0], l, self.data[i][1:])) (self.data[i][0], l, self.data[i][1:]))
def testLineNumbers(self):
data = '"a \n b \n c"\n"x"\n"y"'
for is_posix in (True, False):
s = shlex.shlex(data, posix=is_posix)
for i in (1, 4, 5):
s.read_token()
self.assertEqual(s.lineno, i)
# Allow this test to be used with old shlex.py # Allow this test to be used with old shlex.py
if not getattr(shlex, "split", None): if not getattr(shlex, "split", None):
for methname in dir(ShlexTest): for methname in dir(ShlexTest):
......
...@@ -774,7 +774,6 @@ Samuel Nicolary ...@@ -774,7 +774,6 @@ Samuel Nicolary
Gustavo Niemeyer Gustavo Niemeyer
Oscar Nierstrasz Oscar Nierstrasz
Hrvoje Niksic Hrvoje Niksic
Birk Nilson
Gregory Nofi Gregory Nofi
Jesse Noller Jesse Noller
Bill Noon Bill Noon
......
...@@ -227,9 +227,6 @@ Core and Builtins ...@@ -227,9 +227,6 @@ Core and Builtins
Library Library
------- -------
- Issue #16121: Fix line number accounting in shlex. Patch by Birk
Nilson.
- Issue #14720: sqlite3: Convert datetime microseconds correctly. - Issue #14720: sqlite3: Convert datetime microseconds correctly.
Patch by Lowe Thiderman. Patch by Lowe Thiderman.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment