You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(106) |
Oct
(334) |
Nov
(246) |
Dec
(145) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(53) |
Mar
(232) |
Apr
(109) |
May
(137) |
Jun
(63) |
Jul
(26) |
Aug
(263) |
Sep
(193) |
Oct
(507) |
Nov
(440) |
Dec
(241) |
2003 |
Jan
(567) |
Feb
(195) |
Mar
(504) |
Apr
(481) |
May
(524) |
Jun
(522) |
Jul
(594) |
Aug
(502) |
Sep
(643) |
Oct
(508) |
Nov
(430) |
Dec
(377) |
2004 |
Jan
(361) |
Feb
(251) |
Mar
(219) |
Apr
(499) |
May
(461) |
Jun
(419) |
Jul
(314) |
Aug
(519) |
Sep
(416) |
Oct
(247) |
Nov
(305) |
Dec
(382) |
2005 |
Jan
(267) |
Feb
(282) |
Mar
(327) |
Apr
(338) |
May
(189) |
Jun
(400) |
Jul
(462) |
Aug
(530) |
Sep
(316) |
Oct
(523) |
Nov
(481) |
Dec
(650) |
2006 |
Jan
(536) |
Feb
(361) |
Mar
(287) |
Apr
(146) |
May
(101) |
Jun
(169) |
Jul
(221) |
Aug
(498) |
Sep
(300) |
Oct
(236) |
Nov
(209) |
Dec
(205) |
2007 |
Jan
(30) |
Feb
(23) |
Mar
(26) |
Apr
(15) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ma...@us...> - 2006-08-22 05:30:36
|
Revision: 16971 Author: marv_sf Date: 2006-08-21 22:30:30 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16971&view=rev Log Message: ----------- Add an encoding option. Let's you specify something other than iso-8859-1 for the nonUTF-8 pieces of the protocol. Modified Paths: -------------- trunk/libgaim/protocols/yahoo/util.c trunk/libgaim/protocols/yahoo/yahoo.c Modified: trunk/libgaim/protocols/yahoo/util.c =================================================================== --- trunk/libgaim/protocols/yahoo/util.c 2006-08-22 04:46:42 UTC (rev 16970) +++ trunk/libgaim/protocols/yahoo/util.c 2006-08-22 05:30:30 UTC (rev 16971) @@ -59,7 +59,7 @@ if (yd->jp) to_codeset = "SHIFT_JIS"; else - to_codeset = "ISO-8859-1"; + to_codeset = gaim_account_get_string(gaim_connection_get_account(gc), "local_charset", "ISO-8859-1"); ret = g_convert_with_fallback(str, strlen(str), to_codeset, "UTF-8", "?", NULL, NULL, NULL); if (ret) @@ -80,7 +80,7 @@ { struct yahoo_data *yd = gc->proto_data; char *ret; - char *from_codeset; + const char *from_codeset; if (utf8) { if (g_utf8_validate(str, -1, NULL)) @@ -90,7 +90,7 @@ if (yd->jp) from_codeset = "SHIFT_JIS"; else - from_codeset = "ISO-8859-1"; + from_codeset = gaim_account_get_string(gaim_connection_get_account(gc), "local_charset", "ISO-8859-1"); ret = g_convert_with_fallback(str, strlen(str), "UTF-8", from_codeset, NULL, NULL, NULL, NULL); Modified: trunk/libgaim/protocols/yahoo/yahoo.c =================================================================== --- trunk/libgaim/protocols/yahoo/yahoo.c 2006-08-22 04:46:42 UTC (rev 16970) +++ trunk/libgaim/protocols/yahoo/yahoo.c 2006-08-22 05:30:30 UTC (rev 16971) @@ -3884,6 +3884,10 @@ option = gaim_account_option_bool_new(_("Ignore conference and chatroom invitations"), "ignore_invites", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = gaim_account_option_string_new(_("Encoding"), "local_charset", "ISO-8859-1"); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + #if 0 option = gaim_account_option_string_new(_("Chat room list URL"), "room_list", YAHOO_ROOMLIST_URL); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2006-08-22 04:46:49
|
Revision: 16970 Author: marv_sf Date: 2006-08-21 21:46:42 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16970&view=rev Log Message: ----------- I managed to do it wrong. Turns out I hadn't signed up for the beta, and was trying to send messages to the LCS version of my hotmail email address. What is LCS anyway? So now I think we properly support sending messages to LCS and windows live, assuming you manage to add those buddies in another client. I don't know what to do about duplicate screen names, or actually adding them. Modified Paths: -------------- trunk/libgaim/protocols/yahoo/yahoo.c trunk/libgaim/protocols/yahoo/yahoo_friend.h Modified: trunk/libgaim/protocols/yahoo/yahoo.c =================================================================== --- trunk/libgaim/protocols/yahoo/yahoo.c 2006-08-22 03:01:52 UTC (rev 16969) +++ trunk/libgaim/protocols/yahoo/yahoo.c 2006-08-22 04:46:42 UTC (rev 16970) @@ -513,9 +513,9 @@ yahoo_do_group_check(account, ht, norm_bud, grp); break; - case 241: /* msn user */ - if (f && *pair->value == '1') - f->msn = TRUE; + case 241: /* another protocol user */ + if (f) + f->protocol = strtol(pair->value, NULL, 10); break; /* case 242: */ /* this seems related to 241 */ /* break; */ @@ -3190,8 +3190,8 @@ msg2 = yahoo_string_encode(gc, msg, &utf8); yahoo_packet_hash(pkt, "ss", 1, gaim_connection_get_display_name(gc), 5, who); - if ((f = yahoo_friend_find(gc, who)) && f->msn) - yahoo_packet_hash_str(pkt, 241, "1"); + if ((f = yahoo_friend_find(gc, who)) && f->protocol) + yahoo_packet_hash_int(pkt, 241, f->protocol); if (utf8) yahoo_packet_hash_str(pkt, 97, "1"); Modified: trunk/libgaim/protocols/yahoo/yahoo_friend.h =================================================================== --- trunk/libgaim/protocols/yahoo/yahoo_friend.h 2006-08-22 03:01:52 UTC (rev 16969) +++ trunk/libgaim/protocols/yahoo/yahoo_friend.h 2006-08-22 04:46:42 UTC (rev 16970) @@ -47,7 +47,7 @@ char *ip; gboolean bicon_sent_request; YahooPresenceVisibility presence; - gboolean msn; + int protocol; /* 1=LCS, 2=MSN*/ } YahooFriend; YahooFriend *yahoo_friend_find(GaimConnection *gc, const char *name); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-22 03:01:58
|
Revision: 16969 Author: sadrul Date: 2006-08-21 20:01:52 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16969&view=rev Log Message: ----------- I made this change because Evan was getting a crash because of this. But as a side effect, it fixes the scrambleness!! This is pretty sweet! Modified Paths: -------------- trunk/console/libgnt/gntmain.c Modified: trunk/console/libgnt/gntmain.c =================================================================== --- trunk/console/libgnt/gntmain.c 2006-08-22 02:55:14 UTC (rev 16968) +++ trunk/console/libgnt/gntmain.c 2006-08-22 03:01:52 UTC (rev 16969) @@ -758,7 +758,9 @@ g_io_channel_set_encoding(channel, NULL, NULL); g_io_channel_set_buffered(channel, FALSE); +#if 0 g_io_channel_set_flags(channel, G_IO_FLAG_NONBLOCK, NULL ); +#endif result = g_io_add_watch_full(channel, G_PRIORITY_HIGH, (G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI | G_IO_NVAL), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-22 02:55:23
|
Revision: 16968 Author: mayuan2006 Date: 2006-08-21 19:55:14 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16968&view=rev Log Message: ----------- fix the foolish code of processing the "USR TWN S"'s fs string add some comment committed by Ma Yuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/nexus.c Modified: branches/soc-2006-msnp13/src/protocols/msn/nexus.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/nexus.c 2006-08-22 01:55:56 UTC (rev 16967) +++ branches/soc-2006-msnp13/src/protocols/msn/nexus.c 2006-08-22 02:55:14 UTC (rev 16968) @@ -163,7 +163,8 @@ MsnSoapConn *soapconn; MsnNexus * nexus; MsnSession *session; - char *ru,*lc,*id,*tw,*ct,*kpp,*kv,*ver,*rn,*tpf,*fs; + char *ru,*lc,*id,*tw,*ct,*kpp,*kv,*ver,*rn,*tpf; + char *fs0,*fs; char *username, *password; char *request_str, *head, *tail,*challenge_str; @@ -187,15 +188,20 @@ lc = (char *)g_hash_table_lookup(nexus->challenge_data, "lc"); id = (char *)g_hash_table_lookup(nexus->challenge_data, "id"); tw = (char *)g_hash_table_lookup(nexus->challenge_data, "tw"); - fs = (char *)g_hash_table_lookup(nexus->challenge_data, "fs"); + fs0= (char *)g_hash_table_lookup(nexus->challenge_data, "fs"); ru = (char *)g_hash_table_lookup(nexus->challenge_data, "ru"); ct = (char *)g_hash_table_lookup(nexus->challenge_data, "ct"); kpp= (char *)g_hash_table_lookup(nexus->challenge_data, "kpp"); kv = (char *)g_hash_table_lookup(nexus->challenge_data, "kv"); - ver= (char *)g_hash_table_lookup(nexus->challenge_data, "ver"); - rn = (char *)g_hash_table_lookup(nexus->challenge_data, "rn"); + ver= (char *)g_hash_table_lookup(nexus->challenge_data, "ver"); + rn = (char *)g_hash_table_lookup(nexus->challenge_data, "rn"); tpf= (char *)g_hash_table_lookup(nexus->challenge_data, "tpf"); + /* + * add some fail-safe code to avoid windows Gaim Crash bug #1540454 + * If any of these string is NULL, will return Authentication Fail! + * for when windows g_strdup_printf() implementation get NULL point,It crashed! + */ if(!(lc && id && tw && ru && ct && kpp && kv && ver && tpf)){ gaim_debug_error("MaYuan","WLM Authenticate Key Error!\n"); msn_session_set_error(session, MSN_ERROR_AUTH, _("Windows Live ID authentication Failed")); @@ -207,16 +213,20 @@ return; } - if(!fs){ - fs =g_strdup("1"); + /* + * in old MSN NS server's "USR TWN S" return,didn't include fs string + * so we use a default "1" for fs. + */ + if(fs0){ + fs = g_strdup(fs0); + }else{ + fs = g_strdup("1"); } challenge_str = g_strdup_printf( "lc=%s&id=%s&tw=%s&fs=%s&ru=%s&ct=%s&kpp=%s&kv=%s&ver=%s&rn=%s&tpf=%s\r\n", lc,id,tw,fs,ru,ct,kpp,kv,ver,rn,tpf ); - if(!fs){ - g_free(fs); - } + g_free(fs); /*build the SOAP windows Live ID XML body */ tail = g_strdup_printf(TWN_ENVELOP_TEMPLATE,username,password,challenge_str ); @@ -230,7 +240,7 @@ "Content-Length: %d\r\n" "Connection: Keep-Alive\r\n" "Cache-Control: no-cache\r\n\r\n", - soapconn->login_path,soapconn->login_host,strlen(tail)); + soapconn->login_path,soapconn->login_host,(int)strlen(tail)); request_str = g_strdup_printf("%s%s", head,tail); // gaim_debug_misc("msn", "TWN Sending: {%s}\n", request_str); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-22 01:56:07
|
Revision: 16967 Author: thekingant Date: 2006-08-21 18:55:56 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16967&view=rev Log Message: ----------- Add a comment about something I noticed Modified Paths: -------------- trunk/libgaim/protocols/oscar/oscar.c Modified: trunk/libgaim/protocols/oscar/oscar.c =================================================================== --- trunk/libgaim/protocols/oscar/oscar.c 2006-08-21 22:58:26 UTC (rev 16966) +++ trunk/libgaim/protocols/oscar/oscar.c 2006-08-22 01:55:56 UTC (rev 16967) @@ -4135,6 +4135,13 @@ bi->ico_sent = FALSE; } + /* + * TODO: + * For some reason sending our icon to people only works + * when we're the ones who initiated the conversation. If + * the other person sends the first IM then they never get + * the icon. We should fix that. + */ if (!bi->ico_informed) { gaim_debug_info("oscar", "Claiming to have a buddy icon\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:58:31
|
Revision: 16966 Author: thekingant Date: 2006-08-21 15:58:26 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16966&view=rev Log Message: ----------- If servconn is destroyed while it's in the process of being established, make sure the new fd is closed. Also, "0" is a valid file descriptor. It is pretty much ALWAYS set to either stdin, stdout or stderr, and then new file descriptors increment from there, but I don't think there's actually a standard that says that 0 must be one of those three. Modified Paths: -------------- trunk/libgaim/protocols/msn/servconn.c Modified: trunk/libgaim/protocols/msn/servconn.c =================================================================== --- trunk/libgaim/protocols/msn/servconn.c 2006-08-21 22:56:08 UTC (rev 16965) +++ trunk/libgaim/protocols/msn/servconn.c 2006-08-21 22:58:26 UTC (rev 16966) @@ -176,13 +176,15 @@ if (servconn->wasted) { + if (source >= 0) + close(source); msn_servconn_destroy(servconn); return; } servconn->fd = source; - if (source > 0) + if (source >= 0) { servconn->connected = TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:56:17
|
Revision: 16965 Author: thekingant Date: 2006-08-21 15:56:08 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16965&view=rev Log Message: ----------- Change the placeholder variable from x to String to match the other #defines. This is purely a cosmetic change Modified Paths: -------------- trunk/libgaim/internal.h Modified: trunk/libgaim/internal.h =================================================================== --- trunk/libgaim/internal.h 2006-08-21 22:55:08 UTC (rev 16964) +++ trunk/libgaim/internal.h 2006-08-21 22:56:08 UTC (rev 16965) @@ -43,7 +43,7 @@ #ifdef ENABLE_NLS # include <locale.h> # include <libintl.h> -# define _(x) ((const char *)gettext(x)) +# define _(String) ((const char *)gettext(String)) # ifdef gettext_noop # define N_(String) gettext_noop (String) # else @@ -53,7 +53,7 @@ # include <locale.h> # define N_(String) (String) # ifndef _ -# define _(x) ((const char *)x) +# define _(String) ((const char *)String) # endif # define ngettext(Singular, Plural, Number) ((Number == 1) ? ((const char *)Singular) : ((const char *)Plural)) #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:55:23
|
Revision: 16964 Author: thekingant Date: 2006-08-21 15:55:08 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16964&view=rev Log Message: ----------- Minor comment change Modified Paths: -------------- trunk/libgaim/connection.h Modified: trunk/libgaim/connection.h =================================================================== --- trunk/libgaim/connection.h 2006-08-21 22:50:58 UTC (rev 16963) +++ trunk/libgaim/connection.h 2006-08-21 22:55:08 UTC (rev 16964) @@ -85,7 +85,7 @@ GSList *buddy_chats; /**< A list of active chats. */ void *proto_data; /**< Protocol-specific data. */ - char *display_name; /**< The name displayed. */ + char *display_name; /**< How you appear to other people. */ guint keepalive; /**< Keep-alive. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:51:06
|
Revision: 16963 Author: thekingant Date: 2006-08-21 15:50:58 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16963&view=rev Log Message: ----------- Fix a crazy bug that we found at meebo. I'm not sure it affects gtk Gaim in quite the same way, but what was happeing is that the conversation sequence number should be incremented by 1 each time a new conversation is created (whether created by someone else or created by you). However, in one place in Gaim conv_seq was being incremented BEFORE it was used and in another it was being incremented AFTER it was used. This can lead to a sequence number being used twice. Modified Paths: -------------- trunk/libgaim/protocols/msn/switchboard.c Modified: trunk/libgaim/protocols/msn/switchboard.c =================================================================== --- trunk/libgaim/protocols/msn/switchboard.c 2006-08-21 22:48:19 UTC (rev 16962) +++ trunk/libgaim/protocols/msn/switchboard.c 2006-08-21 22:50:58 UTC (rev 16963) @@ -252,8 +252,7 @@ gaim_conversation_destroy(swboard->conv); #endif - cmdproc->session->conv_seq++; - swboard->chat_id = cmdproc->session->conv_seq; + swboard->chat_id = cmdproc->session->conv_seq++; swboard->flag |= MSN_SB_FLAG_IM; swboard->conv = serv_got_joined_chat(account->gc, swboard->chat_id, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:48:23
|
Revision: 16962 Author: thekingant Date: 2006-08-21 15:48:19 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16962&view=rev Log Message: ----------- Fix that last commit Modified Paths: -------------- trunk/libgaim/protocols/jabber/roster.c Modified: trunk/libgaim/protocols/jabber/roster.c =================================================================== --- trunk/libgaim/protocols/jabber/roster.c 2006-08-21 22:44:46 UTC (rev 16961) +++ trunk/libgaim/protocols/jabber/roster.c 2006-08-21 22:48:19 UTC (rev 16962) @@ -323,9 +323,8 @@ void jabber_roster_alias_change(GaimConnection *gc, const char *name, const char *alias) { GaimBuddy *b = gaim_find_buddy(gc->account, name); - char *a; - gaim_blist_alias_buddy(b, a); + gaim_blist_alias_buddy(b, alias); jabber_roster_update(gc->proto_data, name, NULL); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:44:52
|
Revision: 16961 Author: thekingant Date: 2006-08-21 15:44:46 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16961&view=rev Log Message: ----------- Remove an unnecessary strdup Modified Paths: -------------- trunk/libgaim/protocols/jabber/roster.c Modified: trunk/libgaim/protocols/jabber/roster.c =================================================================== --- trunk/libgaim/protocols/jabber/roster.c 2006-08-21 22:43:54 UTC (rev 16960) +++ trunk/libgaim/protocols/jabber/roster.c 2006-08-21 22:44:46 UTC (rev 16961) @@ -325,9 +325,7 @@ GaimBuddy *b = gaim_find_buddy(gc->account, name); char *a; - a = g_strdup(alias); gaim_blist_alias_buddy(b, a); - g_free(a); jabber_roster_update(gc->proto_data, name, NULL); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 22:43:59
|
Revision: 16960 Author: thekingant Date: 2006-08-21 15:43:54 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16960&view=rev Log Message: ----------- Minor comment change Modified Paths: -------------- trunk/libgaim/account.h Modified: trunk/libgaim/account.h =================================================================== --- trunk/libgaim/account.h 2006-08-21 22:08:19 UTC (rev 16959) +++ trunk/libgaim/account.h 2006-08-21 22:43:54 UTC (rev 16960) @@ -56,7 +56,7 @@ struct _GaimAccount { char *username; /**< The username. */ - char *alias; /**< The current alias. */ + char *alias; /**< How you appear to yourself. */ char *password; /**< The account password. */ char *user_info; /**< User information. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-21 22:08:26
|
Revision: 16959 Author: sadrul Date: 2006-08-21 15:08:19 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16959&view=rev Log Message: ----------- Fix a bug where `gntgaim -v` does bad things to the terminal. Bug reported by Mark Schneider. Modified Paths: -------------- trunk/console/gntdebug.c trunk/console/gntgaim.c Modified: trunk/console/gntdebug.c =================================================================== --- trunk/console/gntdebug.c 2006-08-21 21:35:38 UTC (rev 16958) +++ trunk/console/gntdebug.c 2006-08-21 22:08:19 UTC (rev 16959) @@ -106,11 +106,18 @@ gnt_widget_show(debug.window); } +static gboolean +start_with_debugwin(gpointer null) +{ + gg_debug_window_show(); + return FALSE; +} + void gg_debug_init() { g_set_print_handler(print_stderr); /* Redirect the debug messages to stderr */ if (gaim_debug_is_enabled()) - gg_debug_window_show(); + g_timeout_add(0, start_with_debugwin, NULL); } void gg_debug_uninit() Modified: trunk/console/gntgaim.c =================================================================== --- trunk/console/gntgaim.c 2006-08-21 21:35:38 UTC (rev 16958) +++ trunk/console/gntgaim.c 2006-08-21 22:08:19 UTC (rev 16959) @@ -153,7 +153,6 @@ " -v, --version display the current version and exit\n"), VERSION, name); } - gnt_quit(); gaim_print_utf8_to_console(stdout, text); g_free(text); } @@ -305,8 +304,6 @@ /* XXX: Don't puke */ freopen(".error", "w", stderr); - gnt_init(); - /* Initialize the libgaim stuff */ if (!init_libgaim(argc, argv)) return 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-08-21 21:35:43
|
Revision: 16958 Author: sadrul Date: 2006-08-21 14:35:38 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16958&view=rev Log Message: ----------- Patch from Mark Schneider (queueRAM): this automatically updates the widgets when the terminal is resized. Pressing alt+l does a better job at refreshing the screen if things get scrambled. But it's not perfect yet. I warmenhoved the patch. I have been waiting to say that =) Modified Paths: -------------- trunk/COPYRIGHT trunk/console/libgnt/gntmain.c Modified: trunk/COPYRIGHT =================================================================== --- trunk/COPYRIGHT 2006-08-21 20:58:20 UTC (rev 16957) +++ trunk/COPYRIGHT 2006-08-21 21:35:38 UTC (rev 16958) @@ -1,5 +1,5 @@ Gaim -Copyright (C) 1998-2005 by the following: +Copyright (C) 1998-2006 by the following: If you have contributed to Gaim, you deserve to be on this list. Contact us (see: AUTHORS) and we'll add you. @@ -250,6 +250,7 @@ Luke Schierer Ralph Schmieder David Schmitt +Mark Schneider Evan Schoenberg Federico Schwindt Torrey Searle Modified: trunk/console/libgnt/gntmain.c =================================================================== --- trunk/console/libgnt/gntmain.c 2006-08-21 20:58:20 UTC (rev 16957) +++ trunk/console/libgnt/gntmain.c 2006-08-21 21:35:38 UTC (rev 16958) @@ -11,6 +11,7 @@ #include <stdlib.h> #include <locale.h> #include <unistd.h> +#include <signal.h> #include <string.h> #include <ctype.h> @@ -60,6 +61,8 @@ static void draw_taskbar(gboolean reposition); static void bring_on_top(GntWidget *widget); +static gboolean refresh_screen(); + static gboolean update_screen(gpointer null) { @@ -572,17 +575,7 @@ } else if (strcmp(buffer + 1, "l") == 0) { - update_screen(NULL); - werase(stdscr); - wrefresh(stdscr); - - X_MAX = getmaxx(stdscr); - Y_MAX = getmaxy(stdscr) - 1; - - g_hash_table_foreach(nodes, (GHFunc)refresh_node, NULL); - - update_screen(NULL); - draw_taskbar(TRUE); + refresh_screen(); } else if (strlen(buffer) == 2 && isdigit(*(buffer + 1))) { @@ -716,11 +709,41 @@ } } + return TRUE; +} + +static gboolean +refresh_screen() +{ + endwin(); refresh(); - return TRUE; + X_MAX = getmaxx(stdscr); + Y_MAX = getmaxy(stdscr) - 1; + + g_hash_table_foreach(nodes, (GHFunc)refresh_node, NULL); + update_screen(NULL); + draw_taskbar(TRUE); + + return FALSE; } +#ifdef SIGWINCH +static void +sighandler(int sig) +{ + if (sig == SIGWINCH) + { + werase(stdscr); + wrefresh(stdscr); + + g_idle_add(refresh_screen, NULL); + } + + signal(SIGWINCH, sighandler); +} +#endif + void gnt_init() { static GIOChannel *channel = NULL; @@ -780,6 +803,10 @@ werase(stdscr); wrefresh(stdscr); +#ifdef SIGWINCH + signal(SIGWINCH, sighandler); +#endif + g_type_init(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-08-21 20:58:37
|
Revision: 16957 Author: datallah Date: 2006-08-21 13:58:20 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16957&view=rev Log Message: ----------- -Updated the win32dep debug function to correctly match the core function (the core was apparently changed a while ago and this was never updated). -Updated wgaim_read_reg_string() to deal with non-ascii strings correctly, created corresponding wgaim_write_reg_string(). Use these in various places. -Update some win32dep arguments and return values to be correctly marked as having constant values. Modified Paths: -------------- trunk/gtk/plugins/win32/winprefs/winprefs.c trunk/gtk/win32/wspell.c trunk/libgaim/plugins/log_reader.c trunk/libgaim/protocols/Makefile.mingw trunk/libgaim/win32/win32dep.c trunk/libgaim/win32/win32dep.h Modified: trunk/gtk/plugins/win32/winprefs/winprefs.c =================================================================== --- trunk/gtk/plugins/win32/winprefs/winprefs.c 2006-08-21 18:58:31 UTC (rev 16956) +++ trunk/gtk/plugins/win32/winprefs/winprefs.c 2006-08-21 20:58:20 UTC (rev 16957) @@ -45,6 +45,8 @@ */ #define WINPREFS_PLUGIN_ID "gtk-win-prefs" +#define RUNKEY "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run" + /* * LOCALS */ @@ -209,51 +211,21 @@ } -/* AUTOSTART */ - -static gboolean open_run_key(PHKEY phKey, REGSAM samDesired) { - /* First try current user key (for WinNT & Win2k +), fall back to local machine */ - if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, - "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", - 0, samDesired, phKey)); - else if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, - "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", - 0, samDesired, phKey)); - else { - gaim_debug_error(WINPREFS_PLUGIN_ID, "open_run_key: Could not open key for writing value\n"); - return FALSE; - } - return TRUE; -} - /* WIN PREFS GENERAL */ static void -winprefs_set_autostart(GtkWidget *w) -{ - HKEY hKey; +winprefs_set_autostart(GtkWidget *w) { + char *runval = NULL; - if(!open_run_key(&hKey, KEY_SET_VALUE)) - return; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) { - char buffer[1024]; - DWORD size; + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w))) + runval = g_strdup_printf("%s" G_DIR_SEPARATOR_S "gaim.exe", wgaim_install_dir()); - if((size = GetModuleFileName(gtkwgaim_hinstance(), - (LPBYTE) buffer , sizeof(buffer))) == 0) { - gaim_debug_error(WINPREFS_PLUGIN_ID, "GetModuleFileName Error. Could not set Gaim autostart.\n"); - RegCloseKey(hKey); - return; - } - - /* Now set value of new key */ - if(ERROR_SUCCESS != RegSetValueEx(hKey, "Gaim", 0, REG_SZ, buffer, size)) + if(!wgaim_write_reg_string(HKEY_CURRENT_USER, RUNKEY, "Gaim", runval) + /* For Win98 */ + && !wgaim_write_reg_string(HKEY_LOCAL_MACHINE, RUNKEY, "Gaim", runval)) gaim_debug_error(WINPREFS_PLUGIN_ID, "Could not set registry key value\n"); - } else { - if(ERROR_SUCCESS != RegDeleteValue(hKey, "Gaim")) - gaim_debug_error(WINPREFS_PLUGIN_ID, "Could not delete registry key value\n"); - } - RegCloseKey(hKey); + + g_free(runval); } static void @@ -442,8 +414,8 @@ GtkWidget *ret; GtkWidget *vbox; GtkWidget *button; - char* gtk_version = NULL; - HKEY hKey; + char *gtk_version = NULL; + char *run_key_val; ret = gtk_vbox_new(FALSE, 18); gtk_container_set_border_width(GTK_CONTAINER(ret), 12); @@ -466,11 +438,11 @@ vbox = gaim_gtk_make_frame(ret, _("Startup")); button = gtk_check_button_new_with_mnemonic(_("_Start Gaim on Windows startup")); gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0); - if(open_run_key(&hKey, KEY_QUERY_VALUE)) { - if(ERROR_SUCCESS == RegQueryValueEx(hKey, "Gaim", 0, NULL, NULL, NULL)) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - } - RegCloseKey(hKey); + + if ((run_key_val = wgaim_read_reg_string(HKEY_CURRENT_USER, RUNKEY, "Gaim")) + || (run_key_val = wgaim_read_reg_string(HKEY_LOCAL_MACHINE, RUNKEY, "Gaim"))) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); + g_free(run_key_val); } g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(winprefs_set_autostart), NULL); gtk_widget_show(button); Modified: trunk/gtk/win32/wspell.c =================================================================== --- trunk/gtk/win32/wspell.c 2006-08-21 18:58:31 UTC (rev 16956) +++ trunk/gtk/win32/wspell.c 2006-08-21 20:58:20 UTC (rev 16957) @@ -33,7 +33,7 @@ /* GTKSPELL DUMMY FUNCS */ GtkSpell* wgtkspell_new_attach(GtkTextView *view, - const gchar *lang, + const gchar *lang, GError **error) {return NULL;} GtkSpell* wgtkspell_get_from_text_view(GtkTextView *view) {return NULL;} void wgtkspell_detach(GtkSpell *spell) {} @@ -44,7 +44,7 @@ /* GTKSPELL PROTOS */ GtkSpell* (*wgaim_gtkspell_new_attach) (GtkTextView *, - const gchar *, + const gchar *, GError **) = wgtkspell_new_attach; GtkSpell* (*wgaim_gtkspell_get_from_text_view) (GtkTextView*) = wgtkspell_get_from_text_view; @@ -66,75 +66,12 @@ } static char* lookup_aspell_path() { - char *path = NULL; const char *tmp; - HKEY reg_key; - DWORD type; - DWORD nbytes; - gboolean found_reg_key; - LPCTSTR subkey = NULL; if ((tmp = g_getenv("GAIM_ASPELL_DIR"))) return g_strdup(tmp); - if (G_WIN32_HAVE_WIDECHAR_API ()) { - if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Aspell", 0, - KEY_QUERY_VALUE, - ®_key) == ERROR_SUCCESS) { - subkey = (LPCTSTR) L"Path"; - if (!(found_reg_key = RegQueryValueExW(reg_key, - (WCHAR*) subkey, NULL, - &type, NULL, &nbytes - ) == ERROR_SUCCESS)) { - subkey = NULL; - found_reg_key = (RegQueryValueExW(reg_key, - (WCHAR*) subkey, NULL, - &type, NULL, &nbytes - ) == ERROR_SUCCESS); - } - if (found_reg_key) { - wchar_t *wc_temp = g_new (wchar_t, (nbytes + 1) / 2 + 1); - RegQueryValueExW(reg_key, (WCHAR*) subkey, - NULL, &type, (LPBYTE) wc_temp, - &nbytes); - wc_temp[nbytes / 2] = '\0'; - path = g_utf16_to_utf8( - wc_temp, -1, NULL, NULL, NULL); - g_free (wc_temp); - } - } - } else { - if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Aspell", 0, - KEY_QUERY_VALUE, ®_key - ) == ERROR_SUCCESS) { - subkey = "Path"; - if (!(found_reg_key = RegQueryValueExA(reg_key, subkey, - NULL, &type, NULL, - &nbytes - ) == ERROR_SUCCESS)) { - subkey = NULL; - found_reg_key = (RegQueryValueExA(reg_key, - subkey, NULL, &type, - NULL, &nbytes - ) == ERROR_SUCCESS); - } - if (found_reg_key) { - char *cp_temp = g_malloc (nbytes + 1); - RegQueryValueExA(reg_key, subkey, NULL, &type, - cp_temp, &nbytes); - cp_temp[nbytes] = '\0'; - path = g_locale_to_utf8( - cp_temp, -1, NULL, NULL, NULL); - g_free (cp_temp); - } - } - } - - if (reg_key != NULL) { - RegCloseKey(reg_key); - } - - return path; + return wgaim_read_reg_string(HKEY_LOCAL_MACHINE, "Software\\Aspell", "Path"); } void wgaim_gtkspell_init() { Modified: trunk/libgaim/plugins/log_reader.c =================================================================== --- trunk/libgaim/plugins/log_reader.c 2006-08-21 18:58:31 UTC (rev 16956) +++ trunk/libgaim/plugins/log_reader.c 2006-08-21 20:58:20 UTC (rev 16957) @@ -1577,6 +1577,7 @@ char *path; #ifdef _WIN32 char *folder; + gboolean found = FALSE; #endif g_return_if_fail(plugin != NULL); @@ -1685,45 +1686,31 @@ /* XXX: While a major hack, this is the most reliable way I could * think of to determine the Trillian installation directory. */ - HKEY hKey; - char buffer[1024] = ""; - DWORD size = (sizeof(buffer) - 1); - DWORD type; - gboolean found = FALSE; path = NULL; - /* TODO: Test this after removing the trailing "\\". */ - if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CLASSES_ROOT, "Trillian.SkinZip\\shell\\Add\\command\\", - 0, KEY_QUERY_VALUE, &hKey)) { + if ((folder = wgaim_read_reg_string(HKEY_CLASSES_ROOT, "Trillian.SkinZip\\shell\\Add\\command\\", NULL))) { + char *value = folder; + char *temp; - if(ERROR_SUCCESS == RegQueryValueEx(hKey, "", NULL, &type, (LPBYTE)buffer, &size)) { - char *value = buffer; - char *temp; + /* Break apart buffer. */ + if (*value == '"') { + value++; + temp = value; + while (*temp && *temp != '"') + temp++; + } else { + temp = value; + while (*temp && *temp != ' ') + temp++; + } + *temp = '\0'; - /* Ensure the data is null terminated. */ - value[size] = '\0'; - - /* Break apart buffer. */ - if (*value == '"') { - value++; - temp = value; - while (*temp && *temp != '"') - temp++; - } else { - temp = value; - while (*temp && *temp != ' ') - temp++; - } - *temp = '\0'; - - /* Set path. */ - if (gaim_str_has_suffix(value, "trillian.exe")) - { - value[strlen(value) - (sizeof("trillian.exe") - 1)] = '\0'; - path = g_build_filename(value, "users", "default", "talk.ini", NULL); - } + /* Set path. */ + if (gaim_str_has_suffix(value, "trillian.exe")) { + value[strlen(value) - (sizeof("trillian.exe") - 1)] = '\0'; + path = g_build_filename(value, "users", "default", "talk.ini", NULL); } - RegCloseKey(hKey); + g_free(folder); } if (!path) { Modified: trunk/libgaim/protocols/Makefile.mingw =================================================================== --- trunk/libgaim/protocols/Makefile.mingw 2006-08-21 18:58:31 UTC (rev 16956) +++ trunk/libgaim/protocols/Makefile.mingw 2006-08-21 20:58:20 UTC (rev 16957) @@ -22,8 +22,6 @@ SIMPLE = $(GAIM_PROTOS)/simple SAMETIME = $(GAIM_PROTOS)/sametime -VERSION := $(shell cat GAIM_TOP/VERSION) - ## ## Don't forget to change STATIC_PROTO_INIT, in config.h.mingw if you ## change the status of a protocol (static/plugin) Modified: trunk/libgaim/win32/win32dep.c =================================================================== --- trunk/libgaim/win32/win32dep.c 2006-08-21 18:58:31 UTC (rev 16956) +++ trunk/libgaim/win32/win32dep.c 2006-08-21 20:58:20 UTC (rev 16957) @@ -63,15 +63,11 @@ */ static void wgaim_debug_print(GaimDebugLevel level, const char *category, - const char *format, va_list args) { - char *str = NULL; - if (args != NULL) - str = g_strdup_vprintf(format, args); - printf("%s%s%s", - category ? category : "", - category ? ": " : "", - str ? str : format); - g_free(str); + const char *arg_s) { + if(category) + printf("%s: %s", category, arg_s); + else + printf(arg_s); } static GaimDebugUiOps ops = { @@ -86,16 +82,18 @@ and on being read back have their '\' chars used as an escape char. Returns an allocated string which needs to be freed. */ -char* wgaim_escape_dirsep(char* filename) { +char *wgaim_escape_dirsep(const char *filename) { int sepcount = 0; - char* ret = NULL; + const char *tmp = filename; + char *ret; int cnt = 0; - ret = filename; - while(*ret) { - if(*ret == '\\') + g_return_val_if_fail(filename != NULL, NULL); + + while(*tmp) { + if(*tmp == '\\') sepcount++; - ret++; + tmp++; } ret = g_malloc0(strlen(filename) + sepcount + 1); while(*filename) { @@ -111,7 +109,7 @@ /* Determine whether the specified dll contains the specified procedure. If so, load it (if not already loaded). */ -FARPROC wgaim_find_and_loadproc(char* dllname, char* procedure) { +FARPROC wgaim_find_and_loadproc(const char *dllname, const char *procedure) { HMODULE hmod; BOOL did_load = FALSE; FARPROC proc = 0; @@ -182,7 +180,7 @@ return retval; } -char* wgaim_install_dir(void) { +const char *wgaim_install_dir(void) { static gboolean initialized = FALSE; if (!initialized) { @@ -219,11 +217,11 @@ return install_dir; } -char* wgaim_lib_dir(void) { +const char *wgaim_lib_dir(void) { static gboolean initialized = FALSE; if (!initialized) { - char *inst_dir = wgaim_install_dir(); + const char *inst_dir = wgaim_install_dir(); if (inst_dir != NULL) { lib_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "plugins", inst_dir); initialized = TRUE; @@ -235,11 +233,11 @@ return lib_dir; } -char* wgaim_locale_dir(void) { +const char *wgaim_locale_dir(void) { static gboolean initialized = FALSE; if (!initialized) { - char *inst_dir = wgaim_install_dir(); + const char *inst_dir = wgaim_install_dir(); if (inst_dir != NULL) { locale_dir = g_strdup_printf("%s" G_DIR_SEPARATOR_S "locale", inst_dir); initialized = TRUE; @@ -251,7 +249,7 @@ return locale_dir; } -char* wgaim_data_dir(void) { +const char *wgaim_data_dir(void) { if (!app_data_dir) { /* Set app data dir, used by gaim_home_dir */ @@ -272,20 +270,144 @@ /* Miscellaneous */ -gboolean wgaim_read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data, LPDWORD data_len) { - HKEY hkey; - gboolean ret = FALSE; +gboolean wgaim_write_reg_string(HKEY rootkey, const char *subkey, const char *valname, + const char *value) { + HKEY reg_key; + gboolean success = FALSE; - if(ERROR_SUCCESS == RegOpenKeyEx(key, sub_key, 0, KEY_QUERY_VALUE, - &hkey)) { - if(ERROR_SUCCESS == RegQueryValueEx(hkey, val_name, 0, NULL, - data, data_len)) - ret = TRUE; - RegCloseKey(key); + if(G_WIN32_HAVE_WIDECHAR_API()) { + wchar_t *wc_subkey = g_utf8_to_utf16(subkey, -1, NULL, + NULL, NULL); + + if(RegOpenKeyExW(rootkey, wc_subkey, 0, + KEY_SET_VALUE, ®_key) == ERROR_SUCCESS) { + wchar_t *wc_valname = NULL; + + if (valname) + wc_valname = g_utf8_to_utf16(valname, -1, + NULL, NULL, NULL); + + if(value) { + wchar_t *wc_value = g_utf8_to_utf16(value, -1, + NULL, NULL, NULL); + int len = (wcslen(wc_value) * sizeof(wchar_t)) + 1; + if(RegSetValueExW(reg_key, wc_valname, 0, REG_SZ, + (LPBYTE)wc_value, len + ) == ERROR_SUCCESS) + success = TRUE; + g_free(wc_value); + } else + if(RegDeleteValueW(reg_key, wc_valname) == ERROR_SUCCESS) + success = TRUE; + + g_free(wc_valname); + } + g_free(wc_subkey); + } else { + char *cp_subkey = g_locale_from_utf8(subkey, -1, NULL, + NULL, NULL); + if(RegOpenKeyExA(rootkey, cp_subkey, 0, + KEY_SET_VALUE, ®_key) == ERROR_SUCCESS) { + char *cp_valname = NULL; + if(valname) + cp_valname = g_locale_from_utf8(valname, -1, + NULL, NULL, NULL); + + if (value) { + char *cp_value = g_locale_from_utf8(value, -1, + NULL, NULL, NULL); + int len = strlen(cp_value) + 1; + if(RegSetValueExA(reg_key, cp_valname, 0, REG_SZ, + cp_value, len + ) == ERROR_SUCCESS) + success = TRUE; + g_free(cp_value); + } else + if(RegDeleteValueA(reg_key, cp_valname) == ERROR_SUCCESS) + success = TRUE; + + g_free(cp_valname); + } + g_free(cp_subkey); } - return ret; + + if(reg_key != NULL) + RegCloseKey(reg_key); + + return success; } +char *wgaim_read_reg_string(HKEY rootkey, const char *subkey, const char *valname) { + + DWORD type; + DWORD nbytes; + HKEY reg_key; + char *result = NULL; + + if(G_WIN32_HAVE_WIDECHAR_API()) { + wchar_t *wc_subkey = g_utf8_to_utf16(subkey, -1, NULL, + NULL, NULL); + + if(RegOpenKeyExW(rootkey, wc_subkey, 0, + KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS) { + wchar_t *wc_valname = NULL; + if (valname) + wc_valname = g_utf8_to_utf16(valname, -1, + NULL, NULL, NULL); + + if(RegQueryValueExW(reg_key, wc_valname, 0, &type, + NULL, &nbytes) == ERROR_SUCCESS + && type == REG_SZ) { + wchar_t *wc_temp = + g_new(wchar_t, ((nbytes + 1) / sizeof(wchar_t)) + 1); + + if(RegQueryValueExW(reg_key, wc_valname, 0, + &type, (LPBYTE) wc_temp, + &nbytes) == ERROR_SUCCESS) { + wc_temp[nbytes / sizeof(wchar_t)] = '\0'; + result = g_utf16_to_utf8(wc_temp, -1, + NULL, NULL, NULL); + } + g_free(wc_temp); + } + g_free(wc_valname); + } + g_free(wc_subkey); + } else { + char *cp_subkey = g_locale_from_utf8(subkey, -1, NULL, + NULL, NULL); + if(RegOpenKeyExA(rootkey, cp_subkey, 0, + KEY_QUERY_VALUE, ®_key) == ERROR_SUCCESS) { + char *cp_valname = NULL; + if(valname) + cp_valname = g_locale_from_utf8(valname, -1, + NULL, NULL, NULL); + + if(RegQueryValueExA(reg_key, cp_valname, 0, &type, + NULL, &nbytes) == ERROR_SUCCESS + && type == REG_SZ) { + char *cp_temp = g_malloc(nbytes + 1); + + if(RegQueryValueExA(reg_key, cp_valname, 0, + &type, cp_temp, + &nbytes) == ERROR_SUCCESS) { + cp_temp[nbytes] = '\0'; + result = g_locale_to_utf8(cp_temp, -1, + NULL, NULL, NULL); + } + g_free (cp_temp); + } + g_free(cp_valname); + } + g_free(cp_subkey); + } + + if(reg_key != NULL) + RegCloseKey(reg_key); + + return result; +} + void wgaim_init(void) { WORD wVersionRequested; WSADATA wsaData; @@ -314,11 +436,11 @@ /* Set Environmental Variables */ /* Tell perl where to find Gaim's perl modules */ perlenv = g_getenv("PERL5LIB"); - newenv = g_strdup_printf("PERL5LIB=%s%s%s" G_DIR_SEPARATOR_S "perlmod;", + newenv = g_strdup_printf("%s%s%s" G_DIR_SEPARATOR_S "perlmod;", perlenv ? perlenv : "", perlenv ? ";" : "", wgaim_install_dir()); - if (putenv(newenv) < 0) + if (!g_setenv("PERL5LIB", newenv, TRUE)) gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); g_free(newenv); Modified: trunk/libgaim/win32/win32dep.h =================================================================== --- trunk/libgaim/win32/win32dep.h 2006-08-21 18:58:31 UTC (rev 16956) +++ trunk/libgaim/win32/win32dep.h 2006-08-21 20:58:20 UTC (rev 16957) @@ -36,20 +36,21 @@ ** win32dep.c **/ /* Windows helper functions */ -FARPROC wgaim_find_and_loadproc(char*, char*); -gboolean wgaim_read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data, LPDWORD data_len); -char* wgaim_escape_dirsep(char*); +FARPROC wgaim_find_and_loadproc(const char *dllname, const char *procedure); +char *wgaim_read_reg_string(HKEY rootkey, const char *subkey, const char *valname); /* needs to be g_free'd */ +gboolean wgaim_write_reg_string(HKEY rootkey, const char *subkey, const char *valname, const char *value); +char *wgaim_escape_dirsep(const char *filename); /* needs to be g_free'd */ /* Determine Gaim paths */ -char* wgaim_get_special_folder(int folder_type); /* needs to be g_free'd */ -char* wgaim_install_dir(void); -char* wgaim_lib_dir(void); -char* wgaim_locale_dir(void); -char* wgaim_data_dir(void); +char *wgaim_get_special_folder(int folder_type); /* needs to be g_free'd */ +const char *wgaim_install_dir(void); +const char *wgaim_lib_dir(void); +const char *wgaim_locale_dir(void); +const char *wgaim_data_dir(void); /* init / cleanup */ -void wgaim_init(void); -void wgaim_cleanup(void); +void wgaim_init(void); +void wgaim_cleanup(void); /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-21 18:58:46
|
Revision: 16956 Author: mayuan2006 Date: 2006-08-21 11:58:31 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16956&view=rev Log Message: ----------- middle stage of multiple soap request why always read 0 bytes? committed by MaYuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/oim.c branches/soc-2006-msnp13/src/protocols/msn/soap.c Modified: branches/soc-2006-msnp13/src/protocols/msn/oim.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-21 17:40:07 UTC (rev 16955) +++ branches/soc-2006-msnp13/src/protocols/msn/oim.c 2006-08-21 18:58:31 UTC (rev 16956) @@ -196,6 +196,7 @@ /*we need to process the read message!*/ /*get next single Offline Message*/ // oim->oim_list = g_list_remove(oim->oim_list, oim->oim_list->data); + msn_soap_post_head_request(soapconn); } static void Modified: branches/soc-2006-msnp13/src/protocols/msn/soap.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-21 17:40:07 UTC (rev 16955) +++ branches/soc-2006-msnp13/src/protocols/msn/soap.c 2006-08-21 18:58:31 UTC (rev 16956) @@ -26,6 +26,9 @@ #include "msn.h" #include "soap.h" +/*local function prototype*/ +void msn_soap_set_process_step(MsnSoapConn *soapconn, MsnSoapStep step); + /*setup the soap process step*/ void msn_soap_set_process_step(MsnSoapConn *soapconn, MsnSoapStep step) @@ -187,7 +190,6 @@ msn_soap_read(MsnSoapConn *soapconn) { gssize len,requested_len; - gssize total_len = 0; char temp_buf[MSN_SOAP_READ_BUFF_SIZE]; // requested_len = (soapconn->need_to_read > 0) ? soapconn->need_to_read : MSN_SOAP_READ_BUFF_SIZE; @@ -198,7 +200,6 @@ len = read(soapconn->fd, temp_buf,requested_len); } if(len >0){ - total_len += len; soapconn->read_buf = g_realloc(soapconn->read_buf, soapconn->read_len + len + 1); // strncpy(soapconn->read_buf + soapconn->read_len, temp_buf, len); @@ -206,9 +207,9 @@ soapconn->read_len += len; soapconn->read_buf[soapconn->read_len] = '\0'; } - gaim_debug_info("MaYuan","++soap ssl read:{%d}\n",total_len); + gaim_debug_info("MaYuan","++soap ssl read:{%d}\n",len); // gaim_debug_info("MaYuan","nexus ssl read:{%s}\n",soapconn->read_buf); - return total_len; + return len; } /*read the whole SOAP server response*/ @@ -534,7 +535,7 @@ char * soap_head = NULL; char * request_str = NULL; - gaim_debug_info("MaYuan","msn_soap_post()...\n"); + gaim_debug_info("MaYuan","msn_soap_post_request()...\n"); msn_soap_set_process_step(soapconn,MSN_SOAP_PROCESSING); soap_head = g_strdup_printf( "POST %s HTTP/1.1\r\n" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-21 17:40:13
|
Revision: 16955 Author: mayuan2006 Date: 2006-08-21 10:40:07 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16955&view=rev Log Message: ----------- fix the authentication string fs 's bug comitted by Ma Yuan<may...@gm...> Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/nexus.c Modified: branches/soc-2006-msnp13/src/protocols/msn/nexus.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/nexus.c 2006-08-21 17:13:16 UTC (rev 16954) +++ branches/soc-2006-msnp13/src/protocols/msn/nexus.c 2006-08-21 17:40:07 UTC (rev 16955) @@ -208,13 +208,15 @@ } if(!fs){ - fs =g_strdup_printf("1"); + fs =g_strdup("1"); } challenge_str = g_strdup_printf( "lc=%s&id=%s&tw=%s&fs=%s&ru=%s&ct=%s&kpp=%s&kv=%s&ver=%s&rn=%s&tpf=%s\r\n", lc,id,tw,fs,ru,ct,kpp,kv,ver,rn,tpf ); - g_free(fs); + if(!fs){ + g_free(fs); + } /*build the SOAP windows Live ID XML body */ tail = g_strdup_printf(TWN_ENVELOP_TEMPLATE,username,password,challenge_str ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-08-21 17:13:23
|
Revision: 16954 Author: datallah Date: 2006-08-21 10:13:16 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16954&view=rev Log Message: ----------- Newer versions of MinGW define "struct timezone" in <sys/time.h>, so we don't included it for wingaim (we don't use it anyway). Modified Paths: -------------- trunk/config.h.mingw trunk/libgaim/internal.h Modified: trunk/config.h.mingw =================================================================== --- trunk/config.h.mingw 2006-08-21 17:04:26 UTC (rev 16953) +++ trunk/config.h.mingw 2006-08-21 17:13:16 UTC (rev 16954) @@ -428,7 +428,7 @@ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the <sys/time.h> header file. */ -#define HAVE_SYS_TIME_H 1 +/* #undef HAVE_SYS_TIME_H */ /* Define to 1 if you have the <sys/types.h> header file. */ #define HAVE_SYS_TYPES_H 1 @@ -550,9 +550,9 @@ /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ /* #undef STACK_DIRECTION */ /* Loads static protocol plugin module initialization functions. */ Modified: trunk/libgaim/internal.h =================================================================== --- trunk/libgaim/internal.h 2006-08-21 17:04:26 UTC (rev 16953) +++ trunk/libgaim/internal.h 2006-08-21 17:13:16 UTC (rev 16954) @@ -70,9 +70,9 @@ #define BUF_LONG BUF_LEN * 2 #include <sys/stat.h> -#include <sys/time.h> #include <sys/types.h> #ifndef _WIN32 +#include <sys/time.h> #include <sys/wait.h> #endif #include <ctype.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rl...@us...> - 2006-08-21 17:04:38
|
Revision: 16953 Author: rlaager Date: 2006-08-21 10:04:26 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16953&view=rev Log Message: ----------- SF Patch #1544073 from Alex Badea "Here's a few fixes to allow building from outside the source tree again." Modified Paths: -------------- trunk/console/Makefile.am trunk/gtk/Makefile.am Modified: trunk/console/Makefile.am =================================================================== --- trunk/console/Makefile.am 2006-08-21 16:16:10 UTC (rev 16952) +++ trunk/console/Makefile.am 2006-08-21 17:04:26 UTC (rev 16953) @@ -46,7 +46,7 @@ $(LIBXML_LIBS) \ $(GNT_LIBS) \ -L./libgnt/ -lgnt \ - -L$(top_srcdir)/libgaim -lgaim + -L$(top_builddir)/libgaim -lgaim AM_CPPFLAGS = \ -DSTANDALONE \ @@ -56,7 +56,8 @@ -DLOCALEDIR=\"$(datadir)/locale\" \ -DSYSCONFDIR=\"$(sysconfdir)\" \ -I$(top_srcdir)/libgaim/ \ - -I ./libgnt/ \ + -I$(top_srcdir) \ + -I$(srcdir)/libgnt/ \ $(DEBUG_CFLAGS) \ $(GLIB_CFLAGS) \ $(DBUS_CFLAGS) \ Modified: trunk/gtk/Makefile.am =================================================================== --- trunk/gtk/Makefile.am 2006-08-21 16:16:10 UTC (rev 16952) +++ trunk/gtk/Makefile.am 2006-08-21 17:04:26 UTC (rev 16953) @@ -164,7 +164,7 @@ $(LIBXML_LIBS) \ $(GTK_LIBS) \ $(CAP_LIBS) \ - -L$(top_srcdir)/libgaim -lgaim + -L$(top_builddir)/libgaim -lgaim AM_CPPFLAGS = \ -DBR_PTHREADS=0 \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <may...@us...> - 2006-08-21 16:16:20
|
Revision: 16952 Author: mayuan2006 Date: 2006-08-21 09:16:10 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16952&view=rev Log Message: ----------- update for fail-safe check of Passport 3.0's Authentication Modified Paths: -------------- branches/soc-2006-msnp13/src/protocols/msn/nexus.c branches/soc-2006-msnp13/src/protocols/msn/userlist.c Modified: branches/soc-2006-msnp13/src/protocols/msn/nexus.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/nexus.c 2006-08-21 15:17:22 UTC (rev 16951) +++ branches/soc-2006-msnp13/src/protocols/msn/nexus.c 2006-08-21 16:16:10 UTC (rev 16952) @@ -163,7 +163,7 @@ MsnSoapConn *soapconn; MsnNexus * nexus; MsnSession *session; - char *ru,*lc,*id,*tw,*ct,*kpp,*kv,*ver,*rn,*tpf; + char *ru,*lc,*id,*tw,*ct,*kpp,*kv,*ver,*rn,*tpf,*fs; char *username, *password; char *request_str, *head, *tail,*challenge_str; @@ -187,6 +187,7 @@ lc = (char *)g_hash_table_lookup(nexus->challenge_data, "lc"); id = (char *)g_hash_table_lookup(nexus->challenge_data, "id"); tw = (char *)g_hash_table_lookup(nexus->challenge_data, "tw"); + fs = (char *)g_hash_table_lookup(nexus->challenge_data, "fs"); ru = (char *)g_hash_table_lookup(nexus->challenge_data, "ru"); ct = (char *)g_hash_table_lookup(nexus->challenge_data, "ct"); kpp= (char *)g_hash_table_lookup(nexus->challenge_data, "kpp"); @@ -206,10 +207,14 @@ return; } + if(!fs){ + fs =g_strdup_printf("1"); + } challenge_str = g_strdup_printf( - "lc=%s&id=%s&tw=%s&fs=1&ru=%s&ct=%s&kpp=%s&kv=%s&ver=%s&rn=%s&tpf=%s\r\n", - lc,id,tw,ru,ct,kpp,kv,ver,rn,tpf + "lc=%s&id=%s&tw=%s&fs=%s&ru=%s&ct=%s&kpp=%s&kv=%s&ver=%s&rn=%s&tpf=%s\r\n", + lc,id,tw,fs,ru,ct,kpp,kv,ver,rn,tpf ); + g_free(fs); /*build the SOAP windows Live ID XML body */ tail = g_strdup_printf(TWN_ENVELOP_TEMPLATE,username,password,challenge_str ); Modified: branches/soc-2006-msnp13/src/protocols/msn/userlist.c =================================================================== --- branches/soc-2006-msnp13/src/protocols/msn/userlist.c 2006-08-21 15:17:22 UTC (rev 16951) +++ branches/soc-2006-msnp13/src/protocols/msn/userlist.c 2006-08-21 16:16:10 UTC (rev 16952) @@ -90,16 +90,13 @@ pa->friendly = g_strdup(friendly); pa->gc = gc; - if (friendly != NULL) - { + if (friendly != NULL){ msg = g_strdup_printf( _("The user %s (%s) wants to add %s to his or her " "buddy list."), passport, friendly, gaim_account_get_username(gc->account)); - } - else - { + }else{ msg = g_strdup_printf( _("The user %s wants to add %s to his or " "her buddy list."), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dat...@us...> - 2006-08-21 15:17:26
|
Revision: 16951 Author: datallah Date: 2006-08-21 08:17:22 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16951&view=rev Log Message: ----------- Use lazy initialization for wgaim_data_dir() to allow it to be used before the core is initialized. Make win32 debug printing not allocate memory when it doesn't need to. Modified Paths: -------------- trunk/libgaim/win32/win32dep.c Modified: trunk/libgaim/win32/win32dep.c =================================================================== --- trunk/libgaim/win32/win32dep.c 2006-08-21 08:20:11 UTC (rev 16950) +++ trunk/libgaim/win32/win32dep.c 2006-08-21 15:17:22 UTC (rev 16951) @@ -45,10 +45,6 @@ */ #define _(x) gettext(x) -/* - * DATA STRUCTS - */ - /* For shfolder.dll */ typedef HRESULT (CALLBACK* LPFNSHGETFOLDERPATHA)(HWND, int, HANDLE, DWORD, LPSTR); typedef HRESULT (CALLBACK* LPFNSHGETFOLDERPATHW)(HWND, int, HANDLE, DWORD, LPWSTR); @@ -56,32 +52,25 @@ /* * LOCALS */ -static char *app_data_dir, *install_dir, *lib_dir, *locale_dir; +static char *app_data_dir = NULL, *install_dir = NULL, + *lib_dir = NULL, *locale_dir = NULL; -/* - * GLOBALS - */ -HINSTANCE libgaimdll_hInstance = 0; +static HINSTANCE libgaimdll_hInstance = 0; -/* - * PROTOS - */ -FARPROC wgaim_find_and_loadproc(char*, char*); -char* wgaim_data_dir(void); - /* * STATIC CODE */ -static void wgaim_debug_print(GaimDebugLevel level, const char *category, const char *format, va_list args) { +static void wgaim_debug_print(GaimDebugLevel level, const char *category, + const char *format, va_list args) { char *str = NULL; - if (args != NULL) { + if (args != NULL) str = g_strdup_vprintf(format, args); - } else { - str = g_strdup(format); - } - printf("%s%s%s", category ? category : "", category ? ": " : "", str); + printf("%s%s%s", + category ? category : "", + category ? ": " : "", + str ? str : format); g_free(str); } @@ -263,6 +252,21 @@ } char* wgaim_data_dir(void) { + + if (!app_data_dir) { + /* Set app data dir, used by gaim_home_dir */ + const char *newenv = g_getenv("GAIMHOME"); + if (newenv) + app_data_dir = g_strdup(newenv); + else { + app_data_dir = wgaim_get_special_folder(CSIDL_APPDATA); + if (!app_data_dir) + app_data_dir = g_strdup("C:"); + } + gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Gaim settings dir: %s\n", + app_data_dir); + } + return app_data_dir; } @@ -318,19 +322,6 @@ gaim_debug(GAIM_DEBUG_WARNING, "wgaim", "putenv failed\n"); g_free(newenv); - /* Set app data dir, used by gaim_home_dir */ - newenv = (char*) g_getenv("GAIMHOME"); - if (newenv) { - app_data_dir = g_strdup(newenv); - } else { - app_data_dir = wgaim_get_special_folder(CSIDL_APPDATA); - if (!app_data_dir) { - app_data_dir = g_strdup("C:"); - } - } - - gaim_debug(GAIM_DEBUG_INFO, "wgaim", "Gaim settings dir: %s\n", app_data_dir); - gaim_debug(GAIM_DEBUG_INFO, "wgaim", "wgaim_init end\n"); } @@ -343,6 +334,9 @@ WSACleanup(); g_free(app_data_dir); + app_data_dir = NULL; + + libgaimdll_hInstance = NULL; } /* DLL initializer */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2006-08-21 08:20:14
|
Revision: 16950 Author: markhuetsch Date: 2006-08-21 01:20:11 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16950&view=rev Log Message: ----------- Eliminated some debugging output and made some labels more clear for the users. Also added a few comments. Modified Paths: -------------- trunk/libgaim/protocols/qq/qq.c Modified: trunk/libgaim/protocols/qq/qq.c =================================================================== --- trunk/libgaim/protocols/qq/qq.c 2006-08-21 07:47:03 UTC (rev 16949) +++ trunk/libgaim/protocols/qq/qq.c 2006-08-21 08:20:11 UTC (rev 16950) @@ -176,13 +176,14 @@ switch(q_bud->status) { case QQ_BUDDY_OFFLINE: - g_string_append(status, "My Offline"); + g_string_append(status, "Offline"); break; case QQ_BUDDY_ONLINE_NORMAL: return NULL; break; + /* TODO What does this status mean? Labelling it as offline... */ case QQ_BUDDY_ONLINE_OFFLINE: - g_string_append(status, "Online Offline"); + g_string_append(status, "Offline"); break; case QQ_BUDDY_ONLINE_AWAY: g_string_append(status, "Away"); @@ -193,28 +194,7 @@ default: g_string_printf(status, "Unknown-%d", q_bud->status); } - /* - switch (q_bud->gender) { - case QQ_BUDDY_GENDER_GG: - g_string_append(status, " GG"); - break; - case QQ_BUDDY_GENDER_MM: - g_string_append(status, " MM"); - break; - case QQ_BUDDY_GENDER_UNKNOWN: - g_string_append(status, "^_*"); - break; - default: - g_string_append(status, "^_^"); - } - g_string_append_printf(status, " Age: %d", q_bud->age); - g_string_append_printf(status, " Client: %04x", q_bud->client_version); - having_video = q_bud->comm_flag & QQ_COMM_FLAG_VIDEO; - if (having_video) - g_string_append(status, " (video)"); - */ - ret = status->str; g_string_free(status, FALSE); @@ -226,15 +206,12 @@ static void _qq_tooltip_text(GaimBuddy *b, GString *tooltip, gboolean full) { qq_buddy *q_bud; - /* gchar *country, *country_utf8, *city, *city_utf8; - guint32 ip_value; - */ gchar *ip_str; g_return_if_fail(b != NULL); q_bud = (qq_buddy *) b->proto_data; - /* g_return_if_fail(q_bud != NULL); */ + g_return_if_fail(q_bud != NULL); if (GAIM_BUDDY_IS_ONLINE(b) && q_bud != NULL) { @@ -248,20 +225,23 @@ g_string_append_printf(tooltip, "\n<b>Age:</b> %d", q_bud->age); switch (q_bud->gender) { case QQ_BUDDY_GENDER_GG: - g_string_append(tooltip, "\n<b>Gender:</b> GG"); + g_string_append(tooltip, "\n<b>Gender:</b> Male"); break; case QQ_BUDDY_GENDER_MM: - g_string_append(tooltip, "\n<b>Gender:</b> MM"); + g_string_append(tooltip, "\n<b>Gender:</b> Female"); break; case QQ_BUDDY_GENDER_UNKNOWN: - g_string_append(tooltip, "\n<b>Gender:</b> UNKNOWN"); + g_string_append(tooltip, "\n<b>Gender:</b> Unknown"); break; default: g_string_append_printf(tooltip, "\n<b>Gender:</b> ERROR(%d)", q_bud->gender); - } /* switch gender */ + } + /* For debugging */ + /* g_string_append_printf(tooltip, "\n<b>Flag:</b> %01x", q_bud->flag1); g_string_append_printf(tooltip, "\n<b>CommFlag:</b> %01x", q_bud->comm_flag); g_string_append_printf(tooltip, "\n<b>Client:</b> %04x", q_bud->client_version); + */ } } @@ -476,6 +456,7 @@ g_free(prefix); } +/* Change your status icon (face) */ static void _qq_menu_change_face(GaimPluginAction *action) { GaimConnection *gc = (GaimConnection *) action->context; @@ -898,7 +879,7 @@ } /* chat-related (QQ Qun) menu shown up with right-click */ -/* XXX re-enable this +/* TODO re-enable this static GList *_qq_chat_menu(GaimBlistNode *node) { GList *m; @@ -915,7 +896,7 @@ } */ /* buddy-related menu shown up with right-click */ -/* XXX re-enable this +/* TODO re-enable this static GList *_qq_buddy_menu(GaimBlistNode * node) { GList *m; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-08-21 07:47:14
|
Revision: 16949 Author: thekingant Date: 2006-08-21 00:47:03 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16949&view=rev Log Message: ----------- Change gaim_network_listen() and gaim_network_listen_range() to be cancelable. This doesn't actually help anything yet, since the gaim_upnp_functions() are not yet cancelable. But the framework is there, and the PRPLs shouldn't need any additional changes. Still to go: gaim_upnp_everything() gaim_url_fetch() gaim_srv_resolve() Let me know if there are others Modified Paths: -------------- trunk/doc/ChangeLog.API trunk/libgaim/network.c trunk/libgaim/network.h trunk/libgaim/plugins/perl/common/Network.xs trunk/libgaim/plugins/perl/common/module.h trunk/libgaim/protocols/irc/dcc_send.c trunk/libgaim/protocols/jabber/si.c trunk/libgaim/protocols/oscar/peer.c trunk/libgaim/protocols/oscar/peer.h trunk/libgaim/protocols/simple/simple.c trunk/libgaim/protocols/simple/simple.h Modified: trunk/doc/ChangeLog.API =================================================================== --- trunk/doc/ChangeLog.API 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/doc/ChangeLog.API 2006-08-21 07:47:03 UTC (rev 16949) @@ -91,6 +91,8 @@ * gaim_network_listen() and gaim_network_listen_range(): Added socket_type parameter to allow creation of UDP listening. Modified to be asynchronous with a callback to allow for UPnP operation. + Returns a data structure that can be used to cancel the listen + attempt using gaim_network_listen_cancel() * GaimPrefCallback: val is now a gconstpointer instead of a gpointer * gtk_imhtml_get_current_format(): the arguments are now set to TRUE or FALSE. Previously they were set to TRUE or left alone. Also, you @@ -117,6 +119,9 @@ * gaim_proxy_connect(): changed to return NULL on error and a pointer to a GaimProxyConnectInfo object which can be used to cancel connection attempts using gaim_proxy_connect_cancel(). + * gaim_gethostbyname_async(): Renamed to gaim_dnsquery_a() and + changed to return a pointer to a data structure that can be + used to cancel the pending DNS query using gaim_dnsquery_destroy() * gaim_gtk_create_imhtml(): Added sw_ret() parameter * gaim_account_get_log(): Added create parameter * GAIM_CMD_P_VERYHIGH is now GAIM_CMD_P_VERY_HIGH @@ -296,6 +301,12 @@ * gaim_proxy_get_setup() * GaimNotifySearchResultsCallback: Added user_data. * gaim_notify_searchresults: Added user_data. + * gaim_network_listen_cancel(): Can be used to cancel a previous + call to gaim_network_listen() or gaim_network_listen_range() + * gaim_proxy_connect_cancel(): Can be used to cancel a pending + gaim_proxy_connect() request + * gaim_dnsquery_destroy(): Can be used to cancel a pending DNS + query. Signals - Changed: (See the Doxygen docs for details on all signals.) * Signal propagation now stops after a handler returns a non-NULL value. Modified: trunk/libgaim/network.c =================================================================== --- trunk/libgaim/network.c 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/network.c 2006-08-21 07:47:03 UTC (rev 16949) @@ -42,14 +42,14 @@ #include "stun.h" #include "upnp.h" -typedef struct { +struct _GaimNetworkListenData { int listenfd; int socket_type; gboolean retry; gboolean adding; GaimNetworkListenCallback cb; gpointer cb_data; -} ListenUPnPData; +}; const unsigned char * gaim_network_ip_atoi(const char *ip) @@ -169,43 +169,49 @@ static void gaim_network_set_upnp_port_mapping_cb(gboolean success, gpointer data) { - ListenUPnPData *ldata = data; + GaimNetworkListenData *listen_data; + listen_data = data; + /* TODO: Once we're keeping track of upnp requests... */ + /* listen_data->pnp_data = NULL; */ + if (!success) { gaim_debug_info("network", "Couldn't create UPnP mapping\n"); - if (ldata->retry) { - ldata->retry = FALSE; - ldata->adding = FALSE; + if (listen_data->retry) { + listen_data->retry = FALSE; + listen_data->adding = FALSE; + /* TODO: Need to keep track of this return value! */ gaim_upnp_remove_port_mapping( - gaim_network_get_port_from_fd(ldata->listenfd), - (ldata->socket_type == SOCK_STREAM) ? "TCP" : "UDP", - gaim_network_set_upnp_port_mapping_cb, ldata); + gaim_network_get_port_from_fd(listen_data->listenfd), + (listen_data->socket_type == SOCK_STREAM) ? "TCP" : "UDP", + gaim_network_set_upnp_port_mapping_cb, listen_data); return; } - } else if (!ldata->adding) { + } else if (!listen_data->adding) { /* We've tried successfully to remove the port mapping. * Try to add it again */ - ldata->adding = TRUE; + listen_data->adding = TRUE; + /* TODO: Need to keep track of this return value! */ gaim_upnp_set_port_mapping( - gaim_network_get_port_from_fd(ldata->listenfd), - (ldata->socket_type == SOCK_STREAM) ? "TCP" : "UDP", - gaim_network_set_upnp_port_mapping_cb, ldata); + gaim_network_get_port_from_fd(listen_data->listenfd), + (listen_data->socket_type == SOCK_STREAM) ? "TCP" : "UDP", + gaim_network_set_upnp_port_mapping_cb, listen_data); return; } - if (ldata->cb) - ldata->cb(ldata->listenfd, ldata->cb_data); + if (listen_data->cb) + listen_data->cb(listen_data->listenfd, listen_data->cb_data); - g_free(ldata); + gaim_network_listen_cancel(listen_data); } -static gboolean +static GaimNetworkListenData * gaim_network_do_listen(unsigned short port, int socket_type, GaimNetworkListenCallback cb, gpointer cb_data) { int listenfd = -1; const int on = 1; - ListenUPnPData *ld; + GaimNetworkListenData *listen_data; #ifdef HAVE_GETADDRINFO int errnum; struct addrinfo hints, *res, *next; @@ -228,7 +234,7 @@ #else gaim_debug_warning("network", "getaddrinfo: Error Code = %d\n", errnum); #endif - return FALSE; + return NULL; } /* @@ -252,13 +258,13 @@ freeaddrinfo(res); if (next == NULL) - return FALSE; + return NULL; #else struct sockaddr_in sockin; if ((listenfd = socket(AF_INET, socket_type, 0)) < 0) { gaim_debug_warning("network", "socket: %s\n", strerror(errno)); - return FALSE; + return NULL; } if (setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) != 0) @@ -271,48 +277,49 @@ if (bind(listenfd, (struct sockaddr *)&sockin, sizeof(struct sockaddr_in)) != 0) { gaim_debug_warning("network", "bind: %s\n", strerror(errno)); close(listenfd); - return FALSE; + return NULL; } #endif if (socket_type == SOCK_STREAM && listen(listenfd, 4) != 0) { gaim_debug_warning("network", "listen: %s\n", strerror(errno)); close(listenfd); - return FALSE; + return NULL; } fcntl(listenfd, F_SETFL, O_NONBLOCK); gaim_debug_info("network", "Listening on port: %hu\n", gaim_network_get_port_from_fd(listenfd)); - ld = g_new0(ListenUPnPData, 1); - ld->listenfd = listenfd; - ld->adding = TRUE; - ld->retry = TRUE; - ld->cb = cb; - ld->cb_data = cb_data; + listen_data = g_new0(GaimNetworkListenData, 1); + listen_data->listenfd = listenfd; + listen_data->adding = TRUE; + listen_data->retry = TRUE; + listen_data->cb = cb; + listen_data->cb_data = cb_data; + /* TODO: Need to keep track of this return value! */ gaim_upnp_set_port_mapping( gaim_network_get_port_from_fd(listenfd), (socket_type == SOCK_STREAM) ? "TCP" : "UDP", - gaim_network_set_upnp_port_mapping_cb, ld); + gaim_network_set_upnp_port_mapping_cb, listen_data); - return TRUE; + return listen_data; } -gboolean +GaimNetworkListenData * gaim_network_listen(unsigned short port, int socket_type, GaimNetworkListenCallback cb, gpointer cb_data) { - g_return_val_if_fail(port != 0, -1); + g_return_val_if_fail(port != 0, NULL); return gaim_network_do_listen(port, socket_type, cb, cb_data); } -gboolean +GaimNetworkListenData * gaim_network_listen_range(unsigned short start, unsigned short end, int socket_type, GaimNetworkListenCallback cb, gpointer cb_data) { - gboolean ret = FALSE; + GaimNetworkListenData *ret = NULL; if (gaim_prefs_get_bool("/core/network/ports_range_use")) { start = gaim_prefs_get_int("/core/network/ports_range_start"); @@ -324,13 +331,18 @@ for (; start <= end; start++) { ret = gaim_network_do_listen(start, socket_type, cb, cb_data); - if (ret) + if (ret != NULL) break; } return ret; } +void gaim_network_listen_cancel(GaimNetworkListenData *listen_data) +{ + g_free(listen_data); +} + unsigned short gaim_network_get_port_from_fd(int fd) { Modified: trunk/libgaim/network.h =================================================================== --- trunk/libgaim/network.h 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/network.h 2006-08-21 07:47:03 UTC (rev 16949) @@ -25,11 +25,6 @@ #ifndef _GAIM_NETWORK_H_ #define _GAIM_NETWORK_H_ -/* - * TODO: This API needs a way to cancel pending calls to - * gaim_network_listen_range() and company. - */ - #ifdef __cplusplus extern "C" { #endif @@ -39,6 +34,8 @@ /**************************************************************************/ /*@{*/ +typedef struct _GaimNetworkListenData GaimNetworkListenData; + typedef void (*GaimNetworkListenCallback) (int listenfd, gpointer data); /** @@ -129,11 +126,12 @@ * this callback, or -1 if no socket could be established. * @param cb_data extra data to be returned when cb is called * - * @return TRUE if the callback will be invoked, or FALSE if unable to obtain - * a local socket to listen on. + * @return A pointer to a data structure that can be used to cancel + * the pending listener, or NULL if unable to obtain a local + * socket to listen on. */ -gboolean gaim_network_listen(unsigned short port, int socket_type, - GaimNetworkListenCallback cb, gpointer cb_data); +GaimNetworkListenData *gaim_network_listen(unsigned short port, + int socket_type, GaimNetworkListenCallback cb, gpointer cb_data); /** * Opens a listening port selected from a range of ports. The range of @@ -161,13 +159,25 @@ * this callback, or -1 if no socket could be established. * @param cb_data extra data to be returned when cb is called * - * @return TRUE if the callback will be invoked, or FALSE if unable to obtain - * a local socket to listen on. + * @return A pointer to a data structure that can be used to cancel + * the pending listener, or NULL if unable to obtain a local + * socket to listen on. */ -gboolean gaim_network_listen_range(unsigned short start, unsigned short end, - int socket_type, GaimNetworkListenCallback cb, gpointer cb_data); +GaimNetworkListenData *gaim_network_listen_range(unsigned short start, + unsigned short end, int socket_type, + GaimNetworkListenCallback cb, gpointer cb_data); /** + * This can be used to cancel any in-progress listener connection + * by passing in the return value from either gaim_network_listen() + * or gaim_network_listen_range(). + * + * @param listen_data This listener attempt will be canceled and + * the struct will be freed. + */ +void gaim_network_listen_cancel(GaimNetworkListenData *listen_data); + +/** * Gets a port number from a file descriptor. * * @param fd The file descriptor. This should be a tcp socket. The current Modified: trunk/libgaim/plugins/perl/common/Network.xs =================================================================== --- trunk/libgaim/plugins/perl/common/Network.xs 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/plugins/perl/common/Network.xs 2006-08-21 07:47:03 UTC (rev 16949) @@ -25,14 +25,14 @@ gaim_network_ip_atoi(ip) const char *ip -int +Gaim::NetworkListenData * gaim_network_listen(port, socket_type, cb, cb_data) unsigned short port int socket_type Gaim::NetworkListenCallback cb gpointer cb_data -int +Gaim::NetworkListenData * gaim_network_listen_range(start, end, socket_type, cb, cb_data) unsigned short start unsigned short end Modified: trunk/libgaim/plugins/perl/common/module.h =================================================================== --- trunk/libgaim/plugins/perl/common/module.h 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/plugins/perl/common/module.h 2006-08-21 07:47:03 UTC (rev 16949) @@ -159,6 +159,7 @@ typedef GaimLogType Gaim__LogType; /* network.h */ +typedef GaimNetworkListenData Gaim__NetworkListenData; typedef GaimNetworkListenCallback Gaim__NetworkListenCallback; /* notify.h */ Modified: trunk/libgaim/protocols/irc/dcc_send.c =================================================================== --- trunk/libgaim/protocols/irc/dcc_send.c 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/protocols/irc/dcc_send.c 2006-08-21 07:47:03 UTC (rev 16949) @@ -142,6 +142,7 @@ *******************************************************************/ struct irc_xfer_send_data { + GaimNetworkListenData *listen_data; gint inpa; int fd; guchar *rxqueue; @@ -155,6 +156,8 @@ if (xd == NULL) return; + if (xd->listen_data != NULL) + gaim_network_listen_cancel(xd->listen_data); if (xd->inpa > 0) gaim_input_remove(xd->inpa); if (xd->fd != -1) @@ -271,6 +274,9 @@ struct in_addr addr; unsigned short int port; + xd = xfer->data; + xd->listen_data = NULL; + if (gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL || gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_REMOTE) { gaim_xfer_unref(xfer); @@ -314,14 +320,16 @@ */ static void irc_dccsend_send_init(GaimXfer *xfer) { GaimConnection *gc = gaim_account_get_connection(gaim_xfer_get_account(xfer)); + struct irc_xfer_send_data *xd = xfer->data; xfer->filename = g_path_get_basename(xfer->local_filename); gaim_xfer_ref(xfer); /* Create a listening socket */ - if (!gaim_network_listen_range(0, 0, SOCK_STREAM, - irc_dccsend_network_listen_cb, xfer)) { + xd->listen_data = gaim_network_listen_range(0, 0, SOCK_STREAM, + irc_dccsend_network_listen_cb, xfer); + if (xd->listen_data == NULL) { gaim_xfer_unref(xfer); gaim_notify_error(gc, NULL, _("File Transfer Failed"), _("Gaim could not open a listening port.")); Modified: trunk/libgaim/protocols/jabber/si.c =================================================================== --- trunk/libgaim/protocols/jabber/si.c 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/protocols/jabber/si.c 2006-08-21 07:47:03 UTC (rev 16949) @@ -47,6 +47,7 @@ JabberStream *js; GaimProxyConnectData *connect_data; + GaimNetworkListenData *listen_data; gboolean accepted; @@ -539,13 +540,14 @@ xmlnode *query, *streamhost; char *jid, *port; + jsx = xfer->data; + jsx->listen_data = NULL; + if (gaim_xfer_get_status(xfer) == GAIM_XFER_STATUS_CANCEL_LOCAL) { gaim_xfer_unref(xfer); return; } - jsx = xfer->data; - gaim_xfer_unref(xfer); if (sock < 0) { @@ -588,10 +590,14 @@ static void jabber_si_xfer_bytestreams_send_init(GaimXfer *xfer) { + JabberSIXfer *jsx; + gaim_xfer_ref(xfer); - if(!gaim_network_listen_range(0, 0, SOCK_STREAM, - jabber_si_xfer_bytestreams_listen_cb, xfer)) { + jsx = xfer->data; + jsx->listen_data = gaim_network_listen_range(0, 0, SOCK_STREAM, + jabber_si_xfer_bytestreams_listen_cb, xfer); + if (jsx->listen_data == NULL) { gaim_xfer_unref(xfer); /* XXX: couldn't open a port, we're fscked */ gaim_xfer_cancel_local(xfer); @@ -698,6 +704,8 @@ if (jsx->connect_data != NULL) gaim_proxy_connect_cancel(jsx->connect_data); + if (jsx->listen_data != NULL) + gaim_network_listen_cancel(jsx->listen_data); g_free(jsx->stream_id); g_free(jsx->iq_id); Modified: trunk/libgaim/protocols/oscar/peer.c =================================================================== --- trunk/libgaim/protocols/oscar/peer.c 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/protocols/oscar/peer.c 2006-08-21 07:47:03 UTC (rev 16949) @@ -145,6 +145,12 @@ conn->connect_data = NULL; } + if (conn->listen_data != NULL) + { + gaim_network_listen_cancel(conn->listen_data); + conn->listen_data = NULL; + } + if (conn->connect_timeout_timer != 0) { gaim_timeout_remove(conn->connect_timeout_timer); @@ -561,7 +567,6 @@ static void peer_connection_establish_listener_cb(int listenerfd, gpointer data) { - NewPeerConnectionData *new_conn_data; PeerConnection *conn; OscarData *od; GaimConnection *gc; @@ -572,18 +577,9 @@ const char *listener_ip; unsigned short listener_port; - new_conn_data = data; - gc = new_conn_data->gc; - conn = new_conn_data->conn; - g_free(new_conn_data); + conn = data; + conn->listen_data = NULL; - if (!GAIM_CONNECTION_IS_VALID(gc)) - { - if (listenerfd != -1) - close(listenerfd); - return; - } - if (listenerfd == -1) { /* Could not open listener socket */ @@ -592,6 +588,7 @@ } od = conn->od; + gc = od->gc; account = gaim_connection_get_account(gc); conn->listenerfd = listenerfd; @@ -757,12 +754,6 @@ if (!(conn->flags & PEER_CONNECTION_FLAG_TRIED_INCOMING) && (!conn->use_proxy)) { - NewPeerConnectionData *new_conn_data; - - new_conn_data = g_new(NewPeerConnectionData, 1); - new_conn_data->gc = conn->od->gc; - new_conn_data->conn = conn; - conn->flags |= PEER_CONNECTION_FLAG_TRIED_INCOMING; /* @@ -771,14 +762,13 @@ */ conn->flags |= PEER_CONNECTION_FLAG_IS_INCOMING; - if (gaim_network_listen_range(5190, 5290, SOCK_STREAM, - peer_connection_establish_listener_cb, new_conn_data)) + conn->listen_data = gaim_network_listen_range(5190, 5290, SOCK_STREAM, + peer_connection_establish_listener_cb, conn); + if (conn->listen_data != NULL) { /* Opening listener socket... */ return; } - - g_free(new_conn_data); } /* Modified: trunk/libgaim/protocols/oscar/peer.h =================================================================== --- trunk/libgaim/protocols/oscar/peer.h 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/protocols/oscar/peer.h 2006-08-21 07:47:03 UTC (rev 16949) @@ -26,11 +26,12 @@ #define _PEER_H_ #include "ft.h" +#include "network.h" +#include "proxy.h" typedef struct _OdcFrame OdcFrame; typedef struct _OftFrame OftFrame; typedef struct _ProxyFrame ProxyFrame; -typedef struct _NewPeerConnectionData NewPeerConnectionData; typedef struct _PeerConnection PeerConnection; #define PEER_CONNECTION_FLAG_INITIATED_BY_ME 0x0001 @@ -132,12 +133,6 @@ ByteStream payload; /* 12 */ }; -struct _NewPeerConnectionData -{ - GaimConnection *gc; - PeerConnection *conn; -}; - struct _PeerConnection { OscarData *od; @@ -166,6 +161,12 @@ /** * This is only used when the peer connection is being established. */ + GaimNetworkListenData *listen_data; + + + /** + * This is only used when the peer connection is being established. + */ guint connect_timeout_timer; /** Modified: trunk/libgaim/protocols/simple/simple.c =================================================================== --- trunk/libgaim/protocols/simple/simple.c 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/protocols/simple/simple.c 2006-08-21 07:47:03 UTC (rev 16949) @@ -1506,6 +1506,8 @@ static void simple_udp_host_resolved_listen_cb(int listenfd, gpointer data) { struct simple_account_data *sip = (struct simple_account_data*) data; + sip->listen_data = NULL; + if(listenfd == -1) { gaim_connection_error(sip->gc, _("Could not create listen socket")); return; @@ -1546,8 +1548,9 @@ } /* create socket for incoming connections */ - if(!gaim_network_listen_range(5060, 5160, SOCK_DGRAM, - simple_udp_host_resolved_listen_cb, sip)) { + sip->listen_data = gaim_network_listen_range(5060, 5160, SOCK_DGRAM, + simple_udp_host_resolved_listen_cb, sip); + if (sip->listen_data == NULL) { gaim_connection_error(sip->gc, _("Could not create listen socket")); return; } @@ -1558,6 +1561,8 @@ struct simple_account_data *sip = (struct simple_account_data*) data; GaimProxyConnectData *connect_data; + sip->listen_data = NULL; + sip->listenfd = listenfd; if(sip->listenfd == -1) { gaim_connection_error(sip->gc, _("Could not create listen socket")); @@ -1616,8 +1621,9 @@ /* TCP case */ if(!sip->udp) { /* create socket for incoming connections */ - if(!gaim_network_listen_range(5060, 5160, SOCK_STREAM, - simple_tcp_connect_listen_cb, sip)) { + sip->listen_data = gaim_network_listen_range(5060, 5160, SOCK_STREAM, + simple_tcp_connect_listen_cb, sip); + if (sip->listen_data == NULL) { gaim_connection_error(sip->gc, _("Could not create listen socket")); return; } @@ -1697,6 +1703,9 @@ if (sip->query_data != NULL) gaim_dnsquery_destroy(sip->query_data); + if (sip->listen_data != NULL) + gaim_network_listen_cancel(sip->listen_data); + g_free(sip->servername); g_free(sip->username); g_free(sip->password); Modified: trunk/libgaim/protocols/simple/simple.h =================================================================== --- trunk/libgaim/protocols/simple/simple.h 2006-08-21 07:44:31 UTC (rev 16948) +++ trunk/libgaim/protocols/simple/simple.h 2006-08-21 07:47:03 UTC (rev 16949) @@ -1,10 +1,10 @@ /** * @file simple.h - * + * * gaim * * Copyright (C) 2005, Thomas Butter <bu...@un...> - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -29,6 +29,8 @@ #include "cipher.h" #include "circbuffer.h" #include "dnsquery.h" +#include "network.h" +#include "proxy.h" #include "prpl.h" #include "sipmsg.h" @@ -71,6 +73,7 @@ gchar *username; gchar *password; GaimDnsQueryData *query_data; + GaimNetworkListenData *listen_data; int fd; int cseq; time_t reregister; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2006-08-21 07:19:31
|
Revision: 16947 Author: markhuetsch Date: 2006-08-21 00:17:40 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16947&view=rev Log Message: ----------- Added support for QQ faces. Thanks to cs...@gm... for the images and protocol update. Modified Paths: -------------- trunk/gtk/pixmaps/status/default/Makefile.am trunk/libgaim/protocols/qq/buddy_info.c trunk/libgaim/protocols/qq/buddy_list.c trunk/libgaim/protocols/qq/buddy_status.c trunk/libgaim/protocols/qq/buddy_status.h trunk/libgaim/protocols/qq/group_info.c trunk/libgaim/protocols/qq/im.c trunk/libgaim/protocols/qq/login_logout.c trunk/libgaim/protocols/qq/qq.c trunk/libgaim/protocols/qq/qq.h trunk/libgaim/protocols/qq/utils.c trunk/libgaim/protocols/qq/utils.h Added Paths: ----------- trunk/gtk/pixmaps/status/default/qq_1.png trunk/gtk/pixmaps/status/default/qq_10.png trunk/gtk/pixmaps/status/default/qq_100.png trunk/gtk/pixmaps/status/default/qq_11.png trunk/gtk/pixmaps/status/default/qq_12.png trunk/gtk/pixmaps/status/default/qq_13.png trunk/gtk/pixmaps/status/default/qq_14.png trunk/gtk/pixmaps/status/default/qq_15.png trunk/gtk/pixmaps/status/default/qq_16.png trunk/gtk/pixmaps/status/default/qq_17.png trunk/gtk/pixmaps/status/default/qq_18.png trunk/gtk/pixmaps/status/default/qq_19.png trunk/gtk/pixmaps/status/default/qq_2.png trunk/gtk/pixmaps/status/default/qq_20.png trunk/gtk/pixmaps/status/default/qq_21.png trunk/gtk/pixmaps/status/default/qq_22.png trunk/gtk/pixmaps/status/default/qq_23.png trunk/gtk/pixmaps/status/default/qq_24.png trunk/gtk/pixmaps/status/default/qq_25.png trunk/gtk/pixmaps/status/default/qq_26.png trunk/gtk/pixmaps/status/default/qq_27.png trunk/gtk/pixmaps/status/default/qq_28.png trunk/gtk/pixmaps/status/default/qq_29.png trunk/gtk/pixmaps/status/default/qq_3.png trunk/gtk/pixmaps/status/default/qq_30.png trunk/gtk/pixmaps/status/default/qq_31.png trunk/gtk/pixmaps/status/default/qq_32.png trunk/gtk/pixmaps/status/default/qq_33.png trunk/gtk/pixmaps/status/default/qq_34.png trunk/gtk/pixmaps/status/default/qq_35.png trunk/gtk/pixmaps/status/default/qq_36.png trunk/gtk/pixmaps/status/default/qq_37.png trunk/gtk/pixmaps/status/default/qq_38.png trunk/gtk/pixmaps/status/default/qq_39.png trunk/gtk/pixmaps/status/default/qq_4.png trunk/gtk/pixmaps/status/default/qq_40.png trunk/gtk/pixmaps/status/default/qq_41.png trunk/gtk/pixmaps/status/default/qq_42.png trunk/gtk/pixmaps/status/default/qq_43.png trunk/gtk/pixmaps/status/default/qq_44.png trunk/gtk/pixmaps/status/default/qq_45.png trunk/gtk/pixmaps/status/default/qq_46.png trunk/gtk/pixmaps/status/default/qq_47.png trunk/gtk/pixmaps/status/default/qq_48.png trunk/gtk/pixmaps/status/default/qq_49.png trunk/gtk/pixmaps/status/default/qq_5.png trunk/gtk/pixmaps/status/default/qq_50.png trunk/gtk/pixmaps/status/default/qq_51.png trunk/gtk/pixmaps/status/default/qq_52.png trunk/gtk/pixmaps/status/default/qq_53.png trunk/gtk/pixmaps/status/default/qq_54.png trunk/gtk/pixmaps/status/default/qq_55.png trunk/gtk/pixmaps/status/default/qq_56.png trunk/gtk/pixmaps/status/default/qq_57.png trunk/gtk/pixmaps/status/default/qq_58.png trunk/gtk/pixmaps/status/default/qq_59.png trunk/gtk/pixmaps/status/default/qq_6.png trunk/gtk/pixmaps/status/default/qq_60.png trunk/gtk/pixmaps/status/default/qq_61.png trunk/gtk/pixmaps/status/default/qq_62.png trunk/gtk/pixmaps/status/default/qq_63.png trunk/gtk/pixmaps/status/default/qq_64.png trunk/gtk/pixmaps/status/default/qq_65.png trunk/gtk/pixmaps/status/default/qq_66.png trunk/gtk/pixmaps/status/default/qq_67.png trunk/gtk/pixmaps/status/default/qq_68.png trunk/gtk/pixmaps/status/default/qq_69.png trunk/gtk/pixmaps/status/default/qq_7.png trunk/gtk/pixmaps/status/default/qq_70.png trunk/gtk/pixmaps/status/default/qq_71.png trunk/gtk/pixmaps/status/default/qq_72.png trunk/gtk/pixmaps/status/default/qq_73.png trunk/gtk/pixmaps/status/default/qq_74.png trunk/gtk/pixmaps/status/default/qq_75.png trunk/gtk/pixmaps/status/default/qq_76.png trunk/gtk/pixmaps/status/default/qq_77.png trunk/gtk/pixmaps/status/default/qq_78.png trunk/gtk/pixmaps/status/default/qq_79.png trunk/gtk/pixmaps/status/default/qq_8.png trunk/gtk/pixmaps/status/default/qq_80.png trunk/gtk/pixmaps/status/default/qq_81.png trunk/gtk/pixmaps/status/default/qq_82.png trunk/gtk/pixmaps/status/default/qq_83.png trunk/gtk/pixmaps/status/default/qq_84.png trunk/gtk/pixmaps/status/default/qq_85.png trunk/gtk/pixmaps/status/default/qq_86.png trunk/gtk/pixmaps/status/default/qq_87.png trunk/gtk/pixmaps/status/default/qq_88.png trunk/gtk/pixmaps/status/default/qq_89.png trunk/gtk/pixmaps/status/default/qq_9.png trunk/gtk/pixmaps/status/default/qq_90.png trunk/gtk/pixmaps/status/default/qq_91.png trunk/gtk/pixmaps/status/default/qq_92.png trunk/gtk/pixmaps/status/default/qq_93.png trunk/gtk/pixmaps/status/default/qq_94.png trunk/gtk/pixmaps/status/default/qq_95.png trunk/gtk/pixmaps/status/default/qq_96.png trunk/gtk/pixmaps/status/default/qq_97.png trunk/gtk/pixmaps/status/default/qq_98.png trunk/gtk/pixmaps/status/default/qq_99.png Modified: trunk/gtk/pixmaps/status/default/Makefile.am =================================================================== --- trunk/gtk/pixmaps/status/default/Makefile.am 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/gtk/pixmaps/status/default/Makefile.am 2006-08-21 07:17:40 UTC (rev 16947) @@ -42,6 +42,108 @@ yahoo.png \ zephyr.png +QQ_FACES = \ + qq_1.png \ + qq_2.png \ + qq_3.png \ + qq_4.png \ + qq_5.png \ + qq_6.png \ + qq_7.png \ + qq_8.png \ + qq_9.png \ + qq_10.png \ + qq_11.png \ + qq_12.png \ + qq_13.png \ + qq_14.png \ + qq_15.png \ + qq_16.png \ + qq_17.png \ + qq_18.png \ + qq_19.png \ + qq_20.png \ + qq_21.png \ + qq_22.png \ + qq_23.png \ + qq_24.png \ + qq_25.png \ + qq_26.png \ + qq_27.png \ + qq_28.png \ + qq_29.png \ + qq_30.png \ + qq_31.png \ + qq_32.png \ + qq_33.png \ + qq_34.png \ + qq_35.png \ + qq_36.png \ + qq_37.png \ + qq_38.png \ + qq_39.png \ + qq_40.png \ + qq_41.png \ + qq_42.png \ + qq_43.png \ + qq_44.png \ + qq_45.png \ + qq_46.png \ + qq_47.png \ + qq_48.png \ + qq_49.png \ + qq_50.png \ + qq_51.png \ + qq_52.png \ + qq_53.png \ + qq_54.png \ + qq_55.png \ + qq_56.png \ + qq_57.png \ + qq_58.png \ + qq_59.png \ + qq_60.png \ + qq_61.png \ + qq_62.png \ + qq_63.png \ + qq_64.png \ + qq_65.png \ + qq_66.png \ + qq_67.png \ + qq_68.png \ + qq_69.png \ + qq_70.png \ + qq_71.png \ + qq_72.png \ + qq_73.png \ + qq_74.png \ + qq_75.png \ + qq_76.png \ + qq_77.png \ + qq_78.png \ + qq_79.png \ + qq_80.png \ + qq_81.png \ + qq_82.png \ + qq_83.png \ + qq_84.png \ + qq_85.png \ + qq_86.png \ + qq_87.png \ + qq_88.png \ + qq_89.png \ + qq_90.png \ + qq_91.png \ + qq_92.png \ + qq_93.png \ + qq_94.png \ + qq_95.png \ + qq_96.png \ + qq_97.png \ + qq_98.png \ + qq_99.png \ + qq_100.png + gaimstatuspixdir = $(datadir)/pixmaps/gaim/status/default -gaimstatuspix_DATA = $(EXTRA_DIST) +gaimstatuspix_DATA = $(EXTRA_DIST) $(QQ_FACES) Added: trunk/gtk/pixmaps/status/default/qq_1.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_1.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_10.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_10.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_100.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_100.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_11.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_11.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_12.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_12.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_13.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_13.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_14.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_14.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_15.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_15.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_16.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_16.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_17.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_17.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_18.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_18.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_19.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_19.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_2.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_2.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_20.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_20.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_21.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_21.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_22.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_22.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_23.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_23.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_24.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_24.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_25.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_25.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_26.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_26.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_27.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_27.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_28.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_28.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_29.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_29.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_3.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_3.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_30.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_30.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_31.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_31.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_32.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_32.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_33.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_33.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_34.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_34.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_35.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_35.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_36.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_36.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_37.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_37.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_38.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_38.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_39.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_39.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_4.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_4.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_40.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_40.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_41.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_41.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_42.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_42.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_43.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_43.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_44.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_44.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_45.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_45.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_46.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_46.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_47.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_47.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_48.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_48.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_49.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_49.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_5.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_5.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_50.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_50.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_51.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_51.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_52.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_52.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_53.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_53.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_54.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_54.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_55.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_55.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_56.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_56.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_57.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_57.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_58.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_58.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_59.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_59.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_6.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_6.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_60.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_60.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_61.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_61.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_62.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_62.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_63.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_63.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_64.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_64.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_65.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_65.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_66.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_66.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_67.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_67.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_68.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_68.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_69.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_69.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_7.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_7.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_70.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_70.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_71.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_71.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_72.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_72.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_73.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_73.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_74.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_74.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_75.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_75.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_76.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_76.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_77.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_77.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_78.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_78.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_79.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_79.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_8.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_8.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_80.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_80.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_81.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_81.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_82.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_82.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_83.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_83.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_84.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_84.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_85.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_85.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_86.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_86.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_87.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_87.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_88.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_88.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_89.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_89.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_9.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_9.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_90.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_90.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_91.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_91.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_92.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_92.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_93.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_93.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_94.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_94.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_95.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_95.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_96.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_96.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_97.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_97.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_98.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_98.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/gtk/pixmaps/status/default/qq_99.png =================================================================== (Binary files differ) Property changes on: trunk/gtk/pixmaps/status/default/qq_99.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/libgaim/protocols/qq/buddy_info.c =================================================================== --- trunk/libgaim/protocols/qq/buddy_info.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/buddy_info.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -282,7 +282,7 @@ /************************ packets and UI management **************************/ /* send a packet to get detailed information of uid */ -void qq_send_packet_get_info(GaimConnection * gc, guint32 uid, gboolean show_window) +void qq_send_packet_get_info(GaimConnection *gc, guint32 uid, gboolean show_window) { qq_data *qd; gchar *uid_str; @@ -597,6 +597,14 @@ return; info = (contact_info *) segments; + if (qd->modifying_face && strtol(info->face, NULL, 10) != qd->my_icon) { + gchar *icon = g_strdup_printf("%i", qd->my_icon); + qd->modifying_face = FALSE; + memcpy(info->face, icon, 2); + qq_send_packet_modify_info(gc, info); + g_free(icon); + } + qq_refresh_buddy_and_myself(info, gc); query_list = qd->info_query; Modified: trunk/libgaim/protocols/qq/buddy_list.c =================================================================== --- trunk/libgaim/protocols/qq/buddy_list.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/buddy_list.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -255,7 +255,7 @@ qq_buddy *q_bud; gint len, bytes, bytes_expected, i; guint16 position, unknown; - guint8 *data, *cursor, bar, pascal_len; + guint8 *data, *cursor, pascal_len; gchar *name; GaimBuddy *b; @@ -276,10 +276,8 @@ bytes = 0; /* 000-003: uid */ bytes += read_packet_dw(data, &cursor, len, &q_bud->uid); - /* 004-004: 0xff if buddy is self, 0x00 otherwise */ - bytes += read_packet_b(data, &cursor, len, &bar); - /* 005-005: icon index (1-255) */ - bytes += read_packet_b(data, &cursor, len, &q_bud->icon); + /* 004-005: icon index (1-255) */ + bytes += read_packet_w(data, &cursor, len, &q_bud->icon); /* 006-006: age */ bytes += read_packet_b(data, &cursor, len, &q_bud->age); /* 007-007: gender */ Modified: trunk/libgaim/protocols/qq/buddy_status.c =================================================================== --- trunk/libgaim/protocols/qq/buddy_status.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/buddy_status.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -120,20 +120,22 @@ return FALSE; } -/* the icon suffix is detemined by status - * although QQ server may return the right icon, I set it here myself */ -gchar get_suffix_from_status(guint8 status) +/* The QQ client seems to use a separate icon for each + * face/status combo, but we only use one and let Gaim + * handle the rest. We need to use this function to report + * the correct icon file back to the server. */ +gint get_icon_offset_from_self_status(guint8 status) { switch (status) { - case QQ_BUDDY_ONLINE_NORMAL: - return QQ_ICON_SUFFIX_NORMAL; - case QQ_BUDDY_ONLINE_AWAY: - return QQ_ICON_SUFFIX_AWAY; - case QQ_BUDDY_ONLINE_INVISIBLE: - case QQ_BUDDY_ONLINE_OFFLINE: - return QQ_ICON_SUFFIX_OFFLINE; + case QQ_SELF_STATUS_AVAILABLE: + return 0; + case QQ_SELF_STATUS_AWAY: + case QQ_SELF_STATUS_CUSTOM: + return 1; + case QQ_SELF_STATUS_INVISIBLE: + return 2; default: - return QQ_ICON_SUFFIX_DEFAULT; + return 2; } } Modified: trunk/libgaim/protocols/qq/buddy_status.h =================================================================== --- trunk/libgaim/protocols/qq/buddy_status.h 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/buddy_status.h 2006-08-21 07:17:40 UTC (rev 16947) @@ -59,7 +59,7 @@ gboolean is_online(guint8 status); gint qq_buddy_status_read(guint8 *data, guint8 **cursor, gint len, qq_buddy_status *s); -gchar get_suffix_from_status(guint8 status); +gint get_icon_offset_from_self_status(guint8 status); void qq_send_packet_change_status(GaimConnection *gc); Modified: trunk/libgaim/protocols/qq/group_info.c =================================================================== --- trunk/libgaim/protocols/qq/group_info.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/group_info.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -283,7 +283,6 @@ { guint32 internal_group_id, member_uid; guint16 unknown; - guint8 bar; gint pascal_len, i; qq_group *group; qq_buddy *member; @@ -305,8 +304,7 @@ g_return_if_fail(member != NULL); i++; - read_packet_b(data, cursor, len, &bar); - read_packet_b(data, cursor, len, &(member->icon)); + read_packet_w(data, cursor, len, &(member->icon)); read_packet_b(data, cursor, len, &(member->age)); read_packet_b(data, cursor, len, &(member->gender)); pascal_len = convert_as_pascal_string(*cursor, &(member->nickname), QQ_CHARSET_DEFAULT); Modified: trunk/libgaim/protocols/qq/im.c =================================================================== --- trunk/libgaim/protocols/qq/im.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/im.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -87,8 +87,7 @@ /* now comes the part for text only */ guint16 msg_seq; guint32 send_time; - guint8 unknown1; - guint8 sender_icon; + guint16 sender_icon; guint8 unknown2[3]; guint8 is_there_font_attr; guint8 unknown3[4]; @@ -268,8 +267,7 @@ /* push data into im_text */ read_packet_w(data, cursor, len, &(im_text->msg_seq)); read_packet_dw(data, cursor, len, &(im_text->send_time)); - read_packet_b(data, cursor, len, &(im_text->unknown1)); - read_packet_b(data, cursor, len, &(im_text->sender_icon)); + read_packet_w(data, cursor, len, &(im_text->sender_icon)); read_packet_data(data, cursor, len, (guint8 *) & (im_text->unknown2), 3); read_packet_b(data, cursor, len, &(im_text->is_there_font_attr)); /** @@ -515,10 +513,8 @@ bytes += create_packet_w(raw_data, &cursor, qd->send_seq); /* 038-041: send time */ bytes += create_packet_dw(raw_data, &cursor, (guint32) now); - /* 042-042: always 0x00 */ - bytes += create_packet_b(raw_data, &cursor, 0x00); - /* 043-043: sender icon */ - bytes += create_packet_b(raw_data, &cursor, qd->my_icon); + /* 042-043: sender icon */ + bytes += create_packet_w(raw_data, &cursor, qd->my_icon); /* 044-046: always 0x00 */ bytes += create_packet_w(raw_data, &cursor, 0x0000); bytes += create_packet_b(raw_data, &cursor, 0x00); Modified: trunk/libgaim/protocols/qq/login_logout.c =================================================================== --- trunk/libgaim/protocols/qq/login_logout.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/login_logout.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -229,6 +229,7 @@ qq_group_init(gc); /* Now goes on updating my icon/nickname, not showing info_window */ + qd->modifying_face = FALSE; qq_send_packet_get_info(gc, qd->uid, FALSE); /* change my status manually, even server may broadcast my online */ qd->status = (qd->login_mode == QQ_LOGIN_MODE_HIDDEN) ? QQ_SELF_STATUS_INVISIBLE : QQ_SELF_STATUS_AVAILABLE; Modified: trunk/libgaim/protocols/qq/qq.c =================================================================== --- trunk/libgaim/protocols/qq/qq.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/qq.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -147,27 +147,17 @@ /* returns the icon name for a buddy or protocol */ static const gchar *_qq_list_icon(GaimAccount *a, GaimBuddy *b) { - /* XXX temp commented out until we figure out what to do with - * status icons */ - /* gchar *filename; qq_buddy *q_bud; - gchar icon_suffix; - */ /* do not use g_return_val_if_fail, as it is not assertion */ if (b == NULL || b->proto_data == NULL) return "qq"; - /* q_bud = (qq_buddy *) b->proto_data; + filename = get_icon_name(q_bud->icon / 3 + 1); - icon_suffix = get_suffix_from_status(q_bud->status); - filename = get_icon_name(q_bud->icon / 3 + 1, icon_suffix); - return filename; - */ - return "qq"; } @@ -282,17 +272,20 @@ qq_buddy *q_bud = b->proto_data; const char *emblems[4] = { NULL, NULL, NULL, NULL }; - int i = 0; + int i = 1; if (q_bud == NULL) { emblems[0] = "offline"; } else { + /* TODO the wireless icon is a bit too big to look good with QQ faces */ + if (q_bud->status == QQ_BUDDY_ONLINE_AWAY || q_bud->status == QQ_SELF_STATUS_AWAY) + emblems[i++] = "away"; if (q_bud->comm_flag & QQ_COMM_FLAG_QQ_MEMBER) emblems[i++] = "qq_member"; if (q_bud->comm_flag & QQ_COMM_FLAG_BIND_MOBILE) emblems[i++] = "wireless"; if (q_bud->comm_flag & QQ_COMM_FLAG_VIDEO) - emblems[i++] = "video"; + emblems[i%4] = "video"; } @@ -437,6 +430,85 @@ qq_prepare_modify_info(gc); } +static void _qq_change_face_cb(GaimConnection *gc, GaimRequestFields *fields) +{ + qq_data *qd; + GaimRequestField *field; + gint suffix; + + g_return_if_fail(gc != NULL && gc->proto_data != NULL); + qd = (qq_data *) gc->proto_data; + + field = gaim_request_fields_get_field(fields, "face_num"); + suffix = get_icon_offset_from_self_status(qd->status); + qd->my_icon = gaim_request_field_choice_get_value(field) * 3 + suffix; + qd->modifying_face = TRUE; + qq_send_packet_get_info(gc, qd->uid, FALSE); +} + +static void _qq_add_face_choice(GaimRequestFieldGroup *group, gint face_num) +{ + GaimRequestField *field; + struct stat img_stat; + FILE *file; + gchar *filename, *prefix, *img_data, *face; + gint size; + + face = g_strdup_printf("qq_%i.png", face_num); + prefix = br_extract_prefix(DATADIR); + filename = g_build_filename(prefix, "share","pixmaps", + "gaim","status","default", face, NULL); + g_free(face); + face = g_strdup_printf("%i", face_num); + stat(filename, &img_stat); + file = g_fopen(filename, "rb"); + if (file) { + img_data = g_malloc(img_stat.st_size); + size = fread(img_data, 1, img_stat.st_size, file); + + field = gaim_request_field_image_new(face, face, img_data, size); + gaim_request_field_group_add_field(group, field); + + g_free(img_data); + fclose(file); + } + g_free(face); + g_free(prefix); +} + +static void _qq_menu_change_face(GaimPluginAction *action) +{ + GaimConnection *gc = (GaimConnection *) action->context; + qq_data *qd = (qq_data *) gc->proto_data; + GaimRequestFields *fields; + GaimRequestFieldGroup *group; + GaimRequestField *field; + gchar *label; + gint i; + + fields = gaim_request_fields_new(); + group = gaim_request_field_group_new(_("Selection")); + gaim_request_fields_add_group(fields, group); + field = gaim_request_field_choice_new("face_num", + _("Select a number"), qd->my_icon / 3); + for(i = 1; i <= QQ_FACES; i++) { + label = g_strdup_printf("%i", i); + gaim_request_field_choice_add(field, label); + g_free(label); + } + gaim_request_field_group_add_field(group, field); + group = gaim_request_field_group_new(_("Faces")); + gaim_request_fields_add_group(fields, group); + for(i = 1; i <= QQ_FACES; i++) + _qq_add_face_choice(group, i); + + gaim_request_fields(gc, _("Change Your QQ Face"), + _("Change Face"), NULL, fields, + _("Update"), G_CALLBACK(_qq_change_face_cb), + _("Cancel"), NULL, + gc); +} + static void _qq_menu_change_password(GaimPluginAction *action) { gaim_notify_uri(NULL, "https://password.qq.com"); @@ -795,6 +867,9 @@ act = gaim_plugin_action_new(_("Modify My Information"), _qq_menu_modify_my_info); m = g_list_append(m, act); + act = gaim_plugin_action_new(_("Change My Face"), _qq_menu_change_face); + m = g_list_append(m, act); + act = gaim_plugin_action_new(_("Change Password"), _qq_menu_change_password); m = g_list_append(m, act); Modified: trunk/libgaim/protocols/qq/qq.h =================================================================== --- trunk/libgaim/protocols/qq/qq.h 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/qq.h 2006-08-21 07:17:40 UTC (rev 16947) @@ -29,6 +29,7 @@ #include "proxy.h" #include "roomlist.h" +#define QQ_FACES 100 #define QQ_KEY_LENGTH 16 #define QQ_DEBUG 1 /* whether we are doing DEBUG */ @@ -37,7 +38,7 @@ struct _qq_buddy { guint32 uid; - guint8 icon; /* index: 01 - 85 */ + guint16 icon; /* index: 01 - 85 */ guint8 age; guint8 gender; gchar *nickname; @@ -83,7 +84,7 @@ /* get from keep_alive packet */ gchar *my_ip; /* my ip address detected by server */ guint16 my_port; /* my port detected by server */ - guint8 my_icon; /* my icon index */ + guint16 my_icon; /* my icon index */ guint32 all_online; /* the number of online QQ users */ time_t last_get_online; /* last time send get_friends_online packet */ @@ -103,7 +104,9 @@ GList *add_buddy_request; GQueue *before_login_packets; + /* TODO is there a better way of handling these? */ gboolean modifying_info; + gboolean modifying_face; }; void qq_function_not_implemented(GaimConnection *gc); Modified: trunk/libgaim/protocols/qq/utils.c =================================================================== --- trunk/libgaim/protocols/qq/utils.c 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/utils.c 2006-08-21 07:17:40 UTC (rev 16947) @@ -159,9 +159,9 @@ /* return the QQ icon file name * the return needs to be freed */ -gchar *get_icon_name(gint set, gint suffix) +gchar *get_icon_name(gint set) { - return g_strdup_printf("qq_%d-%d", set, suffix); + return g_strdup_printf("qq_%d", set); } /* convert a QQ UID to a unique name of GAIM Modified: trunk/libgaim/protocols/qq/utils.h =================================================================== --- trunk/libgaim/protocols/qq/utils.h 2006-08-21 06:06:54 UTC (rev 16946) +++ trunk/libgaim/protocols/qq/utils.h 2006-08-21 07:17:40 UTC (rev 16947) @@ -40,7 +40,7 @@ guint32 gaim_name_to_uid(const gchar *name); -gchar *get_icon_name(gint set, gint suffix); +gchar *get_icon_name(gint set); void try_dump_as_gbk(const guint8 *const data, gint len); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2006-08-21 06:07:00
|
Revision: 16946 Author: deryni9 Date: 2006-08-20 23:06:54 -0700 (Sun, 20 Aug 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16946&view=rev Log Message: ----------- Use the gtk conversation unseen_count instead of keeping my own count. Modified Paths: -------------- trunk/gtk/plugins/notify.c Modified: trunk/gtk/plugins/notify.c =================================================================== --- trunk/gtk/plugins/notify.c 2006-08-21 05:49:20 UTC (rev 16945) +++ trunk/gtk/plugins/notify.c 2006-08-21 06:06:54 UTC (rev 16946) @@ -107,7 +107,7 @@ static GaimPlugin *my_plugin = NULL; /* notification set/unset */ -static int notify(GaimConversation *conv, gboolean increment); +static int notify(GaimConversation *conv); static void notify_win(GaimGtkWindow *gaimwin); static void unnotify(GaimConversation *conv, gboolean reset); static int unnotify_cb(GtkWidget *widget, gpointer data, GaimConversation *conv); @@ -135,28 +135,26 @@ /****************************************/ /* Begin doing stuff below this line... */ /****************************************/ -static int +static guint count_messages(GaimGtkWindow *gaimwin) { - gint count = 0; - GList *convs = NULL, *l; + guint count = 0; + GList *gtkconvs = NULL; - for (convs = gaimwin->gtkconvs; convs != NULL; convs = convs->next) { - GaimGtkConversation *conv = convs->data; - for (l = conv->convs; l != NULL; l = l->next) { - count += GPOINTER_TO_INT(gaim_conversation_get_data(l->data, "notify-message-count")); - } + for (gtkconvs = gaimwin->gtkconvs; gtkconvs != NULL; + gtkconvs = gtkconvs->next) { + GaimGtkConversation *gtkconv = gtkconvs->data; + count += gtkconv->unseen_count; } return count; } static int -notify(GaimConversation *conv, gboolean increment) +notify(GaimConversation *conv) { - GaimGtkWindow *gaimwin = NULL; - gint count; gboolean has_focus; + GaimGtkWindow *gaimwin = NULL; if (conv == NULL) return 0; @@ -178,12 +176,6 @@ if (gaim_prefs_get_bool("/plugins/gtk/X11/notify/type_focused") || !has_focus) { - if (increment) { - count = GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count")); - count++; - gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(count)); - } - notify_win(gaimwin); } @@ -225,7 +217,6 @@ * just to have it readded in re-notify is an unnecessary couple extra RTs * to the server */ handle_urgent(gaimwin, FALSE); - gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0)); } return; @@ -234,7 +225,11 @@ static int unnotify_cb(GtkWidget *widget, gpointer data, GaimConversation *conv) { - if (GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count")) != 0) + GaimGtkConversation *gtkconv = NULL; + + gtkconv = GAIM_GTK_CONVERSATION(conv); + + if (gtkconv->unseen_count > 0) unnotify(conv, TRUE); return 0; @@ -250,7 +245,7 @@ return FALSE; if ((flags & GAIM_MESSAGE_RECV) && !(flags & GAIM_MESSAGE_DELAYED)) - notify(conv, TRUE); + notify(conv); return FALSE; } @@ -353,8 +348,6 @@ g_signal_handler_disconnect(gtkconv->entry, GPOINTER_TO_INT(l->data)); g_slist_free(ids); - gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0)); - gaim_conversation_set_data(conv, "notify-imhtml-signals", NULL); gaim_conversation_set_data(conv, "notify-entry-signals", NULL); } @@ -362,8 +355,6 @@ static void conv_created(GaimConversation *conv) { - gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0)); - /* always attach the signals, notify() will take care of conversation type * checking */ attach_signals(conv); @@ -380,7 +371,7 @@ * If the conversation was switched, then make sure we re-notify * because Gaim will have overwritten our custom window title. */ - notify(conv, FALSE); + notify(conv); #if 0 printf("conv_switched - %p - %p\n", old_conv, new_conv); @@ -406,7 +397,6 @@ gaimwin = GAIM_GTK_CONVERSATION(conv)->win; handle_urgent(gaimwin, FALSE); - gaim_conversation_set_data(conv, "notify-message-count", GINT_TO_POINTER(0)); return; @@ -592,18 +582,21 @@ static void apply_method() { GList *convs; - GaimGtkWindow *gaimwin = NULL; for (convs = gaim_get_conversations(); convs != NULL; convs = convs->next) { - GaimConversation *conv = (GaimConversation *)convs->data; + GaimConversation *conv = NULL; + GaimGtkConversation *gtkconv = NULL; + conv = (GaimConversation *) convs->data; + gtkconv = GAIM_GTK_CONVERSATION(conv); + /* remove notifications */ unnotify(conv, FALSE); - gaimwin = GAIM_GTK_CONVERSATION(conv)->win; - if (GPOINTER_TO_INT(gaim_conversation_get_data(conv, "notify-message-count")) != 0) + if (gtkconv->unseen_count > 0) { /* reattach appropriate notifications */ - notify(conv, FALSE); + notify(conv); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |