diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-09-19 21:19:23 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-09-19 21:21:12 +0300 |
commit | fc9a6dd09e77c34ef04bab57e73bfcb08bc78bb4 (patch) | |
tree | a56c911ef46a6ffdbf107023aba356a88f323e98 | |
parent | 44f0a4d1e7a315c8d2b21fc4b0471d88e382a91e (diff) |
py/objstr: strip: Don't strip "\0" by default.
An issue was due to incorrectly taking size of default strip characters
set.
-rw-r--r-- | py/objstr.c | 2 | ||||
-rw-r--r-- | tests/basics/string_strip.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/py/objstr.c b/py/objstr.c index f6214f80c..11bfb41fc 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -777,7 +777,7 @@ STATIC mp_obj_t str_uni_strip(int type, size_t n_args, const mp_obj_t *args) { if (n_args == 1) { chars_to_del = whitespace; - chars_to_del_len = sizeof(whitespace); + chars_to_del_len = sizeof(whitespace) - 1; } else { if (mp_obj_get_type(args[1]) != self_type) { bad_implicit_conversion(args[1]); diff --git a/tests/basics/string_strip.py b/tests/basics/string_strip.py index 5d99a78e5..971a4aae5 100644 --- a/tests/basics/string_strip.py +++ b/tests/basics/string_strip.py @@ -32,6 +32,13 @@ print("a ".strip()) print("a ".lstrip()) print("a ".rstrip()) +# \0 used to give a problem + +print("\0abc\0".strip()) +print("\0abc\0".lstrip()) +print("\0abc\0".rstrip()) +print("\0abc\0".strip("\0")) + # Test that stripping unstrippable string returns original object s = "abc" print(id(s.strip()) == id(s)) |