[pypy-commit] pypy default: hg merge lstrip_to_empty_string

arigo pypy.commits at gmail.com
Tue Mar 28 07:26:30 EDT 2017


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r90836:2c39618c2b77
Date: 2017-03-28 13:22 +0200
http://bitbucket.org/pypy/pypy/changeset/2c39618c2b77/

Log:	hg merge lstrip_to_empty_string

	PR #531. Thanks Nate!

diff --git a/rpython/rtyper/lltypesystem/rstr.py b/rpython/rtyper/lltypesystem/rstr.py
--- a/rpython/rtyper/lltypesystem/rstr.py
+++ b/rpython/rtyper/lltypesystem/rstr.py
@@ -435,7 +435,7 @@
         lpos = 0
         rpos = s_len - 1
         if left:
-            while lpos < rpos and s.chars[lpos] == ch:
+            while lpos <= rpos and s.chars[lpos] == ch:
                 lpos += 1
         if right:
             while lpos < rpos + 1 and s.chars[rpos] == ch:
@@ -456,7 +456,7 @@
         lpos = 0
         rpos = s_len - 1
         if left:
-            while lpos < rpos and s.chars[lpos].isspace():
+            while lpos <= rpos and s.chars[lpos].isspace():
                 lpos += 1
         if right:
             while lpos < rpos + 1 and s.chars[rpos].isspace():
@@ -477,7 +477,7 @@
         lpos = 0
         rpos = s_len - 1
         if left:
-            while lpos < rpos and LLHelpers.ll_contains(s2, s.chars[lpos]):
+            while lpos <= rpos and LLHelpers.ll_contains(s2, s.chars[lpos]):
                 lpos += 1
         if right:
             while lpos < rpos + 1 and LLHelpers.ll_contains(s2, s.chars[rpos]):
diff --git a/rpython/rtyper/test/test_rstr.py b/rpython/rtyper/test/test_rstr.py
--- a/rpython/rtyper/test/test_rstr.py
+++ b/rpython/rtyper/test/test_rstr.py
@@ -459,6 +459,8 @@
             return const('    ').strip(' ')
         def left2():
             return const('a  ').strip(' ')
+        def leftall():
+            return const('!!').lstrip(const('!'))
         res = self.interpret(both, [])
         assert self.ll_to_string(res) == const('ab')
         res = self.interpret(left, [])
@@ -469,6 +471,8 @@
         assert self.ll_to_string(res) == const('')
         res = self.interpret(left2, [])
         assert self.ll_to_string(res) == const('a')
+        res = self.interpret(leftall, [])
+        assert self.ll_to_string(res) == const('')
 
     def test_strip_multiple_chars(self):
         const = self.const
@@ -482,6 +486,8 @@
             return const(' \t\t   ').strip('\t ')
         def left2():
             return const('a  ').strip(' \t')
+        def leftall():
+            return const('!ab!').lstrip(const('!ab'))
         res = self.interpret(both, [])
         assert self.ll_to_string(res) == const('b')
         res = self.interpret(left, [])
@@ -492,6 +498,8 @@
         assert self.ll_to_string(res) == const('')
         res = self.interpret(left2, [])
         assert self.ll_to_string(res) == const('a')
+        res = self.interpret(leftall, [])
+        assert self.ll_to_string(res) == const('')
 
     def test_upper(self):
         const = self.const


More information about the pypy-commit mailing list