summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiří Klimeš <jklimes@redhat.com>2012-11-22 11:56:06 +0100
committerDan Williams <dcbw@redhat.com>2013-04-08 16:09:23 -0500
commitb0bee192e8356468ba98453ceedbae94db83f5b4 (patch)
tree0818db0d896371bb508edb335e729dfc3fd28fff
parent7c629bf0f4481f7794cda9056fd8f76c18e66fce (diff)
downloadNetworkManager-b0bee192e8356468ba98453ceedbae94db83f5b4.tar.gz
cli: add nmc_string_to_arg_array() to split a string to arguments array
-rw-r--r--cli/src/utils.c19
-rw-r--r--cli/src/utils.h1
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);