# HG changeset patch # User Yoshiki Yazawa # Date 1185511484 0 # Node ID 69cb4582b5138ec3ceef8fa7feffc347ecc5b9f6 # Parent e9abf085d519c9aa8fd0196a6f056cad667bc771# Parent ddb7212a8794c0f86e3278c64e4c6e6db5ff6488 propagate from branch 'im.pidgin.pidgin' (head 82f657fd45abe5db78920f196a8a795c730c78cc) to branch 'im.pidgin.pidgin.yaz' (head 249d4c86517c508241bfc4da293c5fdb11cc1de7) diff -r e9abf085d519 -r 69cb4582b513 finch/gntconv.c --- a/finch/gntconv.c Wed Jul 25 04:36:02 2007 +0000 +++ b/finch/gntconv.c Fri Jul 27 04:44:44 2007 +0000 @@ -259,7 +259,7 @@ gnt_text_view_scroll(GNT_TEXT_VIEW(ggc->tv), 0); } else { title = get_conversation_title(conv, account); - gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", NULL, TRUE); + gnt_text_view_tag_change(GNT_TEXT_VIEW(ggc->tv), "typing", " ", TRUE); } gnt_screen_rename_widget(ggc->window, title); g_free(title); @@ -588,7 +588,6 @@ char *strip, *newline; GntTextFormatFlags fl = 0; int pos; - gboolean notify; g_return_if_fail(ggconv != NULL); @@ -601,7 +600,7 @@ pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(ggconv->tv)); - notify = !!gnt_text_view_tag_change(GNT_TEXT_VIEW(ggconv->tv), "typing", NULL, TRUE); + gnt_text_view_tag_change(GNT_TEXT_VIEW(ggconv->tv), "typing", NULL, TRUE); gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), "\n", GNT_TEXT_FLAG_NORMAL); /* Unnecessary to print the timestamp for delayed message */ @@ -643,7 +642,8 @@ g_free(newline); g_free(strip); - if (notify) { + if (purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_IM && + purple_conv_im_get_typing_state(PURPLE_CONV_IM(conv)) == PURPLE_TYPING) { strip = g_strdup_printf(_("\n%s is typing..."), purple_conversation_get_name(conv)); gnt_text_view_append_text_with_tag(GNT_TEXT_VIEW(ggconv->tv), strip, GNT_TEXT_FLAG_DIM, "typing"); diff -r e9abf085d519 -r 69cb4582b513 libpurple/idle.c --- a/libpurple/idle.c Wed Jul 25 04:36:02 2007 +0000 +++ b/libpurple/idle.c Fri Jul 27 04:44:44 2007 +0000 @@ -30,8 +30,6 @@ #include "savedstatuses.h" #include "signals.h" -#define IDLEMARK 600 /* 10 minutes! */ - typedef enum { PURPLE_IDLE_NOT_AWAY = 0, @@ -121,7 +119,7 @@ gboolean report_idle = TRUE; gint away_seconds = 0; gint idle_recheck_interval = 0; - + gint idle_poll_seconds = purple_prefs_get_int("/purple/away/mins_before_away") * 60; purple_signal_emit(purple_blist_get_handle(), "update-idle"); idle_reporting = purple_prefs_get_string("/purple/away/idle_reporting"); @@ -132,7 +130,7 @@ { /* Use system idle time (mouse or keyboard movement, etc.) */ time_idle = idle_ui_ops->get_time_idle(); - idle_recheck_interval = 60; + idle_recheck_interval = 1; } else if (!strcmp(idle_reporting, "purple")) { @@ -153,7 +151,7 @@ if ((idle_ui_ops != NULL) && (idle_ui_ops->get_time_idle != NULL)) { time_idle = idle_ui_ops->get_time_idle(); - idle_recheck_interval = 60; + idle_recheck_interval = 1; } else { @@ -173,7 +171,7 @@ } } - time_until_next_idle_event = IDLEMARK - time_idle; + time_until_next_idle_event = idle_poll_seconds - time_idle; if (time_until_next_idle_event < 0) { /* If we're already idle, check again as appropriate. */ @@ -197,7 +195,7 @@ } /* Idle reporting stuff */ - if (report_idle && (time_idle >= IDLEMARK)) + if (report_idle && (time_idle >= idle_poll_seconds)) { GList *l; for (l = purple_connections_get_all(); l != NULL; l = l->next) @@ -206,7 +204,7 @@ set_account_idle(purple_connection_get_account(gc), time_idle); } } - else if (!report_idle || (time_idle < IDLEMARK)) + else if (!report_idle || (time_idle < idle_poll_seconds )) { while (idled_accts != NULL) set_account_unidle(idled_accts->data); @@ -306,6 +304,11 @@ static gboolean _do_purple_idle_touch_cb(gpointer data) { + int idle_poll_minutes = purple_prefs_get_int("/purple/away/mins_before_away"); + + /* +1 more for g_timeout_add_seconds rounding. */ + idle_timer = purple_timeout_add_seconds((idle_poll_minutes * 60) + 2, check_idleness_timer, NULL); + purple_idle_touch(); return FALSE; @@ -315,11 +318,6 @@ void purple_idle_init() { - /* Add the timer to check if we're idle. - * IDLEMARK + 1 as the boundary, - * +1 more for g_timeout_add_seconds rounding. */ - idle_timer = purple_timeout_add_seconds((IDLEMARK + 2), check_idleness_timer, NULL); - purple_signal_connect(purple_conversations_get_handle(), "sent-im-msg", purple_idle_get_handle(), PURPLE_CALLBACK(im_msg_sent_cb), NULL); diff -r e9abf085d519 -r 69cb4582b513 libpurple/plugins/perl/common/Account.xs --- a/libpurple/plugins/perl/common/Account.xs Wed Jul 25 04:36:02 2007 +0000 +++ b/libpurple/plugins/perl/common/Account.xs Fri Jul 27 04:44:44 2007 +0000 @@ -307,6 +307,9 @@ } g_list_free(list); +void +purple_accounts_restore_current_statuses() + Purple::Account purple_accounts_find(name, protocol) const char * name diff -r e9abf085d519 -r 69cb4582b513 libpurple/plugins/perl/common/BuddyIcon.xs --- a/libpurple/plugins/perl/common/BuddyIcon.xs Wed Jul 25 04:36:02 2007 +0000 +++ b/libpurple/plugins/perl/common/BuddyIcon.xs Fri Jul 27 04:44:44 2007 +0000 @@ -45,6 +45,10 @@ int *width int *height +char * +purple_buddy_icon_get_full_path(icon); + Purple::Buddy::Icon icon + MODULE = Purple::Buddy::Icon PACKAGE = Purple::Buddy::Icons PREFIX = purple_buddy_icons_ PROTOTYPES: ENABLE diff -r e9abf085d519 -r 69cb4582b513 libpurple/protocols/bonjour/jabber.c --- a/libpurple/protocols/bonjour/jabber.c Wed Jul 25 04:36:02 2007 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Fri Jul 27 04:44:44 2007 +0000 @@ -350,7 +350,6 @@ PurpleAccount *account = pb->account; BonjourBuddy *bb = pb->proto_data; gboolean closed_conversation = FALSE; - xmlnode *message_node; /* Read the data from the socket */ if ((message_length = _read_data(socket, &message)) == -1) { @@ -374,9 +373,6 @@ } } - /* Parse the message into an XMLnode for analysis */ - message_node = xmlnode_from_str(message, strlen(message)); - /* * Check that this is not the end of the conversation. This is * using a magic string, but xmlnode won't play nice when just @@ -396,16 +392,22 @@ purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL)); g_free(tmp); } - } else if (message_node != NULL) { - /* Parse the message to get the data and send to the ui */ - _jabber_parse_and_write_message_to_ui(message_node, account->gc, pb); } else { - /* TODO: Deal with receiving only a partial message */ + xmlnode *message_node; + + /* Parse the message into an XMLnode for analysis */ + message_node = xmlnode_from_str(message, strlen(message)); + + if (message_node != NULL) { + /* Parse the message to get the data and send to the ui */ + _jabber_parse_and_write_message_to_ui(message_node, account->gc, pb); + xmlnode_free(message_node); + } else { + /* TODO: Deal with receiving only a partial message */ + } } g_free(message); - if (message_node != NULL) - xmlnode_free(message_node); } struct _stream_start_data { @@ -638,7 +640,7 @@ PurpleBuddy *pb = data; BonjourBuddy *bb = pb->proto_data; int len, ret; - char *stream_start = g_strdup_printf(DOCTYPE, purple_account_get_username(pb->account), purple_buddy_get_name(pb)); + char *stream_start; bb->conversation->connect_data = NULL; @@ -659,6 +661,7 @@ return; } + stream_start = g_strdup_printf(DOCTYPE, purple_account_get_username(pb->account), purple_buddy_get_name(pb)); len = strlen(stream_start); /* Start the stream and send queued messages */ diff -r e9abf085d519 -r 69cb4582b513 libpurple/protocols/yahoo/yahoo.c --- a/libpurple/protocols/yahoo/yahoo.c Wed Jul 25 04:36:02 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Fri Jul 27 04:44:44 2007 +0000 @@ -1917,6 +1917,7 @@ char *msg; char *url = NULL; char *fullmsg; + PurpleAccount *account = gc->account; while (l) { struct yahoo_pair *pair = l->data; @@ -1949,6 +1950,9 @@ return; } #endif + if (!purple_account_get_remember_password(account)) + purple_account_set_password(account, NULL); + msg = g_strdup(_("Incorrect password.")); break; case 14: diff -r e9abf085d519 -r 69cb4582b513 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Wed Jul 25 04:36:02 2007 +0000 +++ b/pidgin/gtkconv.c Fri Jul 27 04:44:44 2007 +0000 @@ -2369,6 +2369,8 @@ &(gtkconv->infopane_iter), CONV_EMBLEM_COLUMN, emblem, -1); + /* XXX seanegan Why do I have to do this? */ + gtk_widget_queue_draw(gtkconv->infopane); if (status != NULL) g_object_unref(status); diff -r e9abf085d519 -r 69cb4582b513 pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Wed Jul 25 04:36:02 2007 +0000 +++ b/pidgin/gtkprefs.c Fri Jul 27 04:44:44 2007 +0000 @@ -997,7 +997,7 @@ pidgin_prefs_checkbox(_("Show _formatting on incoming messages"), PIDGIN_PREFS_ROOT "/conversations/show_incoming_formatting", vbox); - iconpref1 = pidgin_prefs_checkbox(_("Show Buddy _Details"), + iconpref1 = pidgin_prefs_checkbox(strchr(_("/Buddies/Show Buddy _Details")+1,'/')+1, PIDGIN_PREFS_ROOT "/conversations/im/show_buddy_icons", vbox); iconpref2 = pidgin_prefs_checkbox(_("Enable buddy ic_on animation"), PIDGIN_PREFS_ROOT "/conversations/im/animate_buddy_icons", vbox); diff -r e9abf085d519 -r 69cb4582b513 pidgin/pixmaps/emotes/default/22/default.theme.in --- a/pidgin/pixmaps/emotes/default/22/default.theme.in Wed Jul 25 04:36:02 2007 +0000 +++ b/pidgin/pixmaps/emotes/default/22/default.theme.in Fri Jul 27 04:44:44 2007 +0000 @@ -29,7 +29,7 @@ smile.png :-) :) wink.png ;-) ;) sad.png :-( :( -tongue.png :-P :P :-p :p +tongue.png :-P :P shock.png =-O kiss.png :-* shout.png >:o @@ -90,7 +90,7 @@ good.png (Y) (y) bad.png (N) (n) vampire.png :[ :-[ -goat.png (nah) +goat.png (nah) sun.png (#) rainbow.png (R) (r) quiet.png :-# @@ -122,143 +122,141 @@ party.png <:o) eyeroll.png 8-) yawn.png |-) +goat.png (nah) ! skywalker.png C:-) c:-) C:) c:) ! monkey.png :-(|) - -### Hidden MSN emotes sigarette.png (ci) (CI) handcuffs.png (%) -console.png (xx) (XX) +console.png (xx) (XX) fingers-crossed.png (yn) (YN) ### Following QQ 2006 [QQ] -shock.png /惊讶 /:O /jy /surprised -curl-lip.png /撇嘴 /:~ /pz /curl_lip -desire.png /色 /:* /se /desire -dazed.png /发呆 /:| /dazed -party.png /得意 /8-) /dy /revel -crying.png /流泪 /:< /ll /cry -bashful.png /害羞 /:$ /hx /bashful -shut-mouth.png /闭嘴 /:X /bz /shut_mouth -sleepy.png /睡 /:Z /shui /sleep -weep.png /大哭 /:'( /dk /weep -embarrassed.png /尴尬 /:-| /gg /embarassed -pissed-off.png /发怒 /:@ /fn /pissed_off -act-up.png /调皮 /:P /tp /act_up -smile-big.png /呲牙 /:D /cy /toothy_smile -smile.png /微笑 /:) /wx /small_smile -sad.png /难过 /:( /ng /sad -glasses-cool.png /酷 /:+ /kuk /cool -doctor.png /非典 /:# /feid /SARS -silly.png /抓狂 /:Q /zk /crazy -sick.png /吐 /:T /tu /vomit -snicker.png /偷笑 /;p /tx /titter -cute.png /可爱 /;-D /ka /cute -disdain.png /白眼 /;d /by /disdain -arrogant.png /傲慢 /;o /am /arrogant -starving.png /饥饿 /:g /jie /starving -yawn.png /困 /|-) /kun /sleepy -terror.png /惊恐 /:! /jk /terror -sweat.png /流汗 /:L /sweat -smirk.png /憨笑 /:> /hanx /smirk -soldier.png /大兵 /:; /db /soldier -struggle.png /奋斗 /;f /fendou /struggle -curse.png /咒骂 /:-S /zhm /curse -question.png /疑问 /? /yiw /question -quiet.png /嘘... /;x /xu /shh -hypnotized.png /晕 /;@ /yun /dizzy -excruciating.png /折磨 /:8 /zhem /excrutiating -freaked-out.png /衰 /;! /shuai /freaked_out -skeleton.png /骷髅 /!!! /kl /skeleton -hammer.png /敲打 /xx /qiao /hammer -bye.png /再见 /bye /zj /bye -go-away.png /闪人 /go /shan /go -tremble.png /发抖 /shake /fad /shake -in-love.png /爱情 /love /aiq /love -jump.png /跳 /jump /tiao /jump -search.png /找 /find /zhao /search -lashes.png /美眉 /& /mm /beautiful_eyebrows -pig.png /猪头 /pig /zt /pig -cat.png /猫咪 /cat /mm /cat -dog.png /小狗 /dog /xg /dog -hug-left.png /拥抱 /hug /yb /hug -coins.png /钱 /$ /qianc /money -lamp.png /灯泡 /! /dp /lightbulb -bowl.png /酒杯 /cup /bei /cup -cake.png /蛋糕 /cake /dg /cake -thunder.png /闪电 /li /shd /lightning -bomb.png /炸弹 /bome /zhd /bomb -knife.png /刀 /kn /dao /knife -soccerball.png /足球 /footb /zq /soccer -musical-note.png /音乐 /music /yy /music -poop.png /便便 /shit /bb /shit -coffee.png /咖啡 /coffee /kf /coffee -eat.png /饭 /eat /fan /eat -pill.png /药丸 /pill /yw /pill -rose.png /玫瑰 /rose /mg /rose -wilt.png /凋谢 /fade /dx /wilt -kiss.png /吻 /kiss /wen /kiss -love.png /爱心 /heart /xin /heart -love-over.png /心碎 /break /xs /broken_heart -meeting.png /会议 /meeting /hy /meeting -present.png /礼物 /gift /lw /gift -phone.png /电话 /phone /dh /phone -clock.png /时间 /time /sj /time -mail.png /邮件 /email /yj /email -tv.png /电视 /TV /ds /TV -sun.png /太阳 /sun /ty /sun -moon.png /月亮 /moon /yl /moon -good.png /强 /strong /qiang /thumbs_up -bad.png /弱 /weak /ruo /thumbs_down -handshake.png /握手 /share /ws /handshake -victory.png /胜利 /v /shl /victory -beauty.png /美女 / /mn /beauty -qq.png /Q仔 / /qz /qq -blowkiss.png /飞吻 / /fw /blow_kiss -angry.png /怄火 / /oh /angry -liquor.png /白酒 / /bj /baijiu -can.png /汽水 / /qsh /soda -watermelon.png /西瓜 / /xigua /watermelon -rain.png /下雨 / /xy /rain -cloudy.png /多云 /<~> /duoy /cloudy -snowman.png /雪人 / /xr /snowman -star.png /星星 /<*> /xixing /star -girl.png /女 /<00> /nv /woman -boy.png /男 /<11> /nan /man +shock.png /:O /jy /surprised +curl-lip.png /:~ /pz /curl_lip +desire.png /:* /se /desire +dazed.png /:| /dazed +party.png /8-) /dy /revel +crying.png /:< /ll /cry +bashful.png /:$ /hx /bashful +shut-mouth.png /:X /bz /shut_mouth +sleepy.png /:Z /shui /sleep +weep.png /:'( /dk /weep +embarrassed.png /:-| /gg /embarassed +pissed-off.png /:@ /fn /pissed_off +act-up.png /:P /tp /act_up +smile-big.png /:D /cy /toothy_smile +smile.png /:) /wx /small_smile +sad.png /:( /ng /sad +glasses-cool.png /:+ /kuk /cool +doctor.png /:# /feid /SARS +silly.png /:Q /zk /crazy +sick.png /:T /tu /vomit +snicker.png /;p /tx /titter +cute.png /;-D /ka /cute +disdain.png /;d /by /disdain +arrogant.png /;o /am /arrogant +starving.png /:g /jie /starving +yawn.png /|-) /kun /sleepy +terror.png /:! /jk /terror +sweat.png /:L /sweat +smirk.png /:> /hanx /smirk +soldier.png /:; /db /soldier +struggle.png /;f /fendou /struggle +curse.png /:-S /zhm /curse +question.png /? /yiw /question +quiet.png /;x /xu /shh +hypnotized.png /;@ /yun /dizzy +excruciating.png /:8 /zhem /excrutiating +freaked-out.png /;! /shuai /freaked_out +skeleton.png /!!! /kl /skeleton +hammer.png /xx /qiao /hammer +bye.png /bye /zj /bye +go-away.png /go /shan /go +tremble.png /shake /fad /shake +in-love.png /love /aiq /love +jump.png /jump /tiao /jump +search.png /find /zhao /search +lashes.png /& /mm /beautiful_eyebrows +pig.png /pig /zt /pig +cat.png /cat /mm /cat +dog.png /dog /xg /dog +hug-left.png /hug /yb /hug +coins.png /$ /qianc /money +lamp.png /! /dp /lightbulb +bowl.png /cup /bei /cup +cake.png /cake /dg /cake +thunder.png /li /shd /lightning +bomb.png /bome /zhd /bomb +knife.png /kn /dao /knife +soccerball.png /footb /zq /soccer +musical-note.png /music /yy /music +poop.png /shit /bb /shit +coffee.png /coffee /kf /coffee +eat.png /eat /fan /eat +pill.png /pill /yw /pill +rose.png /rose /mg /rose +wilt.png /fade /dx /wilt +kiss.png /kiss /wen /kiss +love.png /heart /xin /heart +love-over.png /break /xs /broken_heart +meeting.png /meeting /hy /meeting +present.png /gift /lw /gift +phone.png /phone /dh /phone +clock.png /time /sj /time +mail.png /email /yj /email +tv.png /TV /ds /TV +sun.png /sun /ty /sun +moon.png /moon /yl /moon +good.png /strong /qiang /thumbs_up +bad.png /weak /ruo /thumbs_down +handshake.png /share /ws /handshake +victory.png /v /shl /victory +beauty.png / /mn /beauty +qq.png / /qz /qq +blowkiss.png / /fw /blow_kiss +angry.png / /oh /angry +liquor.png / /bj /baijiu +can.png / /qsh /soda +watermelon.png / /xigua /watermelon +rain.png / /xy /rain +cloudy.png /<~> /duoy /cloudy +snowman.png / /xr /snowman +star.png /<*> /xixing /star +girl.png /<00> /nv /woman +boy.png /<11> /nan /man ! skywalker.png C:-) c:-) C:) c:) ! monkey.png :-(|) -### Following ICQ 6.0 +### Following ICQ 5.1 [ICQ] smile.png :-) :) -neutral.png :-$ sad.png :-( :( -shock.png =-O wink.png ;-) ;) -tongue.png :-P :P :-p :p -#[:-} +tongue.png :-P :P laugh.png *JOKINGLY* -sleepy.png *TIRED* crying.png :'( -sick.png :-! #*KISSED* -#*STOP* kiss.png :-* -#*KISSING* embarrassed.png :-[ -devil.png ]:-> angel.png O:-) -rose.png @}->-- -shut-mouth.png :-X :X :-x :x -bomb.png @= +shut-mouth.png :-X :X thinking.png :-\\ :-/ -good.png *THUMBS\ UP* shout.png >:o >:O -beer.png *DRINK* smile-big.png :-D :D moneymouth.png :-$ +shock.png =-O glasses-cool.png 8-) +#[:-} +sleepy.png *TIRED* +sick.png :-! +#*STOP* +#*KISSING* +devil.png ]:-> +rose.png @}->-- +bomb.png @= +good.png *THUMBS\ UP* +beer.png *DRINK* in-love.png *IN\ LOVE* ! skywalker.png C:-) c:-) C:) c:) ! monkey.png :-(|) @@ -314,7 +312,7 @@ love-over.png =(( sweat.png #:-S #:-s rotfl.png =)) -#loser L-) l-) MISSING/YAHOO 6: "Loser!" +loser.png L-) l-) party.png <:-P <:-p nailbiting.png :-SS :-Ss :-sS :-ss cowboy.png <):) @@ -351,8 +349,8 @@ #youkiddingme.png :-j :-J ### These only work in a certain IMvironment -#male-fighter1.png o-> O-> -#male-fighter2.png o=> O=> +male-fighter.png o-> O-> +#malefighter2.png o=> O=> female-fighter.png o-+ O-+ yin-yang.png (%)