diff options
author | Jan Klemkow <j.klemkow@wemelug.de> | 2011-09-25 01:34:31 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-09-25 12:54:55 +0200 |
commit | 98bc17525c76803e5784560ed8c2e0e276d83444 (patch) | |
tree | 58d4006144d273d15ab510aafa493a4e9534c4d5 | |
parent | c820c3d4830b2c5db1c026ee332f2d773c366247 (diff) | |
download | cmumble-98bc17525c76803e5784560ed8c2e0e276d83444.tar.gz cmumble-98bc17525c76803e5784560ed8c2e0e276d83444.tar.bz2 cmumble-98bc17525c76803e5784560ed8c2e0e276d83444.zip |
Add glib parsing function for argc and argv.
-rw-r--r-- | src/cmumble.c | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/src/cmumble.c b/src/cmumble.c index 3599f91..82af149 100644 --- a/src/cmumble.c +++ b/src/cmumble.c @@ -239,20 +239,43 @@ cmumble_protocol_init(struct cmumble_context *ctx) g_source_unref(source); } +gchar *user = "unkown"; +gchar *host = "localhost"; +gint port = 64738; + +static GOptionEntry entries[] = { + { + "user", 'u', 0, G_OPTION_ARG_STRING, &user, + "user name", "N" + }, + { + "host", 'h', 0, G_OPTION_ARG_STRING, &host, + "Host name or ip address of the mumble server", "N" + }, + { + "port", 'p', 0, G_OPTION_ARG_INT, &port, + "port of the mumble server", "N" + }, + { NULL } +}; + int main(int argc, char **argv) { - char *host = "localhost"; - unsigned int port = 64738; struct cmumble_context ctx; + GError *error = NULL; + GOptionContext *context; + + context = g_option_context_new ("command line mumble client"); + g_option_context_add_main_entries (context, entries, "cmumble"); - if (argc >= 3) - host = argv[2]; - if (argc >= 4) - port = atoi(argv[3]); + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_print("option parsing failed: %s\n", error->message); + exit(1); + } memset(&ctx, 0, sizeof(ctx)); - ctx.user_name = argv[1]; + ctx.user_name = user; ctx.users = NULL; g_type_init(); |