Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
cfedd81c
Commit
cfedd81c
authored
Jan 23, 2014
by
Damien George
Browse files
Merge branch 'master' of github.com:micropython/micropython
parents
26a00085
c3e72a8c
Changes
5
Hide whitespace changes
Inline
Side-by-side
py/obj.c
View file @
cfedd81c
...
...
@@ -66,7 +66,7 @@ void mp_obj_print_exception(mp_obj_t exc) {
}
bool
mp_obj_is_callable
(
mp_obj_t
o_in
)
{
if
(
MP_OBJ_IS_
SMALL_INT
(
o_in
))
{
if
(
!
MP_OBJ_IS_
OBJ
(
o_in
))
{
return
false
;
}
else
{
mp_obj_base_t
*
o
=
o_in
;
...
...
py/objstr.c
View file @
cfedd81c
...
...
@@ -278,6 +278,16 @@ static mp_obj_t str_find(uint n_args, const mp_obj_t *args) {
}
}
// TODO: (Much) more variety in args
static
mp_obj_t
str_startswith
(
mp_obj_t
self_in
,
mp_obj_t
arg
)
{
GET_STR_DATA_LEN
(
self_in
,
str
,
str_len
);
GET_STR_DATA_LEN
(
arg
,
prefix
,
prefix_len
);
if
(
prefix_len
>
str_len
)
{
return
mp_const_false
;
}
return
MP_BOOL
(
memcmp
(
str
,
prefix
,
prefix_len
)
==
0
);
}
static
bool
chr_in_str
(
const
byte
*
const
str
,
const
size_t
str_len
,
int
c
)
{
for
(
size_t
i
=
0
;
i
<
str_len
;
i
++
)
{
if
(
str
[
i
]
==
c
)
{
...
...
@@ -364,6 +374,7 @@ mp_obj_t str_format(uint n_args, const mp_obj_t *args) {
static
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
str_find_obj
,
2
,
4
,
str_find
);
static
MP_DEFINE_CONST_FUN_OBJ_2
(
str_join_obj
,
str_join
);
static
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
str_split_obj
,
1
,
3
,
str_split
);
static
MP_DEFINE_CONST_FUN_OBJ_2
(
str_startswith_obj
,
str_startswith
);
static
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN
(
str_strip_obj
,
1
,
2
,
str_strip
);
static
MP_DEFINE_CONST_FUN_OBJ_VAR
(
str_format_obj
,
1
,
str_format
);
...
...
@@ -371,6 +382,7 @@ static const mp_method_t str_type_methods[] = {
{
"find"
,
&
str_find_obj
},
{
"join"
,
&
str_join_obj
},
{
"split"
,
&
str_split_obj
},
{
"startswith"
,
&
str_startswith_obj
},
{
"strip"
,
&
str_strip_obj
},
{
"format"
,
&
str_format_obj
},
{
NULL
,
NULL
},
// end-of-list sentinel
...
...
stm/string0.c
View file @
cfedd81c
...
...
@@ -34,6 +34,16 @@ void *memset(void *s, int c, size_t n) {
return
s
;
}
int
memcmp
(
const
char
*
s1
,
const
char
*
s2
,
size_t
n
)
{
while
(
n
--
)
{
char
c1
=
*
s1
++
;
char
c2
=
*
s2
++
;
if
(
c1
<
c2
)
return
-
1
;
else
if
(
c1
>
c2
)
return
1
;
}
return
0
;
}
size_t
strlen
(
const
char
*
str
)
{
int
len
=
0
;
for
(
const
char
*
s
=
str
;
*
s
;
s
++
)
{
...
...
tests/basics/builtin-callable.py
0 → 100644
View file @
cfedd81c
import
sys
print
(
callable
(
1
))
print
(
callable
(
"dfsd"
))
print
(
callable
(
callable
))
print
(
callable
(
sys
))
tests/basics/string_startswith.py
0 → 100644
View file @
cfedd81c
print
(
"foobar"
.
startswith
(
"foo"
))
print
(
"foobar"
.
startswith
(
"Foo"
))
print
(
"foobar"
.
startswith
(
"foo1"
))
print
(
"foobar"
.
startswith
(
"foobar"
))
print
(
"foobar"
.
startswith
(
""
))
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment