diff options
| author | Jiří Klimeš <jklimes@redhat.com> | 2012-11-22 11:56:06 +0100 |
|---|---|---|
| committer | Dan Williams <dcbw@redhat.com> | 2013-04-08 16:09:23 -0500 |
| commit | b0bee192e8356468ba98453ceedbae94db83f5b4 (patch) | |
| tree | 0818db0d896371bb508edb335e729dfc3fd28fff | |
| parent | 7c629bf0f4481f7794cda9056fd8f76c18e66fce (diff) | |
| download | NetworkManager-b0bee192e8356468ba98453ceedbae94db83f5b4.tar.gz | |
cli: add nmc_string_to_arg_array() to split a string to arguments array
| -rw-r--r-- | cli/src/utils.c | 19 | ||||
| -rw-r--r-- | cli/src/utils.h | 1 |
2 files changed, 20 insertions, 0 deletions
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 @@ -197,6 +197,25 @@ nmc_get_user_input (const char *ask_str) } /* + * 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 */ int 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); |
