objstr: *strip(): Fix handling of one-char subject strings.

This commit is contained in:
Paul Sokolovsky
2014-05-30 03:07:05 +03:00
parent 059f95b2cb
commit bcdffe53c6
2 changed files with 13 additions and 2 deletions

View File

@@ -667,6 +667,7 @@ STATIC mp_obj_t str_uni_strip(int type, uint n_args, const mp_obj_t *args) {
for (machine_uint_t len = orig_str_len; len > 0; len--) {
if (find_subbytes(chars_to_del, chars_to_del_len, &orig_str[i], 1, 1) == NULL) {
if (!first_good_char_pos_set) {
first_good_char_pos_set = true;
first_good_char_pos = i;
if (type == LSTRIP) {
last_good_char_pos = orig_str_len - 1;
@@ -676,14 +677,13 @@ STATIC mp_obj_t str_uni_strip(int type, uint n_args, const mp_obj_t *args) {
last_good_char_pos = i;
break;
}
first_good_char_pos_set = true;
}
last_good_char_pos = i;
}
i += delta;
}
if (first_good_char_pos == 0 && last_good_char_pos == 0) {
if (!first_good_char_pos_set) {
// string is all whitespace, return ''
return MP_OBJ_NEW_QSTR(MP_QSTR_);
}