diff --git a/src/plugins/splash/script/script-lib-string.c b/src/plugins/splash/script/script-lib-string.c index 6fb5e7d7..2529b21d 100644 --- a/src/plugins/splash/script/script-lib-string.c +++ b/src/plugins/splash/script/script-lib-string.c @@ -89,6 +89,15 @@ static script_return_t script_lib_string_sub_string (script_state_t *state, return script_return_obj (substring_obj); } +static script_return_t script_lib_string_length (script_state_t *state, + void *user_data) +{ + char *text = script_obj_as_string (state->this); + size_t text_length = strlen(text); + free (text); + return script_return_obj (script_obj_new_number (text_length)); +} + script_lib_string_data_t *script_lib_string_setup (script_state_t *state) { script_lib_string_data_t *data = malloc (sizeof(script_lib_string_data_t)); @@ -108,6 +117,11 @@ script_lib_string_data_t *script_lib_string_setup (script_state_t *state) "start", "end", NULL); + script_add_native_function (string_hash, + "Length", + script_lib_string_length, + NULL, + NULL); script_obj_unref (string_hash); data->script_main_op = script_parse_string (script_lib_string_string, "script-lib-string.script"); script_return_t ret = script_execute (state, data->script_main_op);