script: add String.Length function

Add String.Length function which returns the length of a string.
It will make it possible to get the number of bullets from the
display prompt callback inside scripts.
This commit is contained in:
Mateusz Piórkowski 2022-03-04 19:23:45 +01:00
parent 853ec9c290
commit 29c1511738

View file

@ -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);