diff --git a/cli/src/utils.c b/cli/src/utils.c index d76ee01955..4c4703123d 100644 --- a/cli/src/utils.c +++ b/cli/src/utils.c @@ -196,6 +196,25 @@ nmc_get_user_input (const char *ask_str) return line; } +/* + * Split string in 'line' according to 'delim' to (argument) array. + */ +int +nmc_string_to_arg_array (const char *line, const char *delim, char ***argv, int *argc) +{ + int i = 0; + char **arr; + + arr = g_strsplit_set (line ? line : "", delim ? delim : " \t", 0); + while (arr && arr[i]) + i++; + + *argc = i; + *argv = arr; + + return 0; +} + /* * Find out how many columns an UTF-8 string occupies on the screen */ diff --git a/cli/src/utils.h b/cli/src/utils.h index 54d5b4f396..7aabd96440 100644 --- a/cli/src/utils.h +++ b/cli/src/utils.h @@ -33,6 +33,7 @@ char *nmc_ip6_address_as_string (const struct in6_addr *ip, GError **error); void nmc_terminal_erase_line (void); void nmc_terminal_show_progress (const char *str); char *nmc_get_user_input (const char *ask_str); +int nmc_string_to_arg_array (const char *line, const char *delim, char ***argv, int *argc); int nmc_string_screen_width (const char *start, const char *end); void set_val_str (NmcOutputField fields_array[], guint32 index, char *value); void set_val_arr (NmcOutputField fields_array[], guint32 index, char **value);