summaryrefslogtreecommitdiffstatshomepage
path: root/py/objstr.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-02-02 08:24:07 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-02-02 08:58:16 +0200
commit87e85b7dc7753bde510ec37db321574a1cc0cc47 (patch)
tree60c81265c328168f012ec68ee156171d77e621ae /py/objstr.c
parent9ed5435061cc6ae85cd9d8556d934c0e638ffadd (diff)
downloadmicropython-87e85b7dc7753bde510ec37db321574a1cc0cc47.tar.gz
micropython-87e85b7dc7753bde510ec37db321574a1cc0cc47.zip
Implement str/bytes rich comparisons.
Diffstat (limited to 'py/objstr.c')
-rw-r--r--py/objstr.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/py/objstr.c b/py/objstr.c
index 92bd71f3de..50cd31d542 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -169,6 +169,18 @@ mp_obj_t str_binary_op(int op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
mp_seq_multiply(lhs_data, sizeof(*lhs_data), lhs_len, n, data);
return mp_obj_str_builder_end(s);
}
+
+ // These 2 are never passed here, dealt with as a special case in rt_binary_op().
+ //case RT_BINARY_OP_EQUAL:
+ //case RT_BINARY_OP_NOT_EQUAL:
+ case RT_BINARY_OP_LESS:
+ case RT_BINARY_OP_LESS_EQUAL:
+ case RT_BINARY_OP_MORE:
+ case RT_BINARY_OP_MORE_EQUAL:
+ if (MP_OBJ_IS_STR(rhs_in)) {
+ GET_STR_DATA_LEN(rhs_in, rhs_data, rhs_len);
+ return MP_BOOL(mp_seq_cmp_bytes(op, lhs_data, lhs_len, rhs_data, rhs_len));
+ }
}
return MP_OBJ_NULL; // op not supported