changeset 24111:a3ac735ae75b

merge of '021e8f6b481be8a2183a6c94379b98ef008cc534' and 'e1d5be5f19e8b35d0d80e2059ec14559d1192e22'
author Daniel Atallah <daniel.atallah@gmail.com>
date Mon, 15 Sep 2008 03:04:42 +0000
parents fe2d4fc77b05 (current diff) 22745e6a3136 (diff)
children fb8204e956a1
files pidgin/artwork/art-tools/clean-svg-definitions.sh pidgin/artwork/art-tools/render-pidgin-emotes.rb pidgin/artwork/hicolor/16x16/actions/pidgin-change-bgcolor.png pidgin/artwork/hicolor/16x16/actions/pidgin-change-fgcolor.png pidgin/artwork/hicolor/16x16/actions/pidgin-drag-down.png pidgin/artwork/hicolor/16x16/actions/pidgin-drag-left.png pidgin/artwork/hicolor/16x16/actions/pidgin-drag-right.png pidgin/artwork/hicolor/16x16/actions/pidgin-drag-up.png pidgin/artwork/hicolor/16x16/actions/pidgin-emote-select.png pidgin/artwork/hicolor/16x16/actions/pidgin-font-face.png pidgin/artwork/hicolor/16x16/actions/pidgin-font-size-down.png pidgin/artwork/hicolor/16x16/actions/pidgin-font-size-up.png pidgin/artwork/hicolor/16x16/actions/pidgin-get-attention.png pidgin/artwork/hicolor/16x16/actions/pidgin-insert-image.png pidgin/artwork/hicolor/16x16/actions/pidgin-insert-link.png pidgin/artwork/hicolor/16x16/actions/pidgin-insert.png pidgin/artwork/hicolor/16x16/actions/pidgin-message-new.png pidgin/artwork/hicolor/16x16/actions/pidgin-send-file.png pidgin/artwork/hicolor/16x16/actions/pidgin-unblock.png pidgin/artwork/hicolor/16x16/actions/pidgin-view-plugins.png pidgin/artwork/hicolor/16x16/actions/pidgin-view-transfers.png pidgin/artwork/hicolor/16x16/animations/process-working0.png pidgin/artwork/hicolor/16x16/animations/process-working1.png pidgin/artwork/hicolor/16x16/animations/process-working10.png pidgin/artwork/hicolor/16x16/animations/process-working11.png pidgin/artwork/hicolor/16x16/animations/process-working12.png pidgin/artwork/hicolor/16x16/animations/process-working13.png pidgin/artwork/hicolor/16x16/animations/process-working14.png pidgin/artwork/hicolor/16x16/animations/process-working15.png pidgin/artwork/hicolor/16x16/animations/process-working16.png pidgin/artwork/hicolor/16x16/animations/process-working17.png pidgin/artwork/hicolor/16x16/animations/process-working18.png pidgin/artwork/hicolor/16x16/animations/process-working19.png pidgin/artwork/hicolor/16x16/animations/process-working2.png pidgin/artwork/hicolor/16x16/animations/process-working20.png pidgin/artwork/hicolor/16x16/animations/process-working21.png pidgin/artwork/hicolor/16x16/animations/process-working22.png pidgin/artwork/hicolor/16x16/animations/process-working23.png pidgin/artwork/hicolor/16x16/animations/process-working24.png pidgin/artwork/hicolor/16x16/animations/process-working25.png pidgin/artwork/hicolor/16x16/animations/process-working26.png pidgin/artwork/hicolor/16x16/animations/process-working27.png pidgin/artwork/hicolor/16x16/animations/process-working28.png pidgin/artwork/hicolor/16x16/animations/process-working29.png pidgin/artwork/hicolor/16x16/animations/process-working3.png pidgin/artwork/hicolor/16x16/animations/process-working30.png pidgin/artwork/hicolor/16x16/animations/process-working4.png pidgin/artwork/hicolor/16x16/animations/process-working5.png pidgin/artwork/hicolor/16x16/animations/process-working6.png pidgin/artwork/hicolor/16x16/animations/process-working7.png pidgin/artwork/hicolor/16x16/animations/process-working8.png pidgin/artwork/hicolor/16x16/animations/process-working9.png pidgin/artwork/hicolor/16x16/animations/typing0.png pidgin/artwork/hicolor/16x16/animations/typing1.png pidgin/artwork/hicolor/16x16/animations/typing2.png pidgin/artwork/hicolor/16x16/animations/typing3.png pidgin/artwork/hicolor/16x16/animations/typing4.png pidgin/artwork/hicolor/16x16/animations/typing5.png pidgin/artwork/hicolor/16x16/apps/pidgin-aim.png pidgin/artwork/hicolor/16x16/apps/pidgin-bonjour.png pidgin/artwork/hicolor/16x16/apps/pidgin-facebook.png pidgin/artwork/hicolor/16x16/apps/pidgin-gadu-gadu.png pidgin/artwork/hicolor/16x16/apps/pidgin-google-talk.png pidgin/artwork/hicolor/16x16/apps/pidgin-icq.png pidgin/artwork/hicolor/16x16/apps/pidgin-irc.png pidgin/artwork/hicolor/16x16/apps/pidgin-jabber.png pidgin/artwork/hicolor/16x16/apps/pidgin-meanwhile.png pidgin/artwork/hicolor/16x16/apps/pidgin-msn.png pidgin/artwork/hicolor/16x16/apps/pidgin-myspace.png pidgin/artwork/hicolor/16x16/apps/pidgin-novell.png pidgin/artwork/hicolor/16x16/apps/pidgin-qq.png pidgin/artwork/hicolor/16x16/apps/pidgin-silc.png pidgin/artwork/hicolor/16x16/apps/pidgin-simple.png pidgin/artwork/hicolor/16x16/apps/pidgin-yahoo.png pidgin/artwork/hicolor/16x16/apps/pidgin-zephyr.png pidgin/artwork/hicolor/16x16/apps/pidgin.png pidgin/artwork/hicolor/16x16/devices/pidgin-hiptop.png pidgin/artwork/hicolor/16x16/devices/pidgin-mobile.png pidgin/artwork/hicolor/16x16/emblems/pidgin-aol-client.png pidgin/artwork/hicolor/16x16/emblems/pidgin-birthday.png pidgin/artwork/hicolor/16x16/emblems/pidgin-blocked.png pidgin/artwork/hicolor/16x16/emblems/pidgin-bot.png pidgin/artwork/hicolor/16x16/emblems/pidgin-external.png pidgin/artwork/hicolor/16x16/emblems/pidgin-female.png pidgin/artwork/hicolor/16x16/emblems/pidgin-founder.png pidgin/artwork/hicolor/16x16/emblems/pidgin-free-for-chat.png pidgin/artwork/hicolor/16x16/emblems/pidgin-game.png pidgin/artwork/hicolor/16x16/emblems/pidgin-half-operator.png pidgin/artwork/hicolor/16x16/emblems/pidgin-male.png pidgin/artwork/hicolor/16x16/emblems/pidgin-music.png pidgin/artwork/hicolor/16x16/emblems/pidgin-not-authorized.png pidgin/artwork/hicolor/16x16/emblems/pidgin-operator.png pidgin/artwork/hicolor/16x16/emblems/pidgin-qq-member.png pidgin/artwork/hicolor/16x16/emblems/pidgin-secure.png pidgin/artwork/hicolor/16x16/emblems/pidgin-unavailable.png pidgin/artwork/hicolor/16x16/emblems/pidgin-video.png pidgin/artwork/hicolor/16x16/emblems/pidgin-voice.png pidgin/artwork/hicolor/16x16/status/pidgin-available.png pidgin/artwork/hicolor/16x16/status/pidgin-away.png pidgin/artwork/hicolor/16x16/status/pidgin-busy.png pidgin/artwork/hicolor/16x16/status/pidgin-chatroom.png pidgin/artwork/hicolor/16x16/status/pidgin-contact.png pidgin/artwork/hicolor/16x16/status/pidgin-dialog-auth.png pidgin/artwork/hicolor/16x16/status/pidgin-dialog-error.png pidgin/artwork/hicolor/16x16/status/pidgin-dialog-info.png pidgin/artwork/hicolor/16x16/status/pidgin-dialog-mail.png pidgin/artwork/hicolor/16x16/status/pidgin-dialog-question.png pidgin/artwork/hicolor/16x16/status/pidgin-extended-away.png pidgin/artwork/hicolor/16x16/status/pidgin-invisible.png pidgin/artwork/hicolor/16x16/status/pidgin-offline.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-available.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-away.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-busy.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-extended-away.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-invisible.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-message-pending.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-new-im.png pidgin/artwork/hicolor/16x16/status/pidgin-tray-offline.png pidgin/artwork/hicolor/22x22/apps/pidgin.png pidgin/artwork/hicolor/22x22/status/pidgin-available.png pidgin/artwork/hicolor/22x22/status/pidgin-away.png pidgin/artwork/hicolor/22x22/status/pidgin-busy.png pidgin/artwork/hicolor/22x22/status/pidgin-chatroom.png pidgin/artwork/hicolor/22x22/status/pidgin-contact.png pidgin/artwork/hicolor/22x22/status/pidgin-extended-away.png pidgin/artwork/hicolor/22x22/status/pidgin-invisible.png pidgin/artwork/hicolor/22x22/status/pidgin-offline.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-available.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-away.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-busy.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-extended-away.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-invisible.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-message-pending.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-new-im.png pidgin/artwork/hicolor/22x22/status/pidgin-tray-offline.png pidgin/artwork/hicolor/24x24/apps/pidgin-aim.png pidgin/artwork/hicolor/24x24/apps/pidgin-bonjour.png pidgin/artwork/hicolor/24x24/apps/pidgin-facebook.png pidgin/artwork/hicolor/24x24/apps/pidgin-gadu-gadu.png pidgin/artwork/hicolor/24x24/apps/pidgin-google-talk.png pidgin/artwork/hicolor/24x24/apps/pidgin-icq.png pidgin/artwork/hicolor/24x24/apps/pidgin-irc.png pidgin/artwork/hicolor/24x24/apps/pidgin-jabber.png pidgin/artwork/hicolor/24x24/apps/pidgin-meanwhile.png pidgin/artwork/hicolor/24x24/apps/pidgin-msn.png pidgin/artwork/hicolor/24x24/apps/pidgin-myspace.png pidgin/artwork/hicolor/24x24/apps/pidgin-novell.png pidgin/artwork/hicolor/24x24/apps/pidgin-qq.png pidgin/artwork/hicolor/24x24/apps/pidgin-silc.png pidgin/artwork/hicolor/24x24/apps/pidgin-simple.png pidgin/artwork/hicolor/24x24/apps/pidgin-yahoo.png pidgin/artwork/hicolor/24x24/apps/pidgin-zephyr.png pidgin/artwork/hicolor/24x24/apps/pidgin.png pidgin/artwork/hicolor/24x24/emotes/Makefile.am pidgin/artwork/hicolor/24x24/emotes/Makefile.mingw pidgin/artwork/hicolor/24x24/emotes/default.theme.in pidgin/artwork/hicolor/24x24/emotes/none/Makefile.am pidgin/artwork/hicolor/24x24/emotes/none/Makefile.mingw pidgin/artwork/hicolor/24x24/emotes/none/none.theme.in pidgin/artwork/hicolor/24x24/emotes/none/theme pidgin/artwork/hicolor/24x24/emotes/pidgin-act-up.png pidgin/artwork/hicolor/24x24/emotes/pidgin-airplane.png pidgin/artwork/hicolor/24x24/emotes/pidgin-alien.png pidgin/artwork/hicolor/24x24/emotes/pidgin-angel.png pidgin/artwork/hicolor/24x24/emotes/pidgin-angry.png pidgin/artwork/hicolor/24x24/emotes/pidgin-arrogant.png pidgin/artwork/hicolor/24x24/emotes/pidgin-at-wits-end.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bad.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bashful.png pidgin/artwork/hicolor/24x24/emotes/pidgin-beat-up.png pidgin/artwork/hicolor/24x24/emotes/pidgin-beauty.png pidgin/artwork/hicolor/24x24/emotes/pidgin-beer.png pidgin/artwork/hicolor/24x24/emotes/pidgin-blowkiss.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bomb.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bowl.png pidgin/artwork/hicolor/24x24/emotes/pidgin-boy.png pidgin/artwork/hicolor/24x24/emotes/pidgin-brb.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bulgy-eyes.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bunny.png pidgin/artwork/hicolor/24x24/emotes/pidgin-bye.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cake.png pidgin/artwork/hicolor/24x24/emotes/pidgin-call-me.png pidgin/artwork/hicolor/24x24/emotes/pidgin-camera.png pidgin/artwork/hicolor/24x24/emotes/pidgin-can.png pidgin/artwork/hicolor/24x24/emotes/pidgin-car.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cat.png pidgin/artwork/hicolor/24x24/emotes/pidgin-chicken.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cigarette.png pidgin/artwork/hicolor/24x24/emotes/pidgin-clap.png pidgin/artwork/hicolor/24x24/emotes/pidgin-clock.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cloudy.png pidgin/artwork/hicolor/24x24/emotes/pidgin-clover.png pidgin/artwork/hicolor/24x24/emotes/pidgin-clown.png pidgin/artwork/hicolor/24x24/emotes/pidgin-coffee.png pidgin/artwork/hicolor/24x24/emotes/pidgin-coins.png pidgin/artwork/hicolor/24x24/emotes/pidgin-computer.png pidgin/artwork/hicolor/24x24/emotes/pidgin-confused.png pidgin/artwork/hicolor/24x24/emotes/pidgin-console.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cow.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cowboy.png pidgin/artwork/hicolor/24x24/emotes/pidgin-crying.png pidgin/artwork/hicolor/24x24/emotes/pidgin-curl-lip.png pidgin/artwork/hicolor/24x24/emotes/pidgin-curse.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cute.png pidgin/artwork/hicolor/24x24/emotes/pidgin-cyclops.png pidgin/artwork/hicolor/24x24/emotes/pidgin-dance.png pidgin/artwork/hicolor/24x24/emotes/pidgin-dazed.png pidgin/artwork/hicolor/24x24/emotes/pidgin-desire.png pidgin/artwork/hicolor/24x24/emotes/pidgin-devil.png pidgin/artwork/hicolor/24x24/emotes/pidgin-disappointed.png pidgin/artwork/hicolor/24x24/emotes/pidgin-disdain.png pidgin/artwork/hicolor/24x24/emotes/pidgin-doctor.png pidgin/artwork/hicolor/24x24/emotes/pidgin-dog.png pidgin/artwork/hicolor/24x24/emotes/pidgin-doh.png pidgin/artwork/hicolor/24x24/emotes/pidgin-dont-know.png pidgin/artwork/hicolor/24x24/emotes/pidgin-drink.png pidgin/artwork/hicolor/24x24/emotes/pidgin-drool.png pidgin/artwork/hicolor/24x24/emotes/pidgin-eat.png pidgin/artwork/hicolor/24x24/emotes/pidgin-embarrassed.png pidgin/artwork/hicolor/24x24/emotes/pidgin-excruciating.png pidgin/artwork/hicolor/24x24/emotes/pidgin-eyeroll.png pidgin/artwork/hicolor/24x24/emotes/pidgin-female-fighter.png pidgin/artwork/hicolor/24x24/emotes/pidgin-film.png pidgin/artwork/hicolor/24x24/emotes/pidgin-fingers-crossed.png pidgin/artwork/hicolor/24x24/emotes/pidgin-flag.png pidgin/artwork/hicolor/24x24/emotes/pidgin-foot-in-mouth.png pidgin/artwork/hicolor/24x24/emotes/pidgin-freaked-out.png pidgin/artwork/hicolor/24x24/emotes/pidgin-ghost.png pidgin/artwork/hicolor/24x24/emotes/pidgin-giggle.png pidgin/artwork/hicolor/24x24/emotes/pidgin-girl.png pidgin/artwork/hicolor/24x24/emotes/pidgin-glasses-cool.png pidgin/artwork/hicolor/24x24/emotes/pidgin-glasses-nerdy.png pidgin/artwork/hicolor/24x24/emotes/pidgin-go-away.png pidgin/artwork/hicolor/24x24/emotes/pidgin-goat.png pidgin/artwork/hicolor/24x24/emotes/pidgin-good.png pidgin/artwork/hicolor/24x24/emotes/pidgin-hammer.png pidgin/artwork/hicolor/24x24/emotes/pidgin-handcuffs.png pidgin/artwork/hicolor/24x24/emotes/pidgin-handshake.png pidgin/artwork/hicolor/24x24/emotes/pidgin-highfive.png pidgin/artwork/hicolor/24x24/emotes/pidgin-hug-left.png pidgin/artwork/hicolor/24x24/emotes/pidgin-hug-right.png pidgin/artwork/hicolor/24x24/emotes/pidgin-hypnotized.png pidgin/artwork/hicolor/24x24/emotes/pidgin-in-love.png pidgin/artwork/hicolor/24x24/emotes/pidgin-island.png pidgin/artwork/hicolor/24x24/emotes/pidgin-jump.png pidgin/artwork/hicolor/24x24/emotes/pidgin-kiss.png pidgin/artwork/hicolor/24x24/emotes/pidgin-kissed.png pidgin/artwork/hicolor/24x24/emotes/pidgin-kissing.png pidgin/artwork/hicolor/24x24/emotes/pidgin-knife.png pidgin/artwork/hicolor/24x24/emotes/pidgin-lamp.png pidgin/artwork/hicolor/24x24/emotes/pidgin-lashes.png pidgin/artwork/hicolor/24x24/emotes/pidgin-laugh.png pidgin/artwork/hicolor/24x24/emotes/pidgin-liquor.png pidgin/artwork/hicolor/24x24/emotes/pidgin-loser.png pidgin/artwork/hicolor/24x24/emotes/pidgin-love-over.png pidgin/artwork/hicolor/24x24/emotes/pidgin-love.png pidgin/artwork/hicolor/24x24/emotes/pidgin-lying.png pidgin/artwork/hicolor/24x24/emotes/pidgin-mad-tongue.png pidgin/artwork/hicolor/24x24/emotes/pidgin-mail.png pidgin/artwork/hicolor/24x24/emotes/pidgin-male-fighter1.png pidgin/artwork/hicolor/24x24/emotes/pidgin-male-fighter2.png pidgin/artwork/hicolor/24x24/emotes/pidgin-mean.png pidgin/artwork/hicolor/24x24/emotes/pidgin-meeting.png pidgin/artwork/hicolor/24x24/emotes/pidgin-messed.png pidgin/artwork/hicolor/24x24/emotes/pidgin-mobile.png pidgin/artwork/hicolor/24x24/emotes/pidgin-mohawk.png pidgin/artwork/hicolor/24x24/emotes/pidgin-moneymouth.png pidgin/artwork/hicolor/24x24/emotes/pidgin-monkey.png pidgin/artwork/hicolor/24x24/emotes/pidgin-moon.png pidgin/artwork/hicolor/24x24/emotes/pidgin-msn-away.png pidgin/artwork/hicolor/24x24/emotes/pidgin-msn-busy.png pidgin/artwork/hicolor/24x24/emotes/pidgin-msn.png pidgin/artwork/hicolor/24x24/emotes/pidgin-msn_online.png pidgin/artwork/hicolor/24x24/emotes/pidgin-music.png pidgin/artwork/hicolor/24x24/emotes/pidgin-musical-note.png pidgin/artwork/hicolor/24x24/emotes/pidgin-nailbiting.png pidgin/artwork/hicolor/24x24/emotes/pidgin-neutral.png pidgin/artwork/hicolor/24x24/emotes/pidgin-on-the-phone.png pidgin/artwork/hicolor/24x24/emotes/pidgin-party.png pidgin/artwork/hicolor/24x24/emotes/pidgin-peace.png pidgin/artwork/hicolor/24x24/emotes/pidgin-phone.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pig.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pill.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pirate.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pissed-off.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pizza.png pidgin/artwork/hicolor/24x24/emotes/pidgin-plate.png pidgin/artwork/hicolor/24x24/emotes/pidgin-poop.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pray.png pidgin/artwork/hicolor/24x24/emotes/pidgin-present.png pidgin/artwork/hicolor/24x24/emotes/pidgin-pumpkin.png pidgin/artwork/hicolor/24x24/emotes/pidgin-qq.png pidgin/artwork/hicolor/24x24/emotes/pidgin-question.png pidgin/artwork/hicolor/24x24/emotes/pidgin-quiet.png pidgin/artwork/hicolor/24x24/emotes/pidgin-rain.png pidgin/artwork/hicolor/24x24/emotes/pidgin-rainbow.png pidgin/artwork/hicolor/24x24/emotes/pidgin-rose-dead.png pidgin/artwork/hicolor/24x24/emotes/pidgin-rose.png pidgin/artwork/hicolor/24x24/emotes/pidgin-rotfl.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sad.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sarcastic.png pidgin/artwork/hicolor/24x24/emotes/pidgin-search.png pidgin/artwork/hicolor/24x24/emotes/pidgin-secret.png pidgin/artwork/hicolor/24x24/emotes/pidgin-shame.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sheep.png pidgin/artwork/hicolor/24x24/emotes/pidgin-shock.png pidgin/artwork/hicolor/24x24/emotes/pidgin-shout.png pidgin/artwork/hicolor/24x24/emotes/pidgin-shut-mouth.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sick.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sidefrown.png pidgin/artwork/hicolor/24x24/emotes/pidgin-silly.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sinister.png pidgin/artwork/hicolor/24x24/emotes/pidgin-skeleton.png pidgin/artwork/hicolor/24x24/emotes/pidgin-skywalker.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sleepy.png pidgin/artwork/hicolor/24x24/emotes/pidgin-smile-big.png pidgin/artwork/hicolor/24x24/emotes/pidgin-smile.png pidgin/artwork/hicolor/24x24/emotes/pidgin-smirk.png pidgin/artwork/hicolor/24x24/emotes/pidgin-snail.png pidgin/artwork/hicolor/24x24/emotes/pidgin-snicker.png pidgin/artwork/hicolor/24x24/emotes/pidgin-snowman.png pidgin/artwork/hicolor/24x24/emotes/pidgin-soccerball.png pidgin/artwork/hicolor/24x24/emotes/pidgin-soldier.png pidgin/artwork/hicolor/24x24/emotes/pidgin-star.png pidgin/artwork/hicolor/24x24/emotes/pidgin-starving.png pidgin/artwork/hicolor/24x24/emotes/pidgin-stop.png pidgin/artwork/hicolor/24x24/emotes/pidgin-struggle.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sun.png pidgin/artwork/hicolor/24x24/emotes/pidgin-sweat.png pidgin/artwork/hicolor/24x24/emotes/pidgin-talktohand.png pidgin/artwork/hicolor/24x24/emotes/pidgin-teeth.png pidgin/artwork/hicolor/24x24/emotes/pidgin-terror.png pidgin/artwork/hicolor/24x24/emotes/pidgin-thinking.png pidgin/artwork/hicolor/24x24/emotes/pidgin-thunder.png pidgin/artwork/hicolor/24x24/emotes/pidgin-time-out.png pidgin/artwork/hicolor/24x24/emotes/pidgin-tongue.png pidgin/artwork/hicolor/24x24/emotes/pidgin-tremble.png pidgin/artwork/hicolor/24x24/emotes/pidgin-turtle.png pidgin/artwork/hicolor/24x24/emotes/pidgin-tv.png pidgin/artwork/hicolor/24x24/emotes/pidgin-umbrella.png pidgin/artwork/hicolor/24x24/emotes/pidgin-vampire.png pidgin/artwork/hicolor/24x24/emotes/pidgin-victory.png pidgin/artwork/hicolor/24x24/emotes/pidgin-waiting.png pidgin/artwork/hicolor/24x24/emotes/pidgin-watermelon.png pidgin/artwork/hicolor/24x24/emotes/pidgin-waving.png pidgin/artwork/hicolor/24x24/emotes/pidgin-weep.png pidgin/artwork/hicolor/24x24/emotes/pidgin-wilt.png pidgin/artwork/hicolor/24x24/emotes/pidgin-wink.png pidgin/artwork/hicolor/24x24/emotes/pidgin-worship.png pidgin/artwork/hicolor/24x24/emotes/pidgin-yawn.png pidgin/artwork/hicolor/24x24/emotes/pidgin-yin-yang.png pidgin/artwork/hicolor/24x24/emotes/theme pidgin/artwork/hicolor/24x24/status/pidgin-available.png pidgin/artwork/hicolor/24x24/status/pidgin-away.png pidgin/artwork/hicolor/24x24/status/pidgin-busy.png pidgin/artwork/hicolor/24x24/status/pidgin-chatroom.png pidgin/artwork/hicolor/24x24/status/pidgin-contact.png pidgin/artwork/hicolor/24x24/status/pidgin-extended-away.png pidgin/artwork/hicolor/24x24/status/pidgin-invisible.png pidgin/artwork/hicolor/24x24/status/pidgin-offline.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-available.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-away.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-busy.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-extended-away.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-invisible.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-message-pending.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-new-im.png pidgin/artwork/hicolor/24x24/status/pidgin-tray-offline.png pidgin/artwork/hicolor/32x32/actions/pidgin-select-avatar.png pidgin/artwork/hicolor/32x32/apps/pidgin.png pidgin/artwork/hicolor/32x32/status/pidgin-available.png pidgin/artwork/hicolor/32x32/status/pidgin-away.png pidgin/artwork/hicolor/32x32/status/pidgin-busy.png pidgin/artwork/hicolor/32x32/status/pidgin-extended-away.png pidgin/artwork/hicolor/32x32/status/pidgin-invisible.png pidgin/artwork/hicolor/32x32/status/pidgin-offline.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-available.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-away.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-busy.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-extended-away.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-invisible.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-message-pending.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-new-im.png pidgin/artwork/hicolor/32x32/status/pidgin-tray-offline.png pidgin/artwork/hicolor/48x48/apps/pidgin-aim.png pidgin/artwork/hicolor/48x48/apps/pidgin-bonjour.png pidgin/artwork/hicolor/48x48/apps/pidgin-facebook.png pidgin/artwork/hicolor/48x48/apps/pidgin-gadu-gadu.png pidgin/artwork/hicolor/48x48/apps/pidgin-icq.png pidgin/artwork/hicolor/48x48/apps/pidgin-irc.png pidgin/artwork/hicolor/48x48/apps/pidgin-jabber.png pidgin/artwork/hicolor/48x48/apps/pidgin-meanwhile.png pidgin/artwork/hicolor/48x48/apps/pidgin-msn.png pidgin/artwork/hicolor/48x48/apps/pidgin-myspace.png pidgin/artwork/hicolor/48x48/apps/pidgin-novell.png pidgin/artwork/hicolor/48x48/apps/pidgin-qq.png pidgin/artwork/hicolor/48x48/apps/pidgin-silc.png pidgin/artwork/hicolor/48x48/apps/pidgin-simple.png pidgin/artwork/hicolor/48x48/apps/pidgin-yahoo.png pidgin/artwork/hicolor/48x48/apps/pidgin-zephyr.png pidgin/artwork/hicolor/48x48/apps/pidgin.png pidgin/artwork/hicolor/48x48/status/pidgin-available.png pidgin/artwork/hicolor/48x48/status/pidgin-away.png pidgin/artwork/hicolor/48x48/status/pidgin-busy.png pidgin/artwork/hicolor/48x48/status/pidgin-dialog-auth.png pidgin/artwork/hicolor/48x48/status/pidgin-dialog-cool.png pidgin/artwork/hicolor/48x48/status/pidgin-dialog-dialog.png pidgin/artwork/hicolor/48x48/status/pidgin-dialog-error.png pidgin/artwork/hicolor/48x48/status/pidgin-dialog-info.png pidgin/artwork/hicolor/48x48/status/pidgin-dialog-mail.png pidgin/artwork/hicolor/48x48/status/pidgin-extended-away.png pidgin/artwork/hicolor/48x48/status/pidgin-invisible.png pidgin/artwork/hicolor/48x48/status/pidgin-offline.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-available.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-away.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-busy.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-extended-away.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-invisible.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-message-pending.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-new-im.png pidgin/artwork/hicolor/48x48/status/pidgin-tray-offline.png pidgin/artwork/hicolor/48x48/status/question.png pidgin/artwork/hicolor/48x48/status/warning.png pidgin/artwork/hicolor/scalable/apps/pidgin.svg pidgin/artwork/hicolor/scalable/status/pidgin-auth.svg pidgin/artwork/hicolor/scalable/status/pidgin-cool.svg pidgin/artwork/hicolor/scalable/status/pidgin-dialog.svg pidgin/artwork/hicolor/scalable/status/pidgin-error.svg pidgin/artwork/hicolor/scalable/status/pidgin-info.svg pidgin/artwork/hicolor/scalable/status/pidgin-mail.svg pidgin/artwork/hicolor/scalable/status/pidgin-question.svg pidgin/artwork/hicolor/scalable/status/pidgin-warning.svg pidgin/artwork/pixmaps/logo.png pidgin/artwork/pixmaps/pidgin.ico
diffstat 13 files changed, 32 insertions(+), 86 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/qq/ChangeLog	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/ChangeLog	Mon Sep 15 03:04:42 2008 +0000
@@ -1,20 +1,3 @@
-2008.09.05 - ccpaging <ccpaging(at)gmail.com>
-	* Filter chars 0x01-0x20 in nickname
-
-2008.09.05 - ccpaging <ccpaging(at)gmail.com>
-	* Fixed compilation even pidgin-udp-patch not applied
-	* Place and analysis 'before login packet' after login. packages will be updated slowly and server may send lots of 'server command packet', while 'before login packet' is placed after 'finished update'
-
-2008.09.02 - ccpaging <ccpaging(at)gmail.com>
-	* Bugfix: can not send message to the QUN blocked adding
-	* Tickets:
-		Fixes #6957
-
-2008.09.02 - ccpaging <ccpaging(at)gmail.com>
-	* Use new tactics of information update:
-		1. send next package till the previous package received
-		2. fix duplicated get_room_info and get_room_buddies commands
-
 2008.08.16 - ccpaging <ecc_hy(at)hotmail.com>
 	* Rename group to room. If you used pidginqq before, this may create a new room with same title, you may delete old one
 	* Replace purple_debug with purple_debug_info, purple_debug_warning, purple_debug_error
@@ -22,8 +5,6 @@
 	* Minor modify for reducing transaction's debug infor
 	* Minor modifies for system notice and QQ news.
 	* Add 4 new strings need translate compare with p10.
-	* Tickets:
-		Fixes #6990
 
 2008.08.10 - csyfek <csyfek(at)gmail.com>
 	* Commit to Pidgin
--- a/libpurple/protocols/qq/buddy_list.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/buddy_list.c	Mon Sep 15 03:04:42 2008 +0000
@@ -292,7 +292,6 @@
 
 		pascal_len = convert_as_pascal_string(data + bytes, &q_bud->nickname, QQ_CHARSET_DEFAULT);
 		bytes += pascal_len;
-		qq_filter_str(q_bud->nickname);
 
 		bytes += qq_get16(&unknown, data + bytes);
 		bytes += qq_get8(&q_bud->ext_flag, data + bytes);
--- a/libpurple/protocols/qq/char_conv.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/char_conv.c	Mon Sep 15 03:04:42 2008 +0000
@@ -98,7 +98,7 @@
 }
 
 /* convert a string from from_charset to to_charset, using g_convert */
-static gchar *_my_convert(const gchar *str, gssize len, const gchar *to_charset, const gchar *from_charset)
+static gchar *_my_convert(const gchar *str, gssize len, const gchar *to_charset, const gchar *from_charset) 
 {
 	GError *error = NULL;
 	gchar *ret;
@@ -111,7 +111,7 @@
 	if (error == NULL) {
 		return ret;	/* conversion is OK */
 	}
-
+	
 	/* conversion error */
 	purple_debug_error("QQ_CONVERT", "%s\n", error->message);
 
@@ -127,8 +127,8 @@
  * take the input as a pascal string and return a converted c-string in UTF-8
  * returns the number of bytes read, return -1 if fatal error
  * the converted UTF-8 will be saved in ret
- */
-gint convert_as_pascal_string(guint8 *data, gchar **ret, const gchar *from_charset)
+ */ 
+gint convert_as_pascal_string(guint8 *data, gchar **ret, const gchar *from_charset) 
 {
 	guint8 len;
 
@@ -222,7 +222,7 @@
 	return _my_convert(str, -1, UTF8, from_charset);
 }
 
-/* QQ uses binary code for smiley, while purple uses strings.
+/* QQ uses binary code for smiley, while purple uses strings. 
  * There is a mapping relation between these two. */
 gchar *qq_smiley_to_purple(gchar *text)
 {
@@ -286,8 +286,7 @@
 	}
 
 	for (temp = str; *temp != 0; temp++) {
-		/*if (*temp == '\r' || *temp == '\n')  *temp = ' ';*/
-		if (*temp > 0 && *temp < 0x20)  *temp = ' ';
+		if (*temp == '\r' || *temp == '\n')  *temp = ' ';
 	}
 	g_strstrip(str);
 }
--- a/libpurple/protocols/qq/group.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/group.c	Mon Sep 15 03:04:42 2008 +0000
@@ -66,7 +66,7 @@
 	pce->label = _("ID: ");
 	pce->identifier = QQ_ROOM_KEY_EXTERNAL_ID;
 	m = g_list_append(m, pce);
-
+	
 	return m;
 }
 
@@ -120,9 +120,9 @@
 	purple_request_input(gc, _("QQ Qun"),
 			   _("Please enter Qun number"),
 			   _("You can only search for permanent Qun\n"),
-			   NULL, FALSE, FALSE, NULL,
-			   _("Search"), G_CALLBACK(_qq_group_search_callback),
-			   _("Cancel"), G_CALLBACK(_qq_group_search_cancel_callback),
+			   NULL, FALSE, FALSE, NULL, 
+			   _("Search"), G_CALLBACK(_qq_group_search_callback), 
+			   _("Cancel"), G_CALLBACK(_qq_group_search_cancel_callback), 
 			   purple_connection_get_account(gc), NULL, NULL,
 			   gc);
 
@@ -170,7 +170,7 @@
 		chat = (PurpleChat *) node;
 		if (account != chat->account)	/* not qq account*/
 			continue;
-		group = qq_room_create_by_hashtable(gc, chat->components);
+		group = qq_group_from_hashtable(gc, chat->components);
 		if (group == NULL)
 			continue;
 
--- a/libpurple/protocols/qq/group.h	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/group.h	Mon Sep 15 03:04:42 2008 +0000
@@ -55,8 +55,6 @@
 	/* all these will be loaded from the network */
 	gchar *notice_utf8;	/* group notice by admin */
 	GList *members;
-
-	gboolean is_got_info;
 } qq_group;
 
 GList *qq_chat_info(PurpleConnection *gc);
--- a/libpurple/protocols/qq/group_conv.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/group_conv.c	Mon Sep 15 03:04:42 2008 +0000
@@ -44,7 +44,7 @@
 	conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT,
 			group->title_utf8, purple_connection_get_account(gc));
 	if (conv != NULL)	{
-		/* show only one conversation per group */
+		/* show only one window per group */
 		return conv;
 	}
 
@@ -52,10 +52,8 @@
 	conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, group->title_utf8, purple_connection_get_account(gc));
 	if (conv != NULL) {
 		purple_conv_chat_set_topic(PURPLE_CONV_CHAT(conv), NULL, group->notice_utf8);
-		if (group->is_got_info)
-			qq_send_room_cmd_only(gc, QQ_ROOM_CMD_GET_ONLINES, group->id);
-		else
-			qq_update_room(gc, 0, group->id);
+		/* qq_update_room(gc, 0, group->id); */
+		qq_send_room_cmd_only(gc, QQ_ROOM_CMD_GET_ONLINES, group->id);
 		return conv;
 	}
 	return NULL;
--- a/libpurple/protocols/qq/group_internal.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/group_internal.c	Mon Sep 15 03:04:42 2008 +0000
@@ -143,7 +143,7 @@
 }
 
 /* create a qq_group from hashtable */
-qq_group *qq_room_create_by_hashtable(PurpleConnection *gc, GHashTable *data)
+qq_group *qq_group_from_hashtable(PurpleConnection *gc, GHashTable *data)
 {
 	qq_data *qd;
 	qq_group *group;
@@ -168,9 +168,9 @@
 	group->title_utf8 = g_strdup(g_hash_table_lookup(data, QQ_ROOM_KEY_TITLE_UTF8));
 	group->desc_utf8 = g_strdup(g_hash_table_lookup(data, QQ_ROOM_KEY_DESC_UTF8));
 	group->my_role_desc = get_role_desc(group);
-	group->is_got_info = FALSE;
 
 	qd->groups = g_list_append(qd->groups, group);
+
 	return group;
 }
 
@@ -192,7 +192,7 @@
 	if (chat == NULL) {
 		return;
 	}
-
+	
 	/* we have a local record, update its info */
 	/* if there is title_utf8, we update the group name */
 	if (group->title_utf8 != NULL && strlen(group->title_utf8) > 0)
--- a/libpurple/protocols/qq/group_internal.h	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/group_internal.h	Mon Sep 15 03:04:42 2008 +0000
@@ -44,7 +44,7 @@
 void qq_group_delete_internal_record(qq_data *qd, guint32 id);
 
 GHashTable *qq_group_to_hashtable(qq_group *group);
-qq_group *qq_room_create_by_hashtable(PurpleConnection *gc, GHashTable *data);
+qq_group *qq_group_from_hashtable(PurpleConnection *gc, GHashTable *data);
 
 void qq_group_refresh(PurpleConnection *gc, qq_group *group);
 
--- a/libpurple/protocols/qq/qq.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/qq.c	Mon Sep 15 03:04:42 2008 +0000
@@ -157,13 +157,8 @@
 	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->resend_times = purple_prefs_get_int("/plugins/prpl/qq/resend_times");
-	if (qd->resend_times <= 1) qd->itv_config.resend = 4;
-
-	qd->itv_config.resend = purple_prefs_get_int("/plugins/prpl/qq/resend_interval");
-	if (qd->itv_config.resend <= 0) qd->itv_config.resend = 3;
-	purple_debug_info("QQ", "Resend interval %d, retries %d\n",
-			qd->itv_config.resend, qd->resend_times);
+	qd->itv_config.resend = purple_account_get_int(account, "resend_interval", 10);
+	if (qd->itv_config.resend <= 0) qd->itv_config.resend = 10;
 
 	qd->itv_config.keep_alive = purple_account_get_int(account, "keep_alive_interval", 60);
 	if (qd->itv_config.keep_alive < 30) qd->itv_config.keep_alive = 30;
@@ -523,7 +518,7 @@
 */
 
 /* show a brief summary of what we get from login packet */
-static void _qq_menu_account_info(PurplePluginAction *action)
+static void _qq_menu_show_login_info(PurplePluginAction *action)
 {
 	PurpleConnection *gc = (PurpleConnection *) action->context;
 	qq_data *qd;
@@ -539,15 +534,7 @@
 
 	g_string_append_printf(info, _("<b>Server</b>: %s<br>\n"), qd->curr_server);
 	g_string_append_printf(info, _("<b>Connection Mode</b>: %s<br>\n"), qd->use_tcp ? "TCP" : "UDP");
-	g_string_append_printf(info, _("<b>My Internet Address</b>: %s<br>\n"), inet_ntoa(qd->my_ip));
-
-	g_string_append(info, "<hr>\n");
-	g_string_append(info, "<i>Network Status</i><br>\n");
-	g_string_append_printf(info, _("<b>Sent</b>: %lu<br>\n"), qd->net_stat.sent);
-	g_string_append_printf(info, _("<b>Resend</b>: %lu<br>\n"), qd->net_stat.resend);
-	g_string_append_printf(info, _("<b>Lost</b>: %lu<br>\n"), qd->net_stat.lost);
-	g_string_append_printf(info, _("<b>Received</b>: %lu<br>\n"), qd->net_stat.rcved);
-	g_string_append_printf(info, _("<b>Received Duplicate</b>: %lu<br>\n"), qd->net_stat.rcved_dup);
+	g_string_append_printf(info, _("<b>My Public IP</b>: %s<br>\n"), inet_ntoa(qd->my_ip));
 
 	g_string_append(info, "<hr>\n");
 	g_string_append(info, "<i>Information below may not be accurate</i><br>\n");
@@ -640,7 +627,7 @@
 	act = purple_plugin_action_new(_("Change Password"), _qq_menu_change_password);
 	m = g_list_append(m, act);
 
-	act = purple_plugin_action_new(_("Account Information"), _qq_menu_account_info);
+	act = purple_plugin_action_new(_("Show Login Information"), _qq_menu_show_login_info);
 	m = g_list_append(m, act);
 
 	/*
@@ -867,6 +854,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_int_new(_("Resend interval(s)"), "resend_interval", 10);
+	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
+
 	option = purple_account_option_int_new(_("Keep alive interval(s)"), "keep_alive_interval", 60);
 	prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option);
 
@@ -877,8 +867,7 @@
 	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/show_room_when_newin", TRUE);
-	purple_prefs_add_int("/plugins/prpl/qq/resend_interval", 3);
-	purple_prefs_add_int("/plugins/prpl/qq/resend_times", 4);
+
 }
 
 PURPLE_INIT_PLUGIN(qq, init_plugin, info);
--- a/libpurple/protocols/qq/qq.h	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/qq.h	Mon Sep 15 03:04:42 2008 +0000
@@ -44,7 +44,6 @@
 typedef struct _qq_data qq_data;
 typedef struct _qq_buddy qq_buddy;
 typedef struct _qq_interval qq_interval;
-typedef struct _qq_net_stat qq_net_stat;
 
 struct _qq_interval {
 	gint resend;
@@ -52,14 +51,6 @@
 	gint update;
 };
 
-struct _qq_net_stat {
-	glong sent;
-	glong resend;
-	glong lost;
-	glong rcved;
-	glong rcved_dup;
-};
-
 struct _qq_buddy {
 	guint32 uid;
 	guint16 face;		/* index: 0 - 299 */
@@ -105,7 +96,6 @@
 	gint udp_can_write_handler; 	/* socket can_write handle, use in udp connecting and tcp send out */
 #endif
 	gint fd;							/* socket file handler */
-	qq_net_stat net_stat;
 
 	GList *servers;
 	gchar *curr_server;		/* point to servers->data, do not free*/
@@ -119,7 +109,6 @@
 	qq_interval itv_config;
 	qq_interval itv_count;
 	guint network_watcher;
-	gint resend_times;
 
 	GList *transactions;	/* check ack packet and resend */
 
--- a/libpurple/protocols/qq/qq_network.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/qq_network.c	Mon Sep 15 03:04:42 2008 +0000
@@ -249,9 +249,6 @@
 
 	qd = (qq_data *) gc->proto_data;
 
-	qd->net_stat.rcved++;
-	if (qd->net_stat.rcved <= 0)	memset(&(qd->net_stat), 0, sizeof(qd->net_stat));
-
 	/* Len, header and tail tag have been checked before */
 	bytes = 0;
 	bytes += packet_get_header(&header_tag, &source_tag, &cmd, &seq, buf + bytes);
@@ -278,7 +275,6 @@
 	}
 
 	if (qq_trans_is_dup(trans)) {
-		qd->net_stat.rcved_dup++;
 		purple_debug_info("QQ", "dup [%05d] %s, discard...\n", seq, qq_get_cmd_desc(cmd));
 		return TRUE;
 	}
@@ -1050,7 +1046,6 @@
 		return -1;
 	}
 
-	qd->net_stat.sent++;
 	if (qd->use_tcp) {
 		bytes_sent = tcp_send_out(gc, buf, buf_len);
 	} else {
--- a/libpurple/protocols/qq/qq_process.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/qq_process.c	Mon Sep 15 03:04:42 2008 +0000
@@ -438,10 +438,8 @@
 		break;
 	case QQ_ROOM_CMD_GET_BUDDIES:
 		qq_process_room_cmd_get_buddies(data + bytes, data_len - bytes, gc);
-		if (group != NULL) {
-			group->is_got_info = TRUE;
+		if (group != NULL)
 			qq_group_conv_refresh_online_member(gc, group);
-		}
 		break;
 	default:
 		purple_debug_warning("QQ", "Unknow room cmd 0x%02X %s\n",
--- a/libpurple/protocols/qq/qq_trans.c	Sat Sep 13 23:31:33 2008 +0000
+++ b/libpurple/protocols/qq/qq_trans.c	Mon Sep 15 03:04:42 2008 +0000
@@ -35,6 +35,8 @@
 #include "qq_process.h"
 #include "qq_trans.h"
 
+#define QQ_RESEND_MAX               4	/* max resend per packet */
+
 enum {
 	QQ_TRANS_IS_SERVER = 0x01,			/* Is server command or client command */
 	QQ_TRANS_IS_IMPORT = 0x02,			/* Only notice if not get reply; or resend, disconn if reties get 0*/
@@ -186,7 +188,7 @@
 	if (cmd == QQ_CMD_TOKEN || cmd == QQ_CMD_LOGIN || cmd == QQ_CMD_KEEP_ALIVE) {
 		trans->flag |= QQ_TRANS_IS_IMPORT;
 	}
-	trans->send_retries = qd->resend_times;
+	trans->send_retries = QQ_RESEND_MAX;
 #if 0
 	purple_debug_info("QQ_TRANS", "Add client cmd, seq %d, data %p, len %d\n",
 			trans->seq, trans->data, trans->data_len);
@@ -226,7 +228,7 @@
 
 	trans->room_cmd = room_cmd;
 	trans->room_id = room_id;
-	trans->send_retries = qd->resend_times;
+	trans->send_retries = QQ_RESEND_MAX;
 #if 0
 	purple_debug_info("QQ_TRANS", "Add room cmd, seq %d, data %p, len %d\n",
 			trans->seq, trans->data, trans->data_len);
@@ -371,7 +373,6 @@
 				return TRUE;
 			}
 
-			qd->net_stat.lost++;
 			purple_debug_error("QQ_TRANS",
 				"Lost [%d] %s, data %p, len %d, retries %d\n",
 				trans->seq, qq_get_cmd_desc(trans->cmd),
@@ -380,7 +381,6 @@
 			continue;
 		}
 
-		qd->net_stat.resend++;
 		purple_debug_warning("QQ_TRANS",
 				"Resend [%d] %s data %p, len %d, send_retries %d\n",
 				trans->seq, qq_get_cmd_desc(trans->cmd),