diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2009-01-07 02:10:13 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@frugalware.org> | 2009-01-07 02:10:13 +0100 |
commit | 078b0b909888bb0a39f7b5365c772866a8ff4d46 (patch) | |
tree | f15a16b766eea5881da4aa8d74c62adf099bb0a5 | |
parent | 359f4d9ae19a45d0d7d34bc2ba27c41e0ab6730f (diff) |
introduce skype_parse_users()
-rw-r--r-- | skype/skype.c | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/skype/skype.c b/skype/skype.c index 07529e5c..5f1210ea 100644 --- a/skype/skype.c +++ b/skype/skype.c @@ -273,6 +273,21 @@ static char *skype_call_strerror(int err) } } +static void skype_parse_users(struct im_connection *ic, char *line) +{ + char **i, **nicks, *ptr; + + nicks = g_strsplit(line + 6, ", ", 0); + i = nicks; + while (*i) { + ptr = g_strdup_printf("GET USER %s ONLINESTATUS\n", *i); + skype_write(ic, ptr); + g_free(ptr); + i++; + } + g_strfreev(nicks); +} + static gboolean skype_read_callback(gpointer data, gint fd, b_input_condition cond) { @@ -296,19 +311,9 @@ static gboolean skype_read_callback(gpointer data, gint fd, break; if (set_getbool(&ic->acc->set, "skypeconsole_receive")) imcb_buddy_msg(ic, "skypeconsole", line, 0, 0); - if (!strncmp(line, "USERS ", 6)) { - char **i; - char **nicks; - - nicks = g_strsplit(line + 6, ", ", 0); - i = nicks; - while (*i) { - g_snprintf(buf, 1024, "GET USER %s ONLINESTATUS\n", *i); - skype_write(ic, buf); - i++; - } - g_strfreev(nicks); - } else if (!strncmp(line, "USER ", 5)) { + if (!strncmp(line, "USERS ", 6)) + skype_parse_users(ic, line); + else if (!strncmp(line, "USER ", 5)) { int flags = 0; char *status = strrchr(line, ' '); char *user = strchr(line, ' '); |