Mercurial > pidgin
comparison libpurple/protocols/yahoo/yahoo.c @ 27187:52afd38e64d4
Create a string only when necessary. Fixes a small possible leak.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 27 Jun 2009 09:08:56 +0000 |
parents | 48df71b5cfd1 |
children | c0f1ae3e16e0 |
comparison
equal
deleted
inserted
replaced
27186:25db53cfc12c | 27187:52afd38e64d4 |
---|---|
743 YahooFriend *f = NULL; | 743 YahooFriend *f = NULL; |
744 GSList *l = pkt->hash; | 744 GSList *l = pkt->hash; |
745 gint val_11 = 0; | 745 gint val_11 = 0; |
746 struct yahoo_data *yd = gc->proto_data; | 746 struct yahoo_data *yd = gc->proto_data; |
747 gboolean msn = FALSE; | 747 gboolean msn = FALSE; |
748 char *msn_from = NULL; | |
749 | 748 |
750 account = purple_connection_get_account(gc); | 749 account = purple_connection_get_account(gc); |
751 | 750 |
752 while (l) { | 751 while (l) { |
753 struct yahoo_pair *pair = l->data; | 752 struct yahoo_pair *pair = l->data; |
776 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ | 775 /* remove from p2p connection lists, also calls yahoo_p2p_disconnect_destroy_data */ |
777 g_hash_table_remove(yd->peers, from); | 776 g_hash_table_remove(yd->peers, from); |
778 return; | 777 return; |
779 } | 778 } |
780 | 779 |
781 if(msn) | |
782 msn_from = g_strconcat("msn/", from, NULL); | |
783 | |
784 if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING")) | 780 if (!g_ascii_strncasecmp(msg, "TYPING", strlen("TYPING")) |
785 && (purple_privacy_check(account, from))) | 781 && (purple_privacy_check(account, from))) |
786 { | 782 { |
787 if(msn) { | 783 if(msn) { |
784 char *msn_from = g_strconcat("msn/", from, NULL); | |
788 if (*stat == '1') | 785 if (*stat == '1') |
789 serv_got_typing(gc, msn_from, 0, PURPLE_TYPING); | 786 serv_got_typing(gc, msn_from, 0, PURPLE_TYPING); |
790 else | 787 else |
791 serv_got_typing_stopped(gc, msn_from); | 788 serv_got_typing_stopped(gc, msn_from); |
789 g_free(msn_from); | |
792 } | 790 } |
793 else { | 791 else { |
794 if (*stat == '1') | 792 if (*stat == '1') |
795 serv_got_typing(gc, from, 0, PURPLE_TYPING); | 793 serv_got_typing(gc, from, 0, PURPLE_TYPING); |
796 else | 794 else |
820 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, from, account); | 818 PurpleConversation *conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, from, account); |
821 char *buf = g_strdup_printf(_("%s has sent you a webcam invite, which is not yet supported."), from); | 819 char *buf = g_strdup_printf(_("%s has sent you a webcam invite, which is not yet supported."), from); |
822 purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NOTIFY, time(NULL)); | 820 purple_conversation_write(conv, NULL, buf, PURPLE_MESSAGE_SYSTEM|PURPLE_MESSAGE_NOTIFY, time(NULL)); |
823 g_free(buf); | 821 g_free(buf); |
824 } | 822 } |
825 | |
826 g_free(msn_from); | |
827 } | 823 } |
828 | 824 |
829 | 825 |
830 struct _yahoo_im { | 826 struct _yahoo_im { |
831 char *from; | 827 char *from; |