From 65c7c2c5e32972e08d729ee0c8fa4ad2f83a5f0d Mon Sep 17 00:00:00 2001 From: Paul Aurich Date: Wed, 15 Apr 2009 01:44:17 +0000 Subject: Send XMPP keepalive pings to our server, not our bare JID. jabberd doesn't seem to follow the same semantics for a missing/empty 'to' on a stanza; the response comes from our own full JID. Addressing the pings to the server's JID should sidestep that problem. --- libpurple/protocols/jabber/jabber.c | 2 +- libpurple/protocols/jabber/ping.c | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c index 6c805b3e3b..a681100dcb 100644 --- a/libpurple/protocols/jabber/jabber.c +++ b/libpurple/protocols/jabber/jabber.c @@ -463,7 +463,7 @@ void jabber_keepalive(PurpleConnection *gc) JabberStream *js = gc->proto_data; if (js->keepalive_timeout == -1) { - jabber_ping_jid(js, NULL); + jabber_ping_jid(js, js->user->domain); js->keepalive_timeout = purple_timeout_add_seconds(120, (GSourceFunc)(jabber_keepalive_timeout), gc); } diff --git a/libpurple/protocols/jabber/ping.c b/libpurple/protocols/jabber/ping.c index 058f9bcdbd..1e24e5c59e 100644 --- a/libpurple/protocols/jabber/ping.c +++ b/libpurple/protocols/jabber/ping.c @@ -55,15 +55,10 @@ static void jabber_ping_result_cb(JabberStream *js, const char *from, JabberIqType type, const char *id, xmlnode *packet, gpointer data) { - char *own_bare_jid = g_strdup_printf("%s@%s", js->user->node, - js->user->domain); - - if (!from || !strcmp(from, own_bare_jid)) { - /* If the pong is from our bare JID, treat it as a return from the + if (purple_strequal(from, js->user->domain)) + /* If the pong is from the server, assume it's a result of the * keepalive functions */ jabber_keepalive_pong_cb(js); - } - g_free(own_bare_jid); if (type == JABBER_IQ_RESULT) { purple_debug_info("jabber", "PONG!\n"); -- cgit v1.2.1 From 5b8b10617ae93affd1a5a46f3f6a7d9d04d7d8ef Mon Sep 17 00:00:00 2001 From: Sulabh Mahajan Date: Wed, 15 Apr 2009 15:46:31 +0000 Subject: Remove a bug where host_ip was accessed after freeing it. This should prevent yahoo prpl crashes. I wonder how such a simple mistake escaped me for so long. --- libpurple/protocols/yahoo/yahoo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libpurple/protocols/yahoo/yahoo.c b/libpurple/protocols/yahoo/yahoo.c index 959934537a..a238d94332 100644 --- a/libpurple/protocols/yahoo/yahoo.c +++ b/libpurple/protocols/yahoo/yahoo.c @@ -2973,8 +2973,10 @@ static void yahoo_process_p2p(PurpleConnection *gc, struct yahoo_packet *pkt) /* connect to host */ if((purple_proxy_connect(NULL, account, host_ip, YAHOO_PAGER_PORT_P2P, yahoo_p2p_init_cb, p2p_data))==NULL) { - yahoo_p2p_disconnect_destroy_data(p2p_data); purple_debug_info("yahoo","p2p: Connection to %s failed\n", host_ip); + g_free(p2p_data->host_ip); + g_free(p2p_data->host_username); + g_free(p2p_data); } } } -- cgit v1.2.1 From 971f030514297dea88512ad75bcc17ba20e933de Mon Sep 17 00:00:00 2001 From: Bj?rn Voigt Date: Thu, 16 Apr 2009 14:30:45 +0000 Subject: German update - some strings are still left - fixed a typo: msgstr "Remote-DNS mit SOCKS4-Proxys benuten" -> msgstr "Remote-DNS mit SOCKS4-Proxys benutzen" --- po/de.po | 257 +++++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 194 insertions(+), 63 deletions(-) diff --git a/po/de.po b/po/de.po index 11abb7c79a..711851c02a 100644 --- a/po/de.po +++ b/po/de.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-28 16:59+0100\n" -"PO-Revision-Date: 2009-03-28 16:53+0100\n" -"Last-Translator: Jochen Kemnade \n" +"POT-Creation-Date: 2009-04-16 16:28+0200\n" +"PO-Revision-Date: 2009-04-16 16:27+0200\n" +"Last-Translator: Björn Voigt \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -614,19 +614,6 @@ msgstr "" msgid "Send To" msgstr "Senden an" -msgid "Invite message" -msgstr "Einladungsnachricht" - -msgid "Invite" -msgstr "Einladen" - -msgid "" -"Please enter the name of the user you wish to invite,\n" -"along with an optional invite message." -msgstr "" -"Bitte geben Sie den Benutzernamen der Person ein, die Sie einladen möchten " -"zusammen mit einer optionalen Einladungsnachricht." - msgid "Conversation" msgstr "Unterhaltung" @@ -889,6 +876,39 @@ msgstr "Alle Unterhaltungen" msgid "System Log" msgstr "System-Mitschnitt" +msgid "Calling ... " +msgstr "Anrufen..." + +msgid "Hangup" +msgstr "Auflegen" + +#. Number of actions +msgid "Accept" +msgstr "Akzeptieren" + +msgid "Reject" +msgstr "Ablehnen" + +msgid "Call in progress." +msgstr "Anruf läuft." + +msgid "The call has been terminated." +msgstr "Der Anruf wurde beendet." + +#, c-format +msgid "%s wishes to start an audio session with you." +msgstr "%s möchte eine Audio-Sitzung mit Ihnen starten." + +#, c-format +msgid "%s is trying to start an unsupported media session type with you." +msgstr "" + +msgid "You have rejected the call." +msgstr "Sie haben den Anruf abgelehnt." + +msgid "call: Make an audio call." +msgstr "call: Einen Audio-Anruf tätigen." + msgid "Emails" msgstr "E-Mails" @@ -923,6 +943,9 @@ msgstr "Fortfahren" msgid "IM" msgstr "Nachricht" +msgid "Invite" +msgstr "Einladen" + msgid "(none)" msgstr "(kein)" @@ -1092,7 +1115,7 @@ msgstr "%s hat begonnen Ihnen zu schreiben (%s)" #, c-format msgid "%s has paused while typing to you (%s)" -msgstr "%s hat beim Schreiben an Sie (%s) angehalten" +msgstr "%s hat beim Tippen an Sie (%s) angehalten" #, c-format msgid "%s has signed on (%s)" @@ -1537,6 +1560,27 @@ msgstr "Gnt-Verlauf" msgid "Lastlog plugin." msgstr "Verlauf-Plugin." +msgid "" +"\n" +"Fetching TinyURL..." +msgstr "" + +msgid "Only create TinyURL for urls of this length or greater" +msgstr "" + +msgid "TinyURL (or other) address prefix" +msgstr "" + +#, fuzzy +msgid "TinyURL" +msgstr "URL anpassen" + +msgid "TinyURL plugin" +msgstr "" + +msgid "When receiving a message with URL(s), TinyURL for easier copying" +msgstr "" + msgid "accounts" msgstr "Konten" @@ -1638,13 +1682,6 @@ msgstr "Akzeptieren Sie das Zertifikat für %s?" msgid "SSL Certificate Verification" msgstr "SSL-Zertifikatsüberprüfung" -#. Number of actions -msgid "Accept" -msgstr "Akzeptieren" - -msgid "Reject" -msgstr "Ablehnen" - msgid "_View Certificate..." msgstr "Ze_rtifikat ansehen..." @@ -1792,6 +1829,18 @@ msgstr "%s hat den Raum verlassen." msgid "%s left the room (%s)." msgstr "%s hat den Raum verlassen (%s)." +#, fuzzy +msgid "Invite to chat" +msgstr "Zur Konferenz einladen" + +#. Put our happy label in it. +msgid "" +"Please enter the name of the user you wish to invite, along with an optional " +"invite message." +msgstr "" +"Bitte geben Sie den Benutzernamen der Person ein, die Sie einladen möchten " +"zusammen mit einer optionalen Einladungsnachricht." + #, c-format msgid "Failed to get connection: %s" msgstr "Kann keine Verbindung herstellen: %s" @@ -2631,7 +2680,7 @@ msgid "Do not ask. Always save in pounce." msgstr "Nicht nachfragen. Immer als Alarm sichern." msgid "One Time Password" -msgstr "" +msgstr "Einmalpasswort" #. *< type #. *< ui_requirement @@ -2640,13 +2689,13 @@ msgstr "" #. *< priority #. *< id msgid "One Time Password Support" -msgstr "" +msgstr "Unterstützung für Einmalpasswörter" #. *< name #. *< version #. * summary msgid "Enforce that passwords are used only once." -msgstr "" +msgstr "Erzwinge, dass Passwörter nur einmal verwendet werden." #. * description msgid "" @@ -3748,6 +3797,10 @@ msgstr "Client" msgid "Operating System" msgstr "Betriebssystem" +#, fuzzy +msgid "Local Time" +msgstr "Lokale Datei:" + msgid "Last Activity" msgstr "Letzte Aktivität" @@ -4493,6 +4546,37 @@ msgstr "Anklopfen" msgid "%s has buzzed you!" msgstr "%s hat bei Ihnen angeklopft!" +#, fuzzy, c-format +msgid "Unable to initiate media with %s: invalid JID" +msgstr "Kann die Nachricht an %s nicht senden, ungültige JID" + +#, fuzzy, c-format +msgid "Unable to initiate media with %s: user is not online" +msgstr "Kann die Datei nicht an %s senden, Benutzer ist nicht online" + +#, fuzzy, c-format +msgid "Unable to initiate media with %s: not subscribed to user presence" +msgstr "" +"Kann die Datei nicht an %s senden, Anwesenheit des Benutzers nicht abonniert" + +#, fuzzy +msgid "Media Initiation Failed" +msgstr "Registrierung fehlgeschlagen" + +#, fuzzy, c-format +msgid "" +"Please select the resource of %s with which you would like to start a media " +"session." +msgstr "" +"Bitte wählen Sie die Ressource von %s, an die Sie eine Datei schicken möchten" + +msgid "Select a Resource" +msgstr "Wählen Sie eine Ressource" + +#, fuzzy +msgid "Initiate Media" +msgstr "Initiiere _Chat" + msgid "config: Configure a chat room." msgstr "config: Konfiguriere einen Chatraum." @@ -4687,9 +4771,6 @@ msgid "Please select the resource of %s to which you would like to send a file" msgstr "" "Bitte wählen Sie die Ressource von %s, an die Sie eine Datei schicken möchten" -msgid "Select a Resource" -msgstr "Wählen Sie eine Ressource" - msgid "Edit User Mood" msgstr "Benutzerstimmung ändern" @@ -7308,9 +7389,8 @@ msgstr "Buddy-Notiz" msgid "Change his/her memo as you like" msgstr "" -#, fuzzy msgid "_Modify" -msgstr "Bearbeiten" +msgstr "_Bearbeiten" #, fuzzy msgid "Memo Modify" @@ -10345,6 +10425,16 @@ msgstr "_Info abrufen" msgid "I_M" msgstr "I_M" +#, fuzzy +msgid "_Audio Call" +msgstr "Chat _hinzufügen" + +msgid "Audio/_Video Call" +msgstr "Audio/_Video-Anruf" + +msgid "_Video Call" +msgstr "_Video-Anruf" + msgid "_Send File..." msgstr "_Datei versenden..." @@ -10775,14 +10865,6 @@ msgstr "" msgid "Invite Buddy Into Chat Room" msgstr "Buddy in einen Chatraum einladen" -#. Put our happy label in it. -msgid "" -"Please enter the name of the user you wish to invite, along with an optional " -"invite message." -msgstr "" -"Bitte geben Sie den Benutzernamen der Person ein, die Sie einladen möchten " -"zusammen mit einer optionalen Einladungsnachricht." - msgid "_Buddy:" msgstr "_Buddy:" @@ -10857,6 +10939,22 @@ msgstr "/Unterhaltung/S_peichern als..." msgid "/Conversation/Clea_r Scrollback" msgstr "/Unterhaltung/_Leeren" +#, fuzzy +msgid "/Conversation/M_edia" +msgstr "/Unterhaltung/Me_hr" + +#, fuzzy +msgid "/Conversation/Media/_Audio Call" +msgstr "/Unterhaltung/Me_hr" + +#, fuzzy +msgid "/Conversation/Media/_Video Call" +msgstr "/Unterhaltung/Me_hr" + +#, fuzzy +msgid "/Conversation/Media/Audio\\/Video _Call" +msgstr "/Unterhaltung/Betrachte _Mitschnitt" + msgid "/Conversation/Se_nd File..." msgstr "/Unterhaltung/Datei _senden..." @@ -10929,6 +11027,18 @@ msgstr "/Unterhaltung" msgid "/Conversation/View Log" msgstr "/Unterhaltung/Betrachte Mitschnitt" +#, fuzzy +msgid "/Conversation/Media/Audio Call" +msgstr "/Unterhaltung/Mehr" + +#, fuzzy +msgid "/Conversation/Media/Video Call" +msgstr "/Unterhaltung/Betrachte Mitschnitt" + +#, fuzzy +msgid "/Conversation/Media/Audio\\/Video Call" +msgstr "/Unterhaltung/Mehr" + msgid "/Conversation/Send File..." msgstr "/Unterhaltung/Datei senden ..." @@ -12073,6 +12183,23 @@ msgstr "Pidgin" msgid "Exiting because another libpurple client is already running.\n" msgstr "Wird geschlossen, da bereits ein anderer libpurple-Client läuft\n" +msgid "/_Media" +msgstr "/_Medien" + +msgid "/Media/_Hangup" +msgstr "/Medien/_Auflegen" + +msgid "Calling..." +msgstr "Anrufen..." + +#, c-format +msgid "%s wishes to start an audio/video session with you." +msgstr "" + +#, c-format +msgid "%s wishes to start a video session with you." +msgstr "" + #, c-format msgid "%s has %d new message." msgid_plural "%s has %d new messages." @@ -12240,43 +12367,33 @@ msgstr "_Wiederkehrend" msgid "Pounce Target" msgstr "Alarm-Ziel" -#, fuzzy msgid "Started typing" -msgstr "zu tippen beginnt" +msgstr "Beginnt zu tippen" -#, fuzzy msgid "Paused while typing" -msgstr "beim Tippen anhält" +msgstr "Hat beim Tippen angehalten" -#, fuzzy msgid "Signed on" -msgstr "sich anmeldet" +msgstr "Hat sich anmeldet" -#, fuzzy msgid "Returned from being idle" -msgstr "%s ist nicht mehr inaktiv (%s)" +msgstr "Ist nicht mehr inaktiv" -#, fuzzy msgid "Returned from being away" -msgstr "wieder anwesend ist" +msgstr "Ist wieder anwesend" -#, fuzzy msgid "Stopped typing" -msgstr "Tippen gestoppt" +msgstr "Hat das Tippen gestoppt" -#, fuzzy msgid "Signed off" -msgstr "sich abmeldet" +msgstr "Hat sich abmeldet" -#, fuzzy msgid "Became idle" -msgstr "untätig wird" +msgstr "Wurde untätig" -#, fuzzy msgid "Went away" -msgstr "Bei Abwesenheit" +msgstr "Ging hinaus" -#, fuzzy msgid "Sent a message" msgstr "Eine Nachricht senden" @@ -12420,9 +12537,6 @@ msgstr "Kann das Proxy-Konfigurationsprogramm nicht starten." msgid "Cannot start browser configuration program." msgstr "Kann das Browser-Konfigurationsprogramm nicht starten." -msgid "ST_UN server:" -msgstr "ST_UN Server:" - msgid "Example: stunserver.org" msgstr "Beispiel: stunserver.org" @@ -12447,6 +12561,10 @@ msgstr "_Start-Port:" msgid "_End port:" msgstr "_End-Port:" +#. TURN server +msgid "Relay Server (TURN)" +msgstr "Relay-Server (TURN)" + msgid "Proxy Server & Browser" msgstr "Proxy-Server & Browser" @@ -12477,7 +12595,7 @@ msgstr "Kein Proxy" #. This is a global option that affects SOCKS4 usage even with account-specific proxy settings msgid "Use remote DNS with SOCKS4 proxies" -msgstr "Remote-DNS mit SOCKS4-Proxys benuten" +msgstr "Remote-DNS mit SOCKS4-Proxys benutzen" msgid "_User:" msgstr "_Benutzer:" @@ -14003,3 +14121,16 @@ msgstr "Sendet und empfängt RAW-XMPP-Blöcke." msgid "This plugin is useful for debbuging XMPP servers or clients." msgstr "" "Dieses Plugin ist nützlich zur Fehlersuche in XMPP-Servern oder -Clients." + +#~ msgid "Invite message" +#~ msgstr "Einladungsnachricht" + +#~ msgid "" +#~ "Please enter the name of the user you wish to invite,\n" +#~ "along with an optional invite message." +#~ msgstr "" +#~ "Bitte geben Sie den Benutzernamen der Person ein, die Sie einladen " +#~ "möchten zusammen mit einer optionalen Einladungsnachricht." + +#~ msgid "ST_UN server:" +#~ msgstr "ST_UN Server:" -- cgit v1.2.1 From 48fdf4f7401b4dbd0a1a62ecac97a4538fe23d69 Mon Sep 17 00:00:00 2001 From: Marcus Lundblad Date: Fri, 17 Apr 2009 21:29:11 +0000 Subject: Only pre-create a PurpleConversation (if there was none yet) if an incoming message contains custom smileys. Partly fixes the "popup a conversation window when set to hide" bug. Until I found a better way to fix entirely... Refs #7380 --- libpurple/protocols/jabber/message.c | 37 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/libpurple/protocols/jabber/message.c b/libpurple/protocols/jabber/message.c index adc5feac85..e75898c17c 100644 --- a/libpurple/protocols/jabber/message.c +++ b/libpurple/protocols/jabber/message.c @@ -626,24 +626,27 @@ void jabber_message_parse(JabberStream *js, xmlnode *packet) purple_debug_info("jabber", "found %d smileys\n", g_list_length(smiley_refs)); - if (jm->type == JABBER_MESSAGE_GROUPCHAT) { - JabberID *jid = jabber_id_new(jm->from); - JabberChat *chat = NULL; + if (smiley_refs) { + if (jm->type == JABBER_MESSAGE_GROUPCHAT) { + JabberID *jid = jabber_id_new(jm->from); + JabberChat *chat = NULL; - if (jid) { - chat = jabber_chat_find(js, jid->node, jid->domain); - if (chat) conv = chat->conv; - } + if (jid) { + chat = jabber_chat_find(js, jid->node, jid->domain); + if (chat) conv = chat->conv; + } - jabber_id_free(jid); - } else { - conv = - purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY, - who, account); - if (!conv) { - /* we need to create the conversation here */ - conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, - account, who); + jabber_id_free(jid); + } else { + conv = + purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY, + who, account); + if (!conv) { + /* we need to create the conversation here */ + conv = + purple_conversation_new(PURPLE_CONV_TYPE_IM, + account, who); + } } } @@ -675,7 +678,7 @@ void jabber_message_parse(JabberStream *js, xmlnode *packet) TRUE)) { const JabberData *data = jabber_data_find_remote_by_cid(cid); - /* if data is already known, we add write it immediatly */ + /* if data is already known, we write it immediatly */ if (data) { purple_debug_info("jabber", "data is already known\n"); -- cgit v1.2.1 From 6368d3d5ed15e070287e1145d87e15d06c4f1f8a Mon Sep 17 00:00:00 2001 From: Ethan Blanton Date: Sat, 18 Apr 2009 02:52:46 +0000 Subject: Add the Tcl command purple::connection state (purple_connection_get_state). --- doc/TCL-HOWTO.dox | 4 ++++ libpurple/plugins/tcl/tcl_cmds.c | 24 ++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/doc/TCL-HOWTO.dox b/doc/TCL-HOWTO.dox index f8a483035c..43ea33aa99 100644 --- a/doc/TCL-HOWTO.dox +++ b/doc/TCL-HOWTO.dox @@ -173,6 +173,7 @@ purple::connection account gc purple::connection displayname gc purple::connection handle purple::connection list +purple::connection state @endcode @c purple::connection is a collection of subcommands pertaining to @@ -192,6 +193,9 @@ purple::connection list this list are appropriate as @c gc arguments to the other @c purple::connection subcommands or other commands requiring a gc. + @c state returns the PurpleConnectionState of this account as one of + the strings "connected", "disconnected", or "connecting". + @code purple::conv_send account who text @endcode diff --git a/libpurple/plugins/tcl/tcl_cmds.c b/libpurple/plugins/tcl/tcl_cmds.c index 53af8595ef..c8f1aeb1aa 100644 --- a/libpurple/plugins/tcl/tcl_cmds.c +++ b/libpurple/plugins/tcl/tcl_cmds.c @@ -683,8 +683,9 @@ int tcl_cmd_cmd(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST int tcl_cmd_connection(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { Tcl_Obj *list, *elem; - const char *cmds[] = { "account", "displayname", "handle", "list", NULL }; - enum { CMD_CONN_ACCOUNT, CMD_CONN_DISPLAYNAME, CMD_CONN_HANDLE, CMD_CONN_LIST } cmd; + const char *cmds[] = { "account", "displayname", "handle", "list", "state", NULL }; + enum { CMD_CONN_ACCOUNT, CMD_CONN_DISPLAYNAME, CMD_CONN_HANDLE, + CMD_CONN_LIST, CMD_CONN_STATE } cmd; int error; GList *cur; PurpleConnection *gc; @@ -739,6 +740,25 @@ int tcl_cmd_connection(ClientData unused, Tcl_Interp *interp, int objc, Tcl_Obj } Tcl_SetObjResult(interp, list); break; + case CMD_CONN_STATE: + if (objc != 3) { + Tcl_WrongNumArgs(interp, 2, objv, "gc"); + return TCL_ERROR; + } + if ((gc = tcl_validate_gc(objv[2], interp)) == NULL) + return TCL_ERROR; + switch (purple_connection_get_state(gc)) { + case PURPLE_DISCONNECTED: + Tcl_SetObjResult(interp, Tcl_NewStringObj("disconnected", -1)); + break; + case PURPLE_CONNECTED: + Tcl_SetObjResult(interp, Tcl_NewStringObj("connected", -1)); + break; + case PURPLE_CONNECTING: + Tcl_SetObjResult(interp, Tcl_NewStringObj("connecting", -1)); + break; + } + break; } return TCL_OK; -- cgit v1.2.1 From b7afd23acd1e836f5f09fc3c7ae64cf9ac08812a Mon Sep 17 00:00:00 2001 From: Ethan Blanton Date: Sat, 18 Apr 2009 03:08:12 +0000 Subject: Notify the user if an IRC /nick command fails, rather than trying fallbacks. This code should not come into play on initial connect, but only on /nick commands issued by the user. If it does, we'll have to try again. Fixes #5181 --- ChangeLog | 3 +++ libpurple/protocols/irc/msgs.c | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index a98f076b88..90424e27be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,9 @@ version 2.6.0 (??/??/2009): IRC: * Correctly handle WHOIS for users who are joined to a large number of channels. + * Notify the user if a /nick command fails, rather than trying + fallback nicks. + Pidgin: * Added -f command line option to tell Pidgin to ignore NetworkManager diff --git a/libpurple/protocols/irc/msgs.c b/libpurple/protocols/irc/msgs.c index 56a770f791..be63c4541c 100644 --- a/libpurple/protocols/irc/msgs.c +++ b/libpurple/protocols/irc/msgs.c @@ -1004,10 +1004,23 @@ void irc_msg_badnick(struct irc_conn *irc, const char *name, const char *from, c void irc_msg_nickused(struct irc_conn *irc, const char *name, const char *from, char **args) { char *newnick, *buf, *end; + PurpleConnection *gc = purple_account_get_connection(irc->account); if (!args || !args[1]) return; + if (gc && purple_connection_get_state(gc) == PURPLE_CONNECTED) { + /* We only want to do the following dance if the connection + has not been successfully completed. If it has, just + notify the user that their /nick command didn't go. */ + buf = g_strdup_printf(_("The nickname \"%s\" is already being used."), + irc->reqnick); + purple_notify_error(gc, _("Nickname in use"), + _("Nickname in use"), buf); + g_free(buf); + g_free(irc->reqnick); + } + if (strlen(args[1]) < strlen(irc->reqnick) || irc->nickused) newnick = g_strdup(args[1]); else -- cgit v1.2.1 From 4543c750a51aebd0d4fbb717bcd10ae80b7c9555 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 05:53:42 +0000 Subject: Remove GTK_CHECK_* macros which were deprecated. --- pidgin/gtkimhtml.h | 12 ++++++------ pidgin/gtkimhtmltoolbar.h | 10 +++++----- pidgin/gtkmenutray.h | 12 ++++++------ pidgin/gtksourceundomanager.h | 12 ++++++------ 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/pidgin/gtkimhtml.h b/pidgin/gtkimhtml.h index 7bcf28e6ec..8b407d2e97 100644 --- a/pidgin/gtkimhtml.h +++ b/pidgin/gtkimhtml.h @@ -40,13 +40,13 @@ extern "C" { **************************************************************************/ /*@{*/ -#define GTK_TYPE_IMHTML (gtk_imhtml_get_type ()) -#define GTK_IMHTML(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_IMHTML, GtkIMHtml)) -#define GTK_IMHTML_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_IMHTML, GtkIMHtmlClass)) -#define GTK_IS_IMHTML(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_IMHTML)) -#define GTK_IS_IMHTML_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IMHTML)) +#define GTK_TYPE_IMHTML (gtk_imhtml_get_type()) +#define GTK_IMHTML(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_IMHTML, GtkIMHtml)) +#define GTK_IMHTML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_IMHTML, GtkIMHtmlClass)) +#define GTK_IS_IMHTML(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_IMHTML)) +#define GTK_IS_IMHTML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_IMHTML)) #define GTK_IMHTML_SCALABLE(obj) ((GtkIMHtmlScalable *)obj) -#define GTK_IMHTML_ANIMATION(obj) ((GtkIMHtmlAnimation *)obj) +#define GTK_IMHTML_ANIMATION(obj) ((GtkIMHtmlAnimation *)obj) typedef struct _GtkIMHtml GtkIMHtml; typedef struct _GtkIMHtmlClass GtkIMHtmlClass; diff --git a/pidgin/gtkimhtmltoolbar.h b/pidgin/gtkimhtmltoolbar.h index 5f67603496..ad3285eeca 100644 --- a/pidgin/gtkimhtmltoolbar.h +++ b/pidgin/gtkimhtmltoolbar.h @@ -32,11 +32,11 @@ extern "C" { #define DEFAULT_FONT_FACE "Helvetica 12" -#define GTK_TYPE_IMHTMLTOOLBAR (gtk_imhtmltoolbar_get_type ()) -#define GTK_IMHTMLTOOLBAR(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_IMHTMLTOOLBAR, GtkIMHtmlToolbar)) -#define GTK_IMHTMLTOOLBAR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_IMHTMLTOOLBAR, GtkIMHtmlToolbarClass)) -#define GTK_IS_IMHTMLTOOLBAR(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_IMHTMLTOOLBAR)) -#define GTK_IS_IMHTMLTOOLBAR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IMHTMLTOOLBAR)) +#define GTK_TYPE_IMHTMLTOOLBAR (gtk_imhtmltoolbar_get_type()) +#define GTK_IMHTMLTOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_IMHTMLTOOLBAR, GtkIMHtmlToolbar)) +#define GTK_IMHTMLTOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_IMHTMLTOOLBAR, GtkIMHtmlToolbarClass)) +#define GTK_IS_IMHTMLTOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_IMHTMLTOOLBAR)) +#define GTK_IS_IMHTMLTOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_IMHTMLTOOLBAR)) typedef struct _GtkIMHtmlToolbar GtkIMHtmlToolbar; typedef struct _GtkIMHtmlToolbarClass GtkIMHtmlToolbarClass; diff --git a/pidgin/gtkmenutray.h b/pidgin/gtkmenutray.h index 3604b7192b..0661ef8425 100644 --- a/pidgin/gtkmenutray.h +++ b/pidgin/gtkmenutray.h @@ -26,12 +26,12 @@ #include -#define PIDGIN_TYPE_MENU_TRAY (pidgin_menu_tray_get_gtype()) -#define PIDGIN_MENU_TRAY(obj) (GTK_CHECK_CAST((obj), PIDGIN_TYPE_MENU_TRAY, PidginMenuTray)) -#define PIDGIN_MENU_TRAY_CLASS(klass) (GTK_CHECK_CLASS_CAST((klass), PIDGIN_TYPE_MENU_TRAY, PidginMenuTrayClass)) -#define PIDGIN_IS_MENU_TRAY(obj) (GTK_CHECK_TYPE((obj), PIDGIN_TYPE_MENU_TRAY)) -#define PIDGIN_IS_MENU_TRAY_CLASS(klass) (GTK_CHECK_CLASS_TYPE((klass), PIDGIN_TYPE_MENU_TRAY)) -#define PIDGIN_MENU_TRAY_GET_CLASS(obj) (GTK_CHECK_GET_CLASS((obj), PIDGIN_TYPE_MENU_TRAY, PidginMenuTrayClass)) +#define PIDGIN_TYPE_MENU_TRAY (pidgin_menu_tray_get_gtype()) +#define PIDGIN_MENU_TRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PIDGIN_TYPE_MENU_TRAY, PidginMenuTray)) +#define PIDGIN_MENU_TRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PIDGIN_TYPE_MENU_TRAY, PidginMenuTrayClass)) +#define PIDGIN_IS_MENU_TRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PIDGIN_TYPE_MENU_TRAY)) +#define PIDGIN_IS_MENU_TRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PIDGIN_TYPE_MENU_TRAY)) +#define PIDGIN_MENU_TRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PIDGIN_TYPE_MENU_TRAY, PidginMenuTrayClass)) typedef struct _PidginMenuTray PidginMenuTray; typedef struct _PidginMenuTrayClass PidginMenuTrayClass; diff --git a/pidgin/gtksourceundomanager.h b/pidgin/gtksourceundomanager.h index e77d1f667e..0148455476 100644 --- a/pidgin/gtksourceundomanager.h +++ b/pidgin/gtksourceundomanager.h @@ -28,12 +28,12 @@ #include -#define GTK_SOURCE_TYPE_UNDO_MANAGER (gtk_source_undo_manager_get_type ()) -#define GTK_SOURCE_UNDO_MANAGER(obj) (GTK_CHECK_CAST ((obj), GTK_SOURCE_TYPE_UNDO_MANAGER, GtkSourceUndoManager)) -#define GTK_SOURCE_UNDO_MANAGER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_SOURCE_TYPE_UNDO_MANAGER, GtkSourceUndoManagerClass)) -#define GTK_SOURCE_IS_UNDO_MANAGER(obj) (GTK_CHECK_TYPE ((obj), GTK_SOURCE_TYPE_UNDO_MANAGER)) -#define GTK_SOURCE_IS_UNDO_MANAGER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_SOURCE_TYPE_UNDO_MANAGER)) -#define GTK_SOURCE_UNDO_MANAGER_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_SOURCE_TYPE_UNDO_MANAGER, GtkSourceUndoManagerClass)) +#define GTK_SOURCE_TYPE_UNDO_MANAGER (gtk_source_undo_manager_get_type()) +#define GTK_SOURCE_UNDO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_SOURCE_TYPE_UNDO_MANAGER, GtkSourceUndoManager)) +#define GTK_SOURCE_UNDO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_SOURCE_TYPE_UNDO_MANAGER, GtkSourceUndoManagerClass)) +#define GTK_SOURCE_IS_UNDO_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_SOURCE_TYPE_UNDO_MANAGER)) +#define GTK_SOURCE_IS_UNDO_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_SOURCE_TYPE_UNDO_MANAGER)) +#define GTK_SOURCE_UNDO_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_SOURCE_TYPE_UNDO_MANAGER, GtkSourceUndoManagerClass)) typedef struct _GtkSourceUndoManager GtkSourceUndoManager; -- cgit v1.2.1 From a48ea494497f526971b7cc22a5db3c05260dc9db Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 07:00:20 +0000 Subject: Fix some more GTK_CHECK_* macros and a GtkType. --- pidgin/plugins/ticker/gtkticker.c | 6 +++--- pidgin/plugins/ticker/gtkticker.h | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pidgin/plugins/ticker/gtkticker.c b/pidgin/plugins/ticker/gtkticker.c index 1cdf7ad132..35ea02c239 100644 --- a/pidgin/plugins/ticker/gtkticker.c +++ b/pidgin/plugins/ticker/gtkticker.c @@ -41,7 +41,7 @@ static void gtk_ticker_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); -static GtkType gtk_ticker_child_type (GtkContainer *container); +static GType gtk_ticker_child_type (GtkContainer *container); static GtkContainerClass *parent_class = NULL; @@ -97,7 +97,7 @@ static void gtk_ticker_class_init (GtkTickerClass *class) widget_class = (GtkWidgetClass*) class; container_class = (GtkContainerClass*) class; - parent_class = gtk_type_class (GTK_TYPE_CONTAINER); + parent_class = g_type_class_ref (GTK_TYPE_CONTAINER); gobject_class->finalize = gtk_ticker_finalize; @@ -112,7 +112,7 @@ static void gtk_ticker_class_init (GtkTickerClass *class) container_class->child_type = gtk_ticker_child_type; } -static GtkType gtk_ticker_child_type (GtkContainer *container) +static GType gtk_ticker_child_type (GtkContainer *container) { return GTK_TYPE_WIDGET; } diff --git a/pidgin/plugins/ticker/gtkticker.h b/pidgin/plugins/ticker/gtkticker.h index aa6ab8d779..7fc4f476e1 100644 --- a/pidgin/plugins/ticker/gtkticker.h +++ b/pidgin/plugins/ticker/gtkticker.h @@ -33,11 +33,11 @@ extern "C" { #endif /* __cplusplus */ -#define GTK_TYPE_TICKER (gtk_ticker_get_type ()) -#define GTK_TICKER(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TICKER, GtkTicker)) -#define GTK_TICKER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TICKER, GtkTickerClass)) -#define GTK_IS_TICKER(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TICKER)) -#define GTK_IS_TICKER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TICKER)) +#define GTK_TYPE_TICKER (gtk_ticker_get_type()) +#define GTK_TICKER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_TICKER, GtkTicker)) +#define GTK_TICKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_TICKER, GtkTickerClass)) +#define GTK_IS_TICKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_TICKER)) +#define GTK_IS_TICKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_TICKER)) typedef struct _GtkTicker GtkTicker; @@ -72,7 +72,7 @@ struct _GtkTickerChild }; -GtkType gtk_ticker_get_type (void); +GType gtk_ticker_get_type (void); GtkWidget* gtk_ticker_new (void); void gtk_ticker_add (GtkTicker *ticker, GtkWidget *widget); -- cgit v1.2.1 From b6caf799f71931f992c4cc73bd24a58599fa1eea Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 07:31:32 +0000 Subject: Use g_object_ref/unref instead of the deprecated versions. --- pidgin/gtkaccount.c | 12 ++++++++++++ pidgin/gtkdialogs.c | 2 +- pidgin/gtkprefs.c | 4 ++-- pidgin/gtksmiley.c | 4 ++-- pidgin/gtkstatusbox.c | 4 ++-- pidgin/gtkutils.c | 2 +- pidgin/gtkwhiteboard.c | 2 +- pidgin/plugins/markerline.c | 2 +- 8 files changed, 22 insertions(+), 10 deletions(-) diff --git a/pidgin/gtkaccount.c b/pidgin/gtkaccount.c index b303b2d0b7..98abdafb3d 100644 --- a/pidgin/gtkaccount.c +++ b/pidgin/gtkaccount.c @@ -413,7 +413,11 @@ add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent) if (dialog->protocol_menu != NULL) { +#if GTK_CHECK_VERSION(2,12,0) + g_object_ref(G_OBJECT(dialog->protocol_menu)); +#else gtk_widget_ref(dialog->protocol_menu); +#endif hbox = g_object_get_data(G_OBJECT(dialog->protocol_menu), "container"); gtk_container_remove(GTK_CONTAINER(hbox), dialog->protocol_menu); } @@ -440,13 +444,21 @@ add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent) { dialog->protocol_menu = pidgin_protocol_option_menu_new( dialog->protocol_id, G_CALLBACK(set_account_protocol_cb), dialog); +#if GTK_CHECK_VERSION(2,12,0) + g_object_ref(G_OBJECT(dialog->protocol_menu)); +#else gtk_widget_ref(dialog->protocol_menu); +#endif } hbox = add_pref_box(dialog, vbox, _("Pro_tocol:"), dialog->protocol_menu); g_object_set_data(G_OBJECT(dialog->protocol_menu), "container", hbox); +#if GTK_CHECK_VERSION(2,12,0) + g_object_unref(G_OBJECT(dialog->protocol_menu)); +#else gtk_widget_unref(dialog->protocol_menu); +#endif /* Username */ dialog->username_entry = gtk_entry_new(); diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c index e63d6b78e2..91b9f6daee 100644 --- a/pidgin/gtkdialogs.c +++ b/pidgin/gtkdialogs.c @@ -427,7 +427,7 @@ void pidgin_dialogs_about() #endif gtk_widget_destroy(logo); logo = gtk_image_new_from_pixbuf(pixbuf); - gdk_pixbuf_unref(pixbuf); + g_object_unref(G_OBJECT(pixbuf)); /* Insert the logo */ obj = gtk_widget_get_accessible(logo); tmp = g_strconcat(PIDGIN_NAME, " " DISPLAY_VERSION, NULL); diff --git a/pidgin/gtkprefs.c b/pidgin/gtkprefs.c index d07bd7f374..d024946aec 100644 --- a/pidgin/gtkprefs.c +++ b/pidgin/gtkprefs.c @@ -638,7 +638,7 @@ prefs_themes_sort(PurpleTheme *theme) gtk_list_store_set(prefs_sound_themes, &iter, 0, pixbuf, 2, purple_theme_get_name(theme), -1); if (pixbuf != NULL) - gdk_pixbuf_unref(pixbuf); + g_object_unref(G_OBJECT(pixbuf)); } else if (PIDGIN_IS_BLIST_THEME(theme) || PIDGIN_IS_STATUS_ICON_THEME(theme)){ GtkListStore *store; @@ -665,7 +665,7 @@ prefs_themes_sort(PurpleTheme *theme) g_free(markup); if (pixbuf != NULL) - gdk_pixbuf_unref(pixbuf); + g_object_unref(G_OBJECT(pixbuf)); } } diff --git a/pidgin/gtksmiley.c b/pidgin/gtksmiley.c index d8f0b3e422..38289f6d30 100644 --- a/pidgin/gtksmiley.c +++ b/pidgin/gtksmiley.c @@ -74,7 +74,7 @@ pidgin_smiley_destroy(PidginSmiley *smiley) gtk_widget_destroy(smiley->parent); g_free(smiley->filename); if (smiley->custom_pixbuf) - gdk_pixbuf_unref(smiley->custom_pixbuf); + g_object_unref(G_OBJECT(smiley->custom_pixbuf)); g_free(smiley); } @@ -460,7 +460,7 @@ pidgin_smiley_editor_set_image(PidginSmiley *editor, GdkPixbuf *image) { if (editor->custom_pixbuf) gdk_pixbuf_unref(editor->custom_pixbuf); - editor->custom_pixbuf = image ? gdk_pixbuf_ref(image) : NULL; + editor->custom_pixbuf = image ? g_object_ref(G_OBJECT(image)) : NULL; if (image) gtk_image_set_from_pixbuf(GTK_IMAGE(editor->smiley_image), image); } diff --git a/pidgin/gtkstatusbox.c b/pidgin/gtkstatusbox.c index 8f52ea4af6..d59189f607 100644 --- a/pidgin/gtkstatusbox.c +++ b/pidgin/gtkstatusbox.c @@ -536,12 +536,12 @@ pidgin_status_box_finalize(GObject *obj) for (i = 0; i < G_N_ELEMENTS(statusbox->connecting_pixbufs); i++) { if (statusbox->connecting_pixbufs[i] != NULL) - gdk_pixbuf_unref(statusbox->connecting_pixbufs[i]); + g_object_unref(G_OBJECT(statusbox->connecting_pixbufs[i])); } for (i = 0; i < G_N_ELEMENTS(statusbox->typing_pixbufs); i++) { if (statusbox->typing_pixbufs[i] != NULL) - gdk_pixbuf_unref(statusbox->typing_pixbufs[i]); + g_object_unref(G_OBJECT(statusbox->typing_pixbufs[i])); } g_object_unref(G_OBJECT(statusbox->store)); diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c index 4e9d946c0e..3d780bc4a2 100644 --- a/pidgin/gtkutils.c +++ b/pidgin/gtkutils.c @@ -1627,7 +1627,7 @@ pidgin_dnd_file_manage(GtkSelectionData *sd, PurpleAccount *account, const char _("Set as buddy icon"), DND_BUDDY_ICON, (ft ? _("Send image file") : _("Insert in message")), (ft ? DND_FILE_TRANSFER : DND_IM_IMAGE), NULL); - gdk_pixbuf_unref(pb); + g_object_unref(G_OBJECT(pb)); return; } diff --git a/pidgin/gtkwhiteboard.c b/pidgin/gtkwhiteboard.c index 38c045f5de..dbc528ebcc 100644 --- a/pidgin/gtkwhiteboard.c +++ b/pidgin/gtkwhiteboard.c @@ -624,7 +624,7 @@ static void pidgin_whiteboard_draw_brush_point(PurpleWhiteboard *wb, int x, int update_rect.x, update_rect.y, update_rect.width, update_rect.height); - gdk_gc_unref(gfx_con); + g_object_unref(G_OBJECT(gfx_con)); } /* Uses Bresenham's algorithm (as provided by Wikipedia) */ diff --git a/pidgin/plugins/markerline.c b/pidgin/plugins/markerline.c index 9d0d11a2e1..214994a906 100644 --- a/pidgin/plugins/markerline.c +++ b/pidgin/plugins/markerline.c @@ -84,7 +84,7 @@ imhtml_expose_cb(GtkWidget *widget, GdkEventExpose *event, PidginConversation *g gdk_gc_set_rgb_fg_color(gc, &red); gdk_draw_line(event->window, gc, 0, y, visible_rect.width, y); - gdk_gc_unref(gc); + g_object_unref(G_OBJECT(gc)); } return FALSE; } -- cgit v1.2.1 From c6c87da78a89e3a5aad51c34a03c38dae68e27b0 Mon Sep 17 00:00:00 2001 From: Ethan Blanton Date: Sat, 18 Apr 2009 14:03:16 +0000 Subject: Patch from Zsombor Welker to expand the list of PurpleValue valid subtypes. Fixes #8761 --- libpurple/plugins/perl/perl-common.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/libpurple/plugins/perl/perl-common.c b/libpurple/plugins/perl/perl-common.c index 4266ab7626..061dbdd2fb 100644 --- a/libpurple/plugins/perl/perl-common.c +++ b/libpurple/plugins/perl/perl-common.c @@ -403,7 +403,7 @@ purple_perl_data_from_sv(PurpleValue *value, SV *sv) static SV * purple_perl_sv_from_subtype(const PurpleValue *value, void *arg) { - const char *stash = NULL; + const char *stash = "Purple"; /* ? */ switch (purple_value_get_subtype(value)) { case PURPLE_SUBTYPE_ACCOUNT: @@ -442,6 +442,9 @@ purple_perl_sv_from_subtype(const PurpleValue *value, void *arg) case PURPLE_SUBTYPE_STATUS: stash = "Purple::Status"; break; + case PURPLE_SUBTYPE_SAVEDSTATUS: + stash = "Purple::SavedStatus"; + break; case PURPLE_SUBTYPE_LOG: stash = "Purple::Log"; break; @@ -451,10 +454,19 @@ purple_perl_sv_from_subtype(const PurpleValue *value, void *arg) case PURPLE_SUBTYPE_XMLNODE: stash = "Purple::XMLNode"; break; - - default: - stash = "Purple"; /* ? */ - } + case PURPLE_SUBTYPE_USERINFO: + stash = "Purple::NotifyUserInfo"; + break; + case PURPLE_SUBTYPE_STORED_IMAGE: + stash = "Purple::StoredImage"; + break; + case PURPLE_SUBTYPE_CERTIFICATEPOOL: + stash = "Purple::Certificate::Pool"; + break; + case PURPLE_SUBTYPE_UNKNOWN: + stash = "Purple::Unknown"; + break; + } return sv_2mortal(purple_perl_bless_object(arg, stash)); } -- cgit v1.2.1 From bfe7777f6e35902737491349cfd229bd0bc6d830 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 21:45:41 +0000 Subject: Replace the deprecated GtkSignalFunc and GTK_SIGNAL_FUNC with GCallback and G_CALLBACK. It shouldn't break API since they have the same signature, and most of our code was already using the G_CALLBACK cast anyway (proving that it doesn't cause any adverse effects). --- pidgin/gtkdocklet.c | 6 +++--- pidgin/gtkutils.c | 12 ++++++------ pidgin/gtkutils.h | 8 ++++---- pidgin/plugins/win32/transparency/win2ktrans.c | 24 ++++++++++++------------ 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pidgin/gtkdocklet.c b/pidgin/gtkdocklet.c index 32e2444aa7..571222e017 100644 --- a/pidgin/gtkdocklet.c +++ b/pidgin/gtkdocklet.c @@ -482,7 +482,7 @@ activate_saved_status_cb(GtkMenuItem *menuitem, gpointer user_data) } static GtkWidget * -new_menu_item_with_status_icon(GtkWidget *menu, const char *str, PurpleStatusPrimitive primitive, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod) +new_menu_item_with_status_icon(GtkWidget *menu, const char *str, PurpleStatusPrimitive primitive, GCallback cb, gpointer data, guint accel_key, guint accel_mods, char *mod) { GtkWidget *menuitem; GdkPixbuf *pixbuf; @@ -493,8 +493,8 @@ new_menu_item_with_status_icon(GtkWidget *menu, const char *str, PurpleStatusPri if (menu) gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - if (sf) - g_signal_connect(G_OBJECT(menuitem), "activate", sf, data); + if (cb) + g_signal_connect(G_OBJECT(menuitem), "activate", cb, data); pixbuf = pidgin_create_status_icon(primitive, menu, PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL); image = gtk_image_new_from_pixbuf(pixbuf); diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c index 3d780bc4a2..7277e0badd 100644 --- a/pidgin/gtkutils.c +++ b/pidgin/gtkutils.c @@ -358,7 +358,7 @@ GtkWidget *pidgin_new_item(GtkWidget *menu, const char *str) } GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, - GtkSignalFunc sf, gpointer data, gboolean checked) + GCallback cb, gpointer data, gboolean checked) { GtkWidget *menuitem; menuitem = gtk_check_menu_item_new_with_mnemonic(str); @@ -368,8 +368,8 @@ GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menuitem), checked); - if (sf) - g_signal_connect(G_OBJECT(menuitem), "activate", sf, data); + if (cb) + g_signal_connect(G_OBJECT(menuitem), "activate", cb, data); gtk_widget_show_all(menuitem); @@ -439,7 +439,7 @@ pidgin_pixbuf_button_from_stock(const char *text, const char *icon, } -GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str, const char *icon, GtkSignalFunc sf, gpointer data, guint accel_key, guint accel_mods, char *mod) +GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str, const char *icon, GCallback cb, gpointer data, guint accel_key, guint accel_mods, char *mod) { GtkWidget *menuitem; /* @@ -456,8 +456,8 @@ GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str, const ch if (menu) gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - if (sf) - g_signal_connect(G_OBJECT(menuitem), "activate", sf, data); + if (cb) + g_signal_connect(G_OBJECT(menuitem), "activate", cb, data); if (icon != NULL) { image = gtk_image_new_from_stock(icon, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); diff --git a/pidgin/gtkutils.h b/pidgin/gtkutils.h index fb03cec1d0..1101145340 100644 --- a/pidgin/gtkutils.h +++ b/pidgin/gtkutils.h @@ -233,14 +233,14 @@ GtkWidget *pidgin_new_item(GtkWidget *menu, const char *str); * * @param menu The menu to which to append the check menu item. * @param str The title to use for the newly created menu item. - * @param sf A function to call when the menu item is activated. + * @param cb A function to call when the menu item is activated. * @param data Data to pass to the signal function. * @param checked The initial state of the check item * * @return The newly created menu item. */ GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, - GtkSignalFunc sf, gpointer data, gboolean checked); + GCallback cb, gpointer data, gboolean checked); /** * Creates a menu item. @@ -249,7 +249,7 @@ GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, * @param str The title for the menu item. * @param icon An icon to place to the left of the menu item, * or @c NULL for no icon. - * @param sf A function to call when the menu item is activated. + * @param cb A function to call when the menu item is activated. * @param data Data to pass to the signal function. * @param accel_key Something. * @param accel_mods Something. @@ -258,7 +258,7 @@ GtkWidget *pidgin_new_check_item(GtkWidget *menu, const char *str, * @return The newly created menu item. */ GtkWidget *pidgin_new_item_from_stock(GtkWidget *menu, const char *str, - const char *icon, GtkSignalFunc sf, + const char *icon, GCallback cb, gpointer data, guint accel_key, guint accel_mods, char *mod); diff --git a/pidgin/plugins/win32/transparency/win2ktrans.c b/pidgin/plugins/win32/transparency/win2ktrans.c index bec1f1f3b4..9b31e7d3c1 100644 --- a/pidgin/plugins/win32/transparency/win2ktrans.c +++ b/pidgin/plugins/win32/transparency/win2ktrans.c @@ -182,7 +182,7 @@ static GtkWidget *wintrans_slider(GtkWidget *win) { /* On slider val change, update window's transparency level */ g_signal_connect(GTK_OBJECT(slider), "value-changed", - GTK_SIGNAL_FUNC(change_alpha), win); + G_CALLBACK(change_alpha), win); gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); @@ -563,7 +563,7 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { button = pidgin_prefs_checkbox(_("_IM window transparency"), OPT_WINTRANS_IM_ENABLED, imtransbox); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(update_convs_wintrans), + G_CALLBACK(update_convs_wintrans), (gpointer) OPT_WINTRANS_IM_ENABLED); trans_box = gtk_vbox_new(FALSE, 18); @@ -572,12 +572,12 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { gtk_widget_show(trans_box); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(pidgin_toggle_sensitive), trans_box); + G_CALLBACK(pidgin_toggle_sensitive), trans_box); button = pidgin_prefs_checkbox(_("_Show slider bar in IM window"), OPT_WINTRANS_IM_SLIDER, trans_box); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(update_convs_wintrans), + G_CALLBACK(update_convs_wintrans), (gpointer) OPT_WINTRANS_IM_SLIDER); button = pidgin_prefs_checkbox( @@ -587,7 +587,7 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { button = pidgin_prefs_checkbox(_("Always on top"), OPT_WINTRANS_IM_ONTOP, trans_box); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(update_convs_wintrans), + G_CALLBACK(update_convs_wintrans), (gpointer) OPT_WINTRANS_IM_ONTOP); gtk_box_pack_start(GTK_BOX(imtransbox), trans_box, FALSE, FALSE, 5); @@ -604,9 +604,9 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); g_signal_connect(GTK_OBJECT(slider), "value-changed", - GTK_SIGNAL_FUNC(alpha_change), NULL); + G_CALLBACK(alpha_change), NULL); g_signal_connect(GTK_OBJECT(slider), "focus-out-event", - GTK_SIGNAL_FUNC(alpha_pref_set_int), + G_CALLBACK(alpha_pref_set_int), (gpointer) OPT_WINTRANS_IM_ALPHA); gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); @@ -620,7 +620,7 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { button = pidgin_prefs_checkbox(_("_Buddy List window transparency"), OPT_WINTRANS_BL_ENABLED, bltransbox); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(set_blist_trans), + G_CALLBACK(set_blist_trans), (gpointer) OPT_WINTRANS_BL_ENABLED); trans_box = gtk_vbox_new(FALSE, 18); @@ -628,14 +628,14 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { gtk_widget_set_sensitive(GTK_WIDGET(trans_box), FALSE); gtk_widget_show(trans_box); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(pidgin_toggle_sensitive), trans_box); + G_CALLBACK(pidgin_toggle_sensitive), trans_box); button = pidgin_prefs_checkbox( _("Remove Buddy List window transparency on focus"), OPT_WINTRANS_BL_ONFOCUS, trans_box); button = pidgin_prefs_checkbox(_("Always on top"), OPT_WINTRANS_BL_ONTOP, trans_box); g_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(set_blist_trans), + G_CALLBACK(set_blist_trans), (gpointer) OPT_WINTRANS_BL_ONTOP); gtk_box_pack_start(GTK_BOX(bltransbox), trans_box, FALSE, FALSE, 5); @@ -652,9 +652,9 @@ static GtkWidget *get_config_frame(PurplePlugin *plugin) { gtk_widget_set_usize(GTK_WIDGET(slider), 200, -1); g_signal_connect(GTK_OBJECT(slider), "value-changed", - GTK_SIGNAL_FUNC(bl_alpha_change), NULL); + G_CALLBACK(bl_alpha_change), NULL); g_signal_connect(GTK_OBJECT(slider), "focus-out-event", - GTK_SIGNAL_FUNC(alpha_pref_set_int), + G_CALLBACK(alpha_pref_set_int), (gpointer) OPT_WINTRANS_BL_ALPHA); gtk_box_pack_start(GTK_BOX(hbox), slider, FALSE, TRUE, 5); -- cgit v1.2.1 From 0aa3466dea006eb1c549396d05183704315122af Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 22:11:10 +0000 Subject: The alignment in this file is quite odd. --- pidgin/plugins/contact_priority.c | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/pidgin/plugins/contact_priority.c b/pidgin/plugins/contact_priority.c index 2b3c7c66b9..e59566b481 100644 --- a/pidgin/plugins/contact_priority.c +++ b/pidgin/plugins/contact_priority.c @@ -31,7 +31,7 @@ static void select_account(GtkWidget *widget, PurpleAccount *account, gpointer data) { gtk_spin_button_set_value(GTK_SPIN_BUTTON(data), - (gdouble)purple_account_get_int(account, "score", 0)); + (gdouble)purple_account_get_int(account, "score", 0)); } static void @@ -142,18 +142,18 @@ get_config_frame(PurplePlugin *plugin) spin = gtk_spin_button_new((GtkAdjustment *)adj, 1, 0); optmenu = pidgin_account_option_menu_new(NULL, TRUE, - G_CALLBACK(select_account), - NULL, spin); + G_CALLBACK(select_account), + NULL, spin); gtk_box_pack_start(GTK_BOX(hbox), optmenu, FALSE, FALSE, 0); /* this is where we set up the spin button we made above */ account = g_object_get_data(G_OBJECT(gtk_menu_get_active(GTK_MENU(gtk_option_menu_get_menu(GTK_OPTION_MENU(optmenu))))), - "account"); + "account"); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), - (gdouble)purple_account_get_int(account, "score", 0)); + (gdouble)purple_account_get_int(account, "score", 0)); gtk_spin_button_set_adjustment(GTK_SPIN_BUTTON(spin), GTK_ADJUSTMENT(adj)); g_signal_connect(G_OBJECT(spin), "value-changed", - G_CALLBACK(account_update), optmenu); + G_CALLBACK(account_update), optmenu); gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); gtk_widget_show_all(ret); @@ -178,29 +178,29 @@ static PurplePluginInfo info = PURPLE_PLUGIN_MAGIC, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, - PURPLE_PLUGIN_STANDARD, /**< type */ + PURPLE_PLUGIN_STANDARD, /**< type */ PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ - 0, /**< flags */ - NULL, /**< dependencies */ - PURPLE_PRIORITY_DEFAULT, /**< priority */ + 0, /**< flags */ + NULL, /**< dependencies */ + PURPLE_PRIORITY_DEFAULT, /**< priority */ - CONTACT_PRIORITY_PLUGIN_ID, /**< id */ - N_("Contact Priority"), /**< name */ - DISPLAY_VERSION, /**< version */ + CONTACT_PRIORITY_PLUGIN_ID, /**< id */ + N_("Contact Priority"), /**< name */ + DISPLAY_VERSION, /**< version */ /**< summary */ N_("Allows for controlling the values associated with different buddy states."), /**< description */ N_("Allows for changing the point values of idle/away/offline states for buddies in contact priority computations."), - "Etan Reisner ", /**< author */ - PURPLE_WEBSITE, /**< homepage */ - - NULL, /**< load */ - NULL, /**< unload */ - NULL, /**< destroy */ - &ui_info, /**< ui_info */ - NULL, /**< extra_info */ - NULL, /**< prefs_info */ - NULL, /**< actions */ + "Etan Reisner ", /**< author */ + PURPLE_WEBSITE, /**< homepage */ + + NULL, /**< load */ + NULL, /**< unload */ + NULL, /**< destroy */ + &ui_info, /**< ui_info */ + NULL, /**< extra_info */ + NULL, /**< prefs_info */ + NULL, /**< actions */ /* padding */ NULL, -- cgit v1.2.1 From f41f25e5055e6add021254f73ec74011248a0e09 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 22:39:56 +0000 Subject: Oops, I must have been tired. I only replaced the first occurrence of these deprecated functions. I think I got them all now. --- pidgin/gtkblist.c | 2 +- pidgin/gtkimhtml.c | 6 +++--- pidgin/gtkimhtmltoolbar.c | 2 +- pidgin/gtkprefs.c | 2 +- pidgin/gtksmiley.c | 4 ++-- pidgin/gtkstatusbox.c | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pidgin/gtkblist.c b/pidgin/gtkblist.c index 2f7d21473c..a3bd6e53ea 100644 --- a/pidgin/gtkblist.c +++ b/pidgin/gtkblist.c @@ -6630,7 +6630,7 @@ static void pidgin_blist_destroy(PurpleBuddyList *list) purple_signals_disconnect_by_handle(gtkblist); if (gtkblist->headline_close) - gdk_pixbuf_unref(gtkblist->headline_close); + g_object_unref(G_OBJECT(gtkblist->headline_close)); gtk_widget_destroy(gtkblist->window); diff --git a/pidgin/gtkimhtml.c b/pidgin/gtkimhtml.c index a9b76944de..0e9e46056c 100644 --- a/pidgin/gtkimhtml.c +++ b/pidgin/gtkimhtml.c @@ -782,7 +782,7 @@ gtk_imhtml_expose_event (GtkWidget *widget, gc, TRUE, visible_rect.x, visible_rect.y, visible_rect.width, visible_rect.height); - gdk_gc_unref(gc); + g_object_unref(G_OBJECT(gc)); if (GTK_WIDGET_CLASS (parent_class)->expose_event) return (* GTK_WIDGET_CLASS (parent_class)->expose_event) @@ -873,7 +873,7 @@ gtk_imhtml_expose_event (GtkWidget *widget, !gtk_text_iter_begins_tag(&cur, NULL)); } - gdk_gc_unref(gc); + g_object_unref(G_OBJECT(gc)); if (GTK_WIDGET_CLASS (parent_class)->expose_event) return (* GTK_WIDGET_CLASS (parent_class)->expose_event) @@ -1451,7 +1451,7 @@ static void gtk_imhtml_class_init (GtkIMHtmlClass *klass) GObjectClass *gobject_class; object_class = (GtkObjectClass*) klass; gobject_class = (GObjectClass*) klass; - parent_class = gtk_type_class(GTK_TYPE_TEXT_VIEW); + parent_class = g_type_class_ref(GTK_TYPE_TEXT_VIEW); signals[URL_CLICKED] = g_signal_new("url_clicked", G_TYPE_FROM_CLASS(gobject_class), G_SIGNAL_RUN_FIRST, diff --git a/pidgin/gtkimhtmltoolbar.c b/pidgin/gtkimhtmltoolbar.c index 39e0ce475c..fcc0ac77c0 100644 --- a/pidgin/gtkimhtmltoolbar.c +++ b/pidgin/gtkimhtmltoolbar.c @@ -1198,7 +1198,7 @@ static void gtk_imhtmltoolbar_class_init (GtkIMHtmlToolbarClass *class) GObjectClass *gobject_class; object_class = (GtkObjectClass*) class; gobject_class = (GObjectClass*) class; - parent_class = gtk_type_class(GTK_TYPE_HBOX); + parent_class = g_type_class_ref(GTK_TYPE_HBOX); gobject_class->finalize = gtk_imhtmltoolbar_finalize; purple_prefs_add_none(PIDGIN_PREFS_ROOT "/conversations/toolbar"); diff --git a/pidgin/gtkprefs.c b/pidgin/gtkprefs.c index d024946aec..92316b14fa 100644 --- a/pidgin/gtkprefs.c +++ b/pidgin/gtkprefs.c @@ -702,7 +702,7 @@ prefs_themes_init() gtk_list_store_set(prefs_status_icon_themes, &iter, 0, pixbuf, 1, "(Default) - None\n" "The default Pidgin status icon theme", 2, "", -1); - gdk_pixbuf_unref(pixbuf); + g_object_unref(G_OBJECT(pixbuf)); } /* builds a theme combo box from a list store with colums: icon preview, markup, theme name */ diff --git a/pidgin/gtksmiley.c b/pidgin/gtksmiley.c index 38289f6d30..0c42ce2c29 100644 --- a/pidgin/gtksmiley.c +++ b/pidgin/gtksmiley.c @@ -344,7 +344,7 @@ static void do_add_file_cb(const char *filename, gpointer data) pixbuf = gdk_pixbuf_new_from_file_at_scale(filename, 64, 64, FALSE, NULL); gtk_image_set_from_pixbuf(GTK_IMAGE(s->smiley_image), pixbuf); if (pixbuf) - gdk_pixbuf_unref(pixbuf); + g_object_unref(G_OBJECT(pixbuf)); gtk_widget_grab_focus(s->smile); } @@ -459,7 +459,7 @@ void pidgin_smiley_editor_set_image(PidginSmiley *editor, GdkPixbuf *image) { if (editor->custom_pixbuf) - gdk_pixbuf_unref(editor->custom_pixbuf); + g_object_unref(G_OBJECT(editor->custom_pixbuf)); editor->custom_pixbuf = image ? g_object_ref(G_OBJECT(image)) : NULL; if (image) gtk_image_set_from_pixbuf(GTK_IMAGE(editor->smiley_image), image); diff --git a/pidgin/gtkstatusbox.c b/pidgin/gtkstatusbox.c index d59189f607..1a90309085 100644 --- a/pidgin/gtkstatusbox.c +++ b/pidgin/gtkstatusbox.c @@ -1202,7 +1202,7 @@ cache_pixbufs(PidginStatusBox *status_box) for (i = 0; i < G_N_ELEMENTS(status_box->connecting_pixbufs); i++) { if (status_box->connecting_pixbufs[i] != NULL) - gdk_pixbuf_unref(status_box->connecting_pixbufs[i]); + g_object_unref(G_OBJECT(status_box->connecting_pixbufs[i])); } status_box->connecting_index = 0; @@ -1225,7 +1225,7 @@ cache_pixbufs(PidginStatusBox *status_box) for (i = 0; i < G_N_ELEMENTS(status_box->typing_pixbufs); i++) { if (status_box->typing_pixbufs[i] != NULL) - gdk_pixbuf_unref(status_box->typing_pixbufs[i]); + g_object_unref(G_OBJECT(status_box->typing_pixbufs[i])); } status_box->typing_index = 0; -- cgit v1.2.1 From f581b6323c3e0aa744f19259a036b094ed5faa9b Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 18 Apr 2009 22:46:29 +0000 Subject: Replace gtk_timeout_remove with g_source_remove. --- pidgin/gtkimhtml.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pidgin/gtkimhtml.c b/pidgin/gtkimhtml.c index 0e9e46056c..7437362623 100644 --- a/pidgin/gtkimhtml.c +++ b/pidgin/gtkimhtml.c @@ -1384,7 +1384,7 @@ gtk_imhtml_finalize (GObject *object) gtk_widget_destroy(imhtml->tip_window); } if(imhtml->tip_timer) - gtk_timeout_remove(imhtml->tip_timer); + g_source_remove(imhtml->tip_timer); for(scalables = imhtml->scalables; scalables; scalables = scalables->next) { struct scalable_data *sd = scalables->data; -- cgit v1.2.1 From 9dffbeaf5d1c1648408c5f7b620bed8f3b24ab09 Mon Sep 17 00:00:00 2001 From: Daniel Atallah Date: Sun, 19 Apr 2009 15:35:28 +0000 Subject: Delete the Start Menu shortcut when uninstalling. Fixes #8985 --- pidgin/win32/nsis/pidgin-installer.nsi | 1 + 1 file changed, 1 insertion(+) diff --git a/pidgin/win32/nsis/pidgin-installer.nsi b/pidgin/win32/nsis/pidgin-installer.nsi index f39078a162..a3345cce2d 100644 --- a/pidgin/win32/nsis/pidgin-installer.nsi +++ b/pidgin/win32/nsis/pidgin-installer.nsi @@ -813,6 +813,7 @@ Section Uninstall ; Shortcuts.. Delete "$DESKTOP\Pidgin.lnk" + Delete "$SMPROGRAMS\Pidgin.lnk" Goto done -- cgit v1.2.1 From 0be938d4d78af7a7347fbb931336a71f9c348138 Mon Sep 17 00:00:00 2001 From: Mark Doliner Date: Mon, 20 Apr 2009 06:56:25 +0000 Subject: Document this callback function. Prompted by a question in #pidgin that I didn't know the answer to --- libpurple/plugin.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libpurple/plugin.h b/libpurple/plugin.h index 37fe91dd2b..0374418dfd 100644 --- a/libpurple/plugin.h +++ b/libpurple/plugin.h @@ -105,6 +105,20 @@ struct _PurplePluginInfo void *ui_info; /**< Used only by UI-specific plugins to build a preference screen with a custom UI */ void *extra_info; PurplePluginUiInfo *prefs_info; /**< Used by any plugin to display preferences. If #ui_info has been specified, this will be ignored. */ + + /** + * This callback has a different use depending on whether this + * plugin type is PURPLE_PLUGIN_STANDARD or PURPLE_PLUGIN_PROTOCOL. + * + * If PURPLE_PLUGIN_STANDARD then the list of actions will show up + * in the Tools menu, under a submenu with the name of the plugin. + * context will be NULL. + * + * If PURPLE_PLUGIN_PROTOCOL then the list of actions will show up + * in the Accounts menu, under a submenu with the name of the + * account. context will be set to the PurpleConnection for that + * account. This callback will only be called for online accounts. + */ GList *(*actions)(PurplePlugin *plugin, gpointer context); void (*_purple_reserved1)(void); -- cgit v1.2.1 From b55befcb39c366c09d551351c59f54e5d6ed6cb1 Mon Sep 17 00:00:00 2001 From: Ethan Blanton Date: Tue, 21 Apr 2009 22:17:18 +0000 Subject: Paul has been with us a while, and now he can't leave. --- AUTHORS | 2 +- pidgin/gtkdialogs.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 8d083836f1..87e52c34a5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -9,6 +9,7 @@ Current Developers: ------------------ Daniel 'datallah' Atallah - Developer +Paul 'darkrain42' Aurich - Developer John 'rekkanoryo' Bailey - Developer Ethan 'Paco-Paco' Blanton - Developer Thomas Butter - Developer @@ -35,7 +36,6 @@ Nathan 'faceprint' Walp - Developer Crazy Patch Writers: ------------------- -Paul 'darkrain42' Aurich Marcus 'malu' Lundblad Dennis 'EvilDennisR' Ristuccia Peter 'Fmoo' Ruibal diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c index 91b9f6daee..d17cbb4303 100644 --- a/pidgin/gtkdialogs.c +++ b/pidgin/gtkdialogs.c @@ -73,6 +73,7 @@ struct artist { /* Order: Alphabetical by Last Name */ static const struct developer developers[] = { {"Daniel 'datallah' Atallah", NULL, NULL}, + {"Paul 'darkrain42' Aurich", NULL, NULL }, {"John 'rekkanoryo' Bailey", N_("bug master"), "rekkanoryo@pidgin.im"}, {"Ethan 'Paco-Paco' Blanton", NULL, NULL}, {"Hylke Bons", N_("artist"), "h.bons@student.rug.nl"}, @@ -101,7 +102,6 @@ static const struct developer developers[] = { /* Order: Alphabetical by Last Name */ static const struct developer patch_writers[] = { - {"Paul 'darkrain42' Aurich", NULL, NULL }, {"Marcus 'malu' Lundblad", NULL, NULL}, {"Dennis 'EvilDennisR' Ristuccia", N_("Senior Contributor/QA"), NULL}, {"Peter 'Fmoo' Ruibal", NULL, NULL}, -- cgit v1.2.1