diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2008-01-30 23:05:52 +0000 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2008-01-30 23:05:52 +0000 |
commit | f774e01cdb34e339455671f51413ecdc6de3208d (patch) | |
tree | 544204b2e0924ac45d911e5f37eef540facd40d0 | |
parent | b5c8a34aeff244ffe7a9f4bd5edf827495d0deea (diff) |
Fixed handling of OSCAR multi-part messages... They're not arrays, they're
linked lists!
-rw-r--r-- | protocols/oscar/oscar.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index 30ad4b68..9e5de70a 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -1065,12 +1065,14 @@ static int incomingim_chan1(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_ } else if (args->mpmsg.numparts == 0) { g_snprintf(tmp, BUF_LONG, "%s", args->msg); } else { - int i; + aim_mpmsg_section_t *part; *tmp = 0; - for (i = 0; i < args->mpmsg.numparts; i ++) { - g_strlcat(tmp, (char*) args->mpmsg.parts[i].data, BUF_LONG); - g_strlcat(tmp, "\n", BUF_LONG); + for (part = args->mpmsg.parts; part; part = part->next) { + if (part->data) { + g_strlcat(tmp, (char*) part->data, BUF_LONG); + g_strlcat(tmp, "\n", BUF_LONG); + } } } |