# HG changeset patch # User SHiNE CsyFeK # Date 1234089271 0 # Node ID cddd7961901f5f81e245829ebdc868396f8acd96 # Parent effbf24b39b152e9c125d5b0bdc44eda15d7077d# Parent d7dcdba13b8867b5c72f91b3fe5ddec8f40d05d1 propagate from branch 'im.pidgin.pidgin' (head 32e078dbbf6d15a1c0a2916f1d590ea45f3c364d) to branch 'im.pidgin.pidgin.openq' (head 2634a1410370cffba5172a684edbe1009b78107a) diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/data.c diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/data.h diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/google.c diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/google.h diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/iq.c diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/ping.c diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/ping.h diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/si.c diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/jabber/si.h diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/ChangeLog --- a/libpurple/protocols/qq/ChangeLog Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/ChangeLog Sun Feb 08 10:34:31 2009 +0000 @@ -1,3 +1,6 @@ +2009.02.08 - flos + * Fixed showing message of chat room when message comes in + 2008.12.28 - flos * Fixes #7908 diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/buddy_info.c --- a/libpurple/protocols/qq/buddy_info.c Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/buddy_info.c Sun Feb 08 10:34:31 2009 +0000 @@ -108,41 +108,41 @@ } QQ_FIELD_INFO; static const QQ_FIELD_INFO field_infos[] = { - { QQ_FIELD_BASE, QQ_FIELD_STRING, "uid", N_("QQ Number"), NULL, 0 }, - { QQ_FIELD_BASE, QQ_FIELD_STRING, "nick", N_("Nickname"), NULL, 0 }, - { QQ_FIELD_ADDR, QQ_FIELD_STRING, "country", N_("Country/Region"), NULL, 0 }, - { QQ_FIELD_ADDR, QQ_FIELD_STRING, "province", N_("Province/State"), NULL, 0 }, - { QQ_FIELD_ADDR, QQ_FIELD_STRING, "zipcode", N_("Zipcode"), NULL, 0 }, - { QQ_FIELD_ADDR, QQ_FIELD_STRING, "address", N_("Address"), NULL, 0 }, - { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "tel", N_("Phone Number"), NULL, 0 }, - { QQ_FIELD_BASE, QQ_FIELD_STRING, "age", N_("Age"), NULL, 0 }, - { QQ_FIELD_BASE, QQ_FIELD_CHOICE, "gender", N_("Gender"), genders, QQ_GENDER_SIZE }, - { QQ_FIELD_BASE, QQ_FIELD_STRING, "name", N_("Name"), NULL, 0 }, - { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "email", N_("Email"), NULL, 0 }, - { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sn", "Pager Serial Num", NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_STRING, "uid", N_("QQ Number"), NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_STRING, "nick", N_("Nickname"), NULL, 0 }, + { QQ_FIELD_ADDR, QQ_FIELD_STRING, "country", N_("Country/Region"), NULL, 0 }, + { QQ_FIELD_ADDR, QQ_FIELD_STRING, "province", N_("Province/State"), NULL, 0 }, + { QQ_FIELD_ADDR, QQ_FIELD_STRING, "zipcode", N_("Zipcode"), NULL, 0 }, + { QQ_FIELD_ADDR, QQ_FIELD_STRING, "address", N_("Address"), NULL, 0 }, + { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "tel", N_("Phone Number"), NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_STRING, "age", N_("Age"), NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_CHOICE, "gender", N_("Gender"), genders, QQ_GENDER_SIZE }, + { QQ_FIELD_BASE, QQ_FIELD_STRING, "name", N_("Name"), NULL, 0 }, + { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "email", N_("Email"), NULL, 0 }, + { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sn", "Pager Serial Num", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_num", "Pager Num", NULL, 0 }, - { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sp", "Pager Serivce Provider", NULL, 0 }, - { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sta", "Pager Station Num", NULL, 0 }, + { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sp", "Pager Serivce Provider", NULL, 0 }, + { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_sta", "Pager Station Num", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "pg_type", "Pager Type", NULL, 0 }, - { QQ_FIELD_BASE, QQ_FIELD_STRING, "occupation", N_("Occupation"), NULL, 0 }, - { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "homepage", N_("Homepage"), NULL, 0 }, - { QQ_FIELD_BASE, QQ_FIELD_BOOL, "auth", N_("Authorize adding"), NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_STRING, "occupation", N_("Occupation"), NULL, 0 }, + { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "homepage", N_("Homepage"), NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_BOOL, "auth", N_("Authorize adding"), NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow1", "Unknow1", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow2", "Unknow2", NULL, 0 }, - { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "face", "Face", NULL, 0 }, - { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "mobile", N_("Cellphone Number"), NULL, 0 }, - { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "mobile_type","Cellphone Type", NULL, 0 }, - { QQ_FIELD_BASE, QQ_FIELD_MULTI, "intro", N_("Personal Introduction"), NULL, 0 }, - { QQ_FIELD_ADDR, QQ_FIELD_STRING, "city", N_("City/Area"), NULL, 0 }, + { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "face", "Face", NULL, 0 }, + { QQ_FIELD_CONTACT, QQ_FIELD_STRING, "mobile", N_("Cellphone Number"), NULL, 0 }, + { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "mobile_type", "Cellphone Type", NULL, 0 }, + { QQ_FIELD_BASE, QQ_FIELD_MULTI, "intro", N_("Personal Introduction"), NULL, 0 }, + { QQ_FIELD_ADDR, QQ_FIELD_STRING, "city", N_("City/Area"), NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow3", "Unknow3", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow4", "Unknow4", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow5", "Unknow5", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_CHOICE, "pub_mobile", N_("Publish Mobile"), publish_types, QQ_PUBLISH_SIZE }, - { QQ_FIELD_CONTACT, QQ_FIELD_CHOICE, "pub_contact", N_("Publish Contact"), publish_types, QQ_PUBLISH_SIZE }, - { QQ_FIELD_EXT, QQ_FIELD_STRING, "college", N_("College"), NULL, 0 }, - { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "horoscope", N_("Horoscope"), horoscope_names, QQ_HOROSCOPE_SIZE }, - { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "zodiac", N_("Zodiac"), zodiac_names, QQ_ZODIAC_SIZE }, - { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "blood", N_("Blood"), blood_types, QQ_BLOOD_SIZE }, + { QQ_FIELD_CONTACT, QQ_FIELD_CHOICE, "pub_contact", N_("Publish Contact"), publish_types, QQ_PUBLISH_SIZE }, + { QQ_FIELD_EXT, QQ_FIELD_STRING, "college", N_("College"), NULL, 0 }, + { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "horoscope", N_("Horoscope"), horoscope_names, QQ_HOROSCOPE_SIZE }, + { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "zodiac", N_("Zodiac"), zodiac_names, QQ_ZODIAC_SIZE }, + { QQ_FIELD_EXT, QQ_FIELD_CHOICE, "blood", N_("Blood"), blood_types, QQ_BLOOD_SIZE }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "qq_show", "QQ Show", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "unknow6", "Unknow6", NULL, 0 }, { QQ_FIELD_UNUSED, QQ_FIELD_STRING, "LAST_2005", "LAST_2005", NULL, 0 } @@ -196,7 +196,9 @@ break; case QQ_FIELD_CHOICE: choice_num = strtol(segments[index], NULL, 10); - if (choice_num < 0 || choice_num >= field_infos[index].choice_size) choice_num = 0; + if (choice_num < 0 || choice_num >= field_infos[index].choice_size) { + choice_num = 0; + } purple_notify_user_info_add_pair(user_info, field_infos[index].text, field_infos[index].choice[choice_num]); break; diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/buddy_info.h --- a/libpurple/protocols/qq/buddy_info.h Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/buddy_info.h Sun Feb 08 10:34:31 2009 +0000 @@ -31,7 +31,7 @@ #include "buddy_opt.h" #include "qq.h" -/* use is openq2005 +/* use in qq2005 * ext_flag: (0-7) * bit1 => qq space * comm_flag: (0-7) diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/group_im.c --- a/libpurple/protocols/qq/group_im.c Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/group_im.c Sun Feb 08 10:34:31 2009 +0000 @@ -165,6 +165,7 @@ guint32 room_id, guint32 uid_from, const gchar *msg, time_t in_time) { PurpleConversation *conv; + qq_data *qd; qq_buddy_data *bd; qq_room_data *rmd; gchar *from; @@ -172,15 +173,17 @@ g_return_if_fail(gc != NULL && room_id != 0); g_return_if_fail(msg != NULL); + qd = (qq_data *)gc->proto_data; conv = purple_find_chat(gc, room_id); rmd = qq_room_data_find(gc, room_id); g_return_if_fail(rmd != NULL); - if (conv == NULL && purple_prefs_get_bool("/plugins/prpl/qq/auto_popup_conversation")) { + purple_debug_info("QQ", "is_show_chat:%d\n", qd->is_show_chat); + if (NULL == conv && qd->is_show_chat) { conv = qq_room_conv_open(gc, rmd); } - if (conv == NULL) { + if (NULL == conv) { purple_debug_info("QQ", "Conversion of %u is not open, missing from %d:/n%s/v", room_id, uid_from, msg); return; diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/qq.c --- a/libpurple/protocols/qq/qq.c Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/qq.c Sun Feb 08 10:34:31 2009 +0000 @@ -173,6 +173,7 @@ qd->is_show_notice = purple_account_get_bool(account, "show_notice", TRUE); qd->is_show_news = purple_account_get_bool(account, "show_news", TRUE); + qd->is_show_chat = purple_account_get_bool(account, "show_chat", TRUE); qd->resend_times = purple_prefs_get_int("/plugins/prpl/qq/resend_times"); if (qd->resend_times <= 1) qd->itv_config.resend = 4; @@ -1095,6 +1096,9 @@ option = purple_account_option_bool_new(_("Show server news"), "show_news", TRUE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_bool_new(_("Show chat room when msg comes"), "show_chat", TRUE); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = purple_account_option_int_new(_("Keep alive interval (seconds)"), "keep_alive_interval", 60); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); @@ -1104,7 +1108,6 @@ purple_prefs_add_none("/plugins/prpl/qq"); purple_prefs_add_bool("/plugins/prpl/qq/show_status_by_icon", TRUE); purple_prefs_add_bool("/plugins/prpl/qq/show_fake_video", FALSE); - purple_prefs_add_bool("/plugins/prpl/qq/auto_popup_conversation", TRUE); purple_prefs_add_bool("/plugins/prpl/qq/auto_get_authorize_info", TRUE); purple_prefs_add_int("/plugins/prpl/qq/resend_interval", 3); purple_prefs_add_int("/plugins/prpl/qq/resend_times", 10); diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/qq.h --- a/libpurple/protocols/qq/qq.h Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/qq.h Sun Feb 08 10:34:31 2009 +0000 @@ -182,6 +182,7 @@ gboolean is_show_notice; gboolean is_show_news; + gboolean is_show_chat; guint16 send_im_id; /* send IM sequence number */ }; diff -r d7dcdba13b88 -r cddd7961901f libpurple/protocols/qq/qq_network.c --- a/libpurple/protocols/qq/qq_network.c Sun Feb 08 05:02:30 2009 +0000 +++ b/libpurple/protocols/qq/qq_network.c Sun Feb 08 10:34:31 2009 +0000 @@ -214,7 +214,7 @@ qd->connect_retry = QQ_CONNECT_MAX; } - segments = g_strsplit(qd->curr_server, ":", 0); + segments = g_strsplit_set(qd->curr_server, ":", 0); tmp_server = g_strdup(segments[0]); if (NULL != segments[1]) { port = atoi(segments[1]);