Mercurial > pidgin.yaz
changeset 25891:2260e5b0ca91
*** Plucked rev f9080d0b (khc@pidgin.im):
correctly NULL terminate all the arrays since that's what gtknotify assumes,
also fixed a memory leak in gmail notification
*** Plucked rev a543de79 (khc@pidgin.im):
Qulogic pointed out that glib has G_N_ELEMENTS already
*** Plucked rev 19b202a7 (khc@pidgin.im):
used the wrong count variable here
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 10 May 2009 23:25:26 +0000 |
parents | 9c0337d4b878 |
children | b34d5e9b3d9b |
files | libpurple/protocols/jabber/google.c libpurple/protocols/msn/notification.c libpurple/protocols/msn/oim.c libpurple/protocols/msnp9/notification.c libpurple/protocols/myspace/myspace.c libpurple/protocols/oscar/oscar.c libpurple/protocols/yahoo/yahoo.c |
diffstat | 7 files changed, 45 insertions(+), 47 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/google.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/jabber/google.c Sun May 10 23:25:26 2009 +0000 @@ -39,7 +39,6 @@ char *subject; const char *in_str; char *to_name; - char *default_tos[1]; int i, count = 1, returned_count; @@ -59,14 +58,20 @@ /* If Gmail doesn't tell us who the mail is to, let's use our JID */ to = xmlnode_get_attrib(packet, "to"); - default_tos[0] = jabber_get_bare_jid(to); message = xmlnode_get_child(child, "mail-thread-info"); if (count == 0 || !message) { - if (count > 0) - purple_notify_emails(js->gc, count, FALSE, NULL, NULL, (const char**) default_tos, NULL, NULL, NULL); - g_free(default_tos[0]); + if (count > 0) { + char *bare_jid = jabber_get_bare_jid(to); + const char *default_tos[2] = { bare_jid }; + + purple_notify_emails(js->gc, count, FALSE, NULL, NULL, default_tos, NULL, NULL, NULL); + g_free(bare_jid); + } else { + purple_notify_emails(js->gc, count, FALSE, NULL, NULL, NULL, NULL, NULL, NULL); + } + return; } @@ -74,10 +79,10 @@ * accordingly */ for (returned_count = 0; message; returned_count++, message=xmlnode_get_next_twin(message)); - froms = g_new0(const char* , returned_count); - tos = g_new0(const char* , returned_count); - subjects = g_new0(char* , returned_count); - urls = g_new0(const char* , returned_count); + froms = g_new0(const char* , returned_count + 1); + tos = g_new0(const char* , returned_count + 1); + subjects = g_new0(char* , returned_count + 1); + urls = g_new0(const char* , returned_count + 1); to = xmlnode_get_attrib(packet, "to"); to_name = jabber_get_bare_jid(to); @@ -123,16 +128,12 @@ if (i>0) purple_notify_emails(js->gc, count, count == i, (const char**) subjects, froms, tos, urls, NULL, NULL); - else - purple_notify_emails(js->gc, count, FALSE, NULL, NULL, (const char**) default_tos, NULL, NULL, NULL); - g_free(to_name); g_free(tos); - g_free(default_tos[0]); g_free(froms); - for (; i > 0; i--) - g_free(subjects[i - 1]); + for (i = 0; i < returned_count; i++) + g_free(subjects[i]); g_free(subjects); g_free(urls);
--- a/libpurple/protocols/msn/notification.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/msn/notification.c Sun May 10 23:25:26 2009 +0000 @@ -1891,14 +1891,11 @@ if (count > 0) { - const char *passport; - const char *url; - - passport = msn_user_get_passport(session->user); - url = session->passport_info.mail_url; + const char *passports[2] = { msn_user_get_passport(session->user) }; + const char *urls[2] = { session->passport_info.mail_url }; purple_notify_emails(gc, count, FALSE, NULL, NULL, - &passport, &url, NULL, NULL); + passports, urls, NULL, NULL); } } @@ -1960,14 +1957,11 @@ if (count > 0) { - const char *passport; - const char *url; - - passport = msn_user_get_passport(session->user); - url = session->passport_info.mail_url; + const char *passports[2] = { msn_user_get_passport(session->user) }; + const char *urls[2] = { session->passport_info.mail_url }; purple_notify_emails(gc, count, FALSE, NULL, NULL, - &passport, &url, NULL, NULL); + passports, urls, NULL, NULL); } }
--- a/libpurple/protocols/msn/oim.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/msn/oim.c Sun May 10 23:25:26 2009 +0000 @@ -764,14 +764,14 @@ if (iu_node != NULL && purple_account_get_check_mail(session->account)) { char *unread = xmlnode_get_data(iu_node); - const char *passport = msn_user_get_passport(session->user); - const char *url = session->passport_info.mail_url; + const char *passports[2] = { msn_user_get_passport(session->user) }; + const char *urls[2] = { session->passport_info.mail_url }; int count = atoi(unread); /* XXX/khc: pretty sure this is wrong */ if (count > 0) purple_notify_emails(session->account->gc, count, FALSE, NULL, - NULL, &passport, &url, NULL, NULL); + NULL, passports, urls, NULL, NULL); g_free(unread); }
--- a/libpurple/protocols/msnp9/notification.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/msnp9/notification.c Sun May 10 23:25:26 2009 +0000 @@ -1280,14 +1280,11 @@ if (count > 0) { - const char *passport; - const char *url; + const char *passports[2] = { msn_user_get_passport(session->user) }; + const char *urls[2] = { session->passport_info.file }; - passport = msn_user_get_passport(session->user); - url = session->passport_info.file; - - purple_notify_emails(gc, atoi(unread), FALSE, NULL, NULL, - &passport, &url, NULL, NULL); + purple_notify_emails(gc, count, FALSE, NULL, NULL, + passports, urls, NULL, NULL); } }
--- a/libpurple/protocols/myspace/myspace.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/myspace/myspace.c Sun May 10 23:25:26 2009 +0000 @@ -840,8 +840,6 @@ MsimMessage *body; guint old_inbox_status; guint i, n; - const gchar *froms[5], *tos[5], *urls[5], *subjects[5]; - /* Information for each new inbox message type. */ static struct { @@ -856,16 +854,22 @@ { "FriendRequest", MSIM_INBOX_FRIEND_REQUEST, "http://messaging.myspace.com/index.cfm?fuseaction=mail.friendRequests", NULL }, { "PictureComment", MSIM_INBOX_PICTURE_COMMENT, "http://home.myspace.com/index.cfm?fuseaction=user", NULL } }; + const gchar *froms[G_N_ELEMENTS(message_types) + 1] = { "" }, + *tos[G_N_ELEMENTS(message_types) + 1] = { "" }, + *urls[G_N_ELEMENTS(message_types) + 1] = { "" }, + *subjects[G_N_ELEMENTS(message_types) + 1] = { "" }; + + g_return_if_fail(reply != NULL); /* Can't write _()'d strings in array initializers. Workaround. */ + /* khc: then use N_() in the array initializer and use _() when they are + used */ message_types[0].text = _("New mail messages"); message_types[1].text = _("New blog comments"); message_types[2].text = _("New profile comments"); message_types[3].text = _("New friend requests!"); message_types[4].text = _("New picture comments"); - g_return_if_fail(reply != NULL); - body = msim_msg_get_dictionary(reply, "body"); if (body == NULL) @@ -875,7 +879,7 @@ n = 0; - for (i = 0; i < sizeof(message_types) / sizeof(message_types[0]); ++i) { + for (i = 0; i < G_N_ELEMENTS(message_types); ++i) { const gchar *key; guint bit;
--- a/libpurple/protocols/oscar/oscar.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.c Sun May 10 23:25:26 2009 +0000 @@ -3560,8 +3560,10 @@ gchar *to = g_strdup_printf("%s%s%s", purple_account_get_username(purple_connection_get_account(gc)), emailinfo->domain ? "@" : "", emailinfo->domain ? emailinfo->domain : ""); + const char *tos[2] = { to }; + const char *urls[2] = {emailinfo->url }; if (emailinfo->unread && havenewmail) - purple_notify_emails(gc, emailinfo->nummsgs, FALSE, NULL, NULL, (const char **)&to, (const char **)&emailinfo->url, NULL, NULL); + purple_notify_emails(gc, emailinfo->nummsgs, FALSE, NULL, NULL, tos, urls, NULL, NULL); g_free(to); }
--- a/libpurple/protocols/yahoo/yahoo.c Wed May 06 18:58:47 2009 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Sun May 10 23:25:26 2009 +0000 @@ -1333,10 +1333,10 @@ g_free(dec_subj); g_free(from); } else if (count > 0) { - const char *to = purple_account_get_username(account); - const char *url = yahoo_mail_url; - - purple_notify_emails(gc, count, FALSE, NULL, NULL, &to, &url, + const char *tos[2] = { purple_account_get_username(account) }; + const char *urls[2] = { yahoo_mail_url }; + + purple_notify_emails(gc, count, FALSE, NULL, NULL, tos, urls, NULL, NULL); } }