summaryrefslogtreecommitdiff
path: root/qga/main.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2015-08-27 01:34:49 +0200
committerMichael Roth <mdroth@linux.vnet.ibm.com>2015-09-01 11:07:09 -0500
commit23b42894b389eccb45ab66da3a3e77d3a8cfc2b6 (patch)
tree9115855cae1b9ccc4c7f6a2653f15158701080b7 /qga/main.c
parentc6c84523cd890e95b946c6a8f264ff54a7d5b930 (diff)
downloadqemu-23b42894b389eccb45ab66da3a3e77d3a8cfc2b6.tar.gz
qemu-23b42894b389eccb45ab66da3a3e77d3a8cfc2b6.tar.bz2
qemu-23b42894b389eccb45ab66da3a3e77d3a8cfc2b6.zip
qga: move string split in separate function
The function is going to be reused in a later patch. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> Reviewed-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'qga/main.c')
-rw-r--r--qga/main.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/qga/main.c b/qga/main.c
index 10bb2f71d8..e75022c44f 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -921,6 +921,26 @@ static void ga_print_cmd(QmpCommand *cmd, void *opaque)
printf("%s\n", qmp_command_name(cmd));
}
+static GList *split_list(gchar *str, const gchar separator)
+{
+ GList *list = NULL;
+ int i, j, len;
+
+ for (j = 0, i = 0, len = strlen(str); i < len; i++) {
+ if (str[i] == separator) {
+ str[i] = 0;
+ list = g_list_append(list, &str[j]);
+ j = i + 1;
+ }
+ }
+
+ if (j < i) {
+ list = g_list_append(list, &str[j]);
+ }
+
+ return list;
+}
+
int main(int argc, char **argv)
{
const char *sopt = "hVvdm:p:l:f:F::b:s:t:";
@@ -953,7 +973,7 @@ int main(int argc, char **argv)
{ "statedir", 1, NULL, 't' },
{ NULL, 0, NULL, 0 }
};
- int opt_ind = 0, ch, daemonize = 0, i, j, len;
+ int opt_ind = 0, ch, daemonize = 0;
GLogLevelFlags log_level = G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL;
GList *blacklist = NULL;
GAState *s;
@@ -1001,16 +1021,7 @@ int main(int argc, char **argv)
qmp_for_each_command(ga_print_cmd, NULL);
exit(EXIT_SUCCESS);
}
- for (j = 0, i = 0, len = strlen(optarg); i < len; i++) {
- if (optarg[i] == ',') {
- optarg[i] = 0;
- blacklist = g_list_append(blacklist, &optarg[j]);
- j = i + 1;
- }
- }
- if (j < i) {
- blacklist = g_list_append(blacklist, &optarg[j]);
- }
+ blacklist = g_list_concat(blacklist, split_list(optarg, ','));
break;
}
#ifdef _WIN32