cli: add nmc_string_to_arg_array() to split a string to arguments array

This commit is contained in:
Jiří Klimeš
2012-11-22 11:56:06 +01:00
committed by Dan Williams
parent 7c629bf0f4
commit b0bee192e8
2 changed files with 20 additions and 0 deletions

View File

@@ -196,6 +196,25 @@ nmc_get_user_input (const char *ask_str)
return line; 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 * Find out how many columns an UTF-8 string occupies on the screen
*/ */

View File

@@ -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_erase_line (void);
void nmc_terminal_show_progress (const char *str); void nmc_terminal_show_progress (const char *str);
char *nmc_get_user_input (const char *ask_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); 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_str (NmcOutputField fields_array[], guint32 index, char *value);
void set_val_arr (NmcOutputField fields_array[], guint32 index, char **value); void set_val_arr (NmcOutputField fields_array[], guint32 index, char **value);