aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2008-01-30 23:05:52 +0000
committerWilmer van der Gaast <wilmer@gaast.net>2008-01-30 23:05:52 +0000
commitf774e01cdb34e339455671f51413ecdc6de3208d (patch)
tree544204b2e0924ac45d911e5f37eef540facd40d0
parentb5c8a34aeff244ffe7a9f4bd5edf827495d0deea (diff)
Fixed handling of OSCAR multi-part messages... They're not arrays, they're
linked lists!
-rw-r--r--protocols/oscar/oscar.c10
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);
+ }
}
}