Mercurial > pidgin.yaz
annotate libpurple/server.c @ 32488:c200251415d3
merge of '20112abca39ed1b5d1b36c259a68f54bcc9af09b'
and 'd5ed69a6f4347d4c5debd460aea9b4fb6a9161e8'
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 02 Sep 2011 18:05:24 +0000 |
parents | 91e8402106c1 |
children | 0f94ec89f0bc fe20ff3d4e7a |
rev | line source |
---|---|
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /* |
15823 | 2 * purple |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
3 * |
15823 | 4 * Purple is the legal property of its developers, whose names are too numerous |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
6 * source distribution. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
7 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
12 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
17 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
19510
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
21 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
22 */ |
16753 | 23 |
24 /* This file is the fullcrap */ | |
25 | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
26 #include "internal.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
27 #include "blist.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
28 #include "conversation.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
29 #include "debug.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
30 #include "log.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
31 #include "notify.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
32 #include "prefs.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
33 #include "privacy.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
34 #include "prpl.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
35 #include "request.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
36 #include "signals.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
37 #include "server.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
38 #include "status.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
39 #include "util.h" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
40 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
41 #define SECS_BEFORE_RESENDING_AUTORESPONSE 600 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
42 #define SEX_BEFORE_RESENDING_AUTORESPONSE "Only after you're married" |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
43 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
44 unsigned int |
15823 | 45 serv_send_typing(PurpleConnection *gc, const char *name, PurpleTypingState state) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
46 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
47 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
48 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
49 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
50 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
51 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
52 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
53 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
54 if (prpl_info->send_typing) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
55 return prpl_info->send_typing(gc, name, state); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
56 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
57 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
58 return 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
59 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
60 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
61 static GSList *last_auto_responses = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
62 struct last_auto_response { |
15823 | 63 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
64 char name[80]; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
65 time_t sent; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
66 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
67 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
68 static gboolean |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
69 expire_last_auto_responses(gpointer data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
70 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
71 GSList *tmp, *cur; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
72 struct last_auto_response *lar; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
73 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
74 tmp = last_auto_responses; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
75 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
76 while (tmp) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
77 cur = tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
78 tmp = tmp->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
79 lar = (struct last_auto_response *)cur->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
80 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
81 if ((time(NULL) - lar->sent) > SECS_BEFORE_RESENDING_AUTORESPONSE) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
82 last_auto_responses = g_slist_remove(last_auto_responses, lar); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
83 g_free(lar); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
84 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
85 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
86 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
87 return FALSE; /* do not run again */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
88 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
89 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
90 static struct last_auto_response * |
15823 | 91 get_last_auto_response(PurpleConnection *gc, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
92 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
93 GSList *tmp; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
94 struct last_auto_response *lar; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
95 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
96 /* because we're modifying or creating a lar, schedule the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
97 * function to expire them as the pref dictates */ |
18006
f2d8658b3a86
merge of '62e9d17cd37551991c5040ce6ca48e6d7578dde3'
Richard Laager <rlaager@wiktel.com>
parents:
17071
diff
changeset
|
98 purple_timeout_add_seconds((SECS_BEFORE_RESENDING_AUTORESPONSE + 1), expire_last_auto_responses, NULL); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
99 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
100 tmp = last_auto_responses; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
101 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
102 while (tmp) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
103 lar = (struct last_auto_response *)tmp->data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
104 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
105 if (gc == lar->gc && !strncmp(name, lar->name, sizeof(lar->name))) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
106 return lar; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
107 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
108 tmp = tmp->next; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
109 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
110 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
111 lar = (struct last_auto_response *)g_new0(struct last_auto_response, 1); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
112 g_snprintf(lar->name, sizeof(lar->name), "%s", name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
113 lar->gc = gc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
114 lar->sent = 0; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
115 last_auto_responses = g_slist_prepend(last_auto_responses, lar); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
116 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
117 return lar; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
118 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
119 |
15823 | 120 int serv_send_im(PurpleConnection *gc, const char *name, const char *message, |
121 PurpleMessageFlags flags) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
122 { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
123 PurpleConversation *conv = NULL; |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
124 PurpleAccount *account = NULL; |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
125 PurplePresence *presence = NULL; |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
126 PurplePlugin *prpl = NULL; |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
127 PurplePluginProtocolInfo *prpl_info = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
128 int val = -EINVAL; |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
129 const gchar *auto_reply_pref = NULL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
130 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
131 g_return_val_if_fail(gc != NULL, val); |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
132 |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
133 prpl = purple_connection_get_prpl(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
134 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
135 g_return_val_if_fail(prpl != NULL, val); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
136 |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
137 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
138 |
15823 | 139 account = purple_connection_get_account(gc); |
140 presence = purple_account_get_presence(account); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
141 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
142 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
143 |
28650
dab0d17dc6c1
Minor cleanup. gc->prpl is guarranteed to be a PurplePlugin with
Mark Doliner <mark@kingant.net>
parents:
28344
diff
changeset
|
144 if (prpl_info->send_im) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
145 val = prpl_info->send_im(gc, name, message, flags); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
146 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
147 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
148 * XXX - If "only auto-reply when away & idle" is set, then shouldn't |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
149 * this only reset lar->sent if we're away AND idle? |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
150 */ |
16427
4999bbc52881
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@gmail.com>
parents:
15823
diff
changeset
|
151 auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
152 if((gc->flags & PURPLE_CONNECTION_AUTO_RESP) && |
15823 | 153 !purple_presence_is_available(presence) && |
25385
a6e3cb32cdd2
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <paul@darkrain42.org>
parents:
25381
diff
changeset
|
154 !purple_strequal(auto_reply_pref, "never")) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
155 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
156 struct last_auto_response *lar; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
157 lar = get_last_auto_response(gc, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
158 lar->sent = time(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
159 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
160 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
161 if(conv && purple_conv_im_get_send_typed_timeout(PURPLE_CONV_IM(conv))) |
15823 | 162 purple_conv_im_stop_send_typed_timeout(PURPLE_CONV_IM(conv)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
163 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
164 return val; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
165 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
166 |
15823 | 167 void serv_get_info(PurpleConnection *gc, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
168 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
169 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
170 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
171 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
172 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
173 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
174 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
175 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
176 if (prpl_info->get_info) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
177 prpl_info->get_info(gc, name); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
178 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
179 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
180 |
15823 | 181 void serv_set_info(PurpleConnection *gc, const char *info) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
182 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
183 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
184 PurplePluginProtocolInfo *prpl_info; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
185 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
186 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
187 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
188 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
189 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
190 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
191 if (prpl_info->set_info) { |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
192 account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
193 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
194 if (purple_signal_emit_return_1(purple_accounts_get_handle(), |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
195 "account-setting-info", account, info)) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
196 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
197 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
198 prpl_info->set_info(gc, info); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
199 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
200 purple_signal_emit(purple_accounts_get_handle(), |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
201 "account-set-info", account, info); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
202 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
203 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
204 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
205 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
206 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
207 * Set buddy's alias on server roster/list |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
208 */ |
15823 | 209 void serv_alias_buddy(PurpleBuddy *b) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
210 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
211 PurpleAccount *account; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
212 PurpleConnection *gc; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
213 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
214 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
215 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
216 if (b) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
217 account = purple_buddy_get_account(b); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
218 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
219 if (account) { |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
220 gc = purple_account_get_connection(account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
221 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
222 if (gc) { |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
223 prpl = purple_connection_get_prpl(gc); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
224 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
225 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
226 if (prpl_info->alias_buddy) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
227 prpl_info->alias_buddy(gc, |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
228 purple_buddy_get_name(b), |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
229 purple_buddy_get_local_buddy_alias(b)); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
230 } |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
231 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
232 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
233 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
234 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
235 void |
15823 | 236 serv_got_alias(PurpleConnection *gc, const char *who, const char *alias) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
237 { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
238 PurpleAccount *account; |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
239 GSList *buddies; |
15823 | 240 PurpleBuddy *b; |
241 PurpleConversation *conv; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
242 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
243 account = purple_connection_get_account(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
244 buddies = purple_find_buddies(account, who); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
245 |
16817
10f175539cfe
Change a few functions to free a linked list while iterating through
Mark Doliner <mark@kingant.net>
parents:
16753
diff
changeset
|
246 while (buddies != NULL) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
247 { |
25301
41485746e2b9
A couple of minor fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25299
diff
changeset
|
248 const char *server_alias; |
25299
5ebfa814b9e8
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24250
diff
changeset
|
249 |
16817
10f175539cfe
Change a few functions to free a linked list while iterating through
Mark Doliner <mark@kingant.net>
parents:
16753
diff
changeset
|
250 b = buddies->data; |
10f175539cfe
Change a few functions to free a linked list while iterating through
Mark Doliner <mark@kingant.net>
parents:
16753
diff
changeset
|
251 buddies = g_slist_delete_link(buddies, buddies); |
10f175539cfe
Change a few functions to free a linked list while iterating through
Mark Doliner <mark@kingant.net>
parents:
16753
diff
changeset
|
252 |
25301
41485746e2b9
A couple of minor fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25299
diff
changeset
|
253 server_alias = purple_buddy_get_server_alias(b); |
25385
a6e3cb32cdd2
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <paul@darkrain42.org>
parents:
25381
diff
changeset
|
254 |
a6e3cb32cdd2
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <paul@darkrain42.org>
parents:
25381
diff
changeset
|
255 if (purple_strequal(server_alias, alias)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
256 continue; |
16817
10f175539cfe
Change a few functions to free a linked list while iterating through
Mark Doliner <mark@kingant.net>
parents:
16753
diff
changeset
|
257 |
15823 | 258 purple_blist_server_alias_buddy(b, alias); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
259 |
25299
5ebfa814b9e8
Finish off the libpurple updates for the hidden blist structs
Gary Kramlich <grim@reaperworld.com>
parents:
24250
diff
changeset
|
260 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, purple_buddy_get_name(b), account); |
28913
43d5face5d9b
*** Plucked rev 212bd3655451599364562cabe553c5b7a19134ae (zacw@adiumx.com):
Paul Aurich <paul@darkrain42.org>
parents:
28784
diff
changeset
|
261 if (conv != NULL && alias != NULL && !purple_strequal(alias, who)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
262 { |
24250 | 263 char *escaped = g_markup_escape_text(who, -1); |
264 char *escaped2 = g_markup_escape_text(alias, -1); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
265 char *tmp = g_strdup_printf(_("%s is now known as %s.\n"), |
24250 | 266 escaped, escaped2); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
267 |
18028 | 268 purple_conversation_write(conv, NULL, tmp, |
269 PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NO_LINKIFY, | |
270 time(NULL)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
271 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
272 g_free(tmp); |
24250 | 273 g_free(escaped2); |
274 g_free(escaped); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
275 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
276 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
277 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
278 |
22332
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
279 void |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
280 purple_serv_got_private_alias(PurpleConnection *gc, const char *who, const char *alias) |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
281 { |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
282 PurpleAccount *account = NULL; |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
283 GSList *buddies = NULL; |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
284 PurpleBuddy *b = NULL; |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
285 |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
286 account = purple_connection_get_account(gc); |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
287 buddies = purple_find_buddies(account, who); |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
288 |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
289 while(buddies != NULL) { |
25301
41485746e2b9
A couple of minor fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25299
diff
changeset
|
290 const char *balias; |
22332
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
291 b = buddies->data; |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
292 |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
293 buddies = g_slist_delete_link(buddies, buddies); |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
294 |
25301
41485746e2b9
A couple of minor fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
25299
diff
changeset
|
295 balias = purple_buddy_get_local_buddy_alias(b); |
25385
a6e3cb32cdd2
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <paul@darkrain42.org>
parents:
25381
diff
changeset
|
296 if (purple_strequal(balias, alias)) |
22332
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
297 continue; |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
298 |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
299 purple_blist_alias_buddy(b, alias); |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
300 } |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
301 } |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
302 |
3232cc79fa51
This is part of a patch from felipec, also known as shx, that adds
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22262
diff
changeset
|
303 |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
304 PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code) |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
305 { |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
306 PurplePlugin *prpl; |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
307 PurpleAttentionType* attn; |
19463
3f6f84d11ce2
Change serv_send_attention() to call prpl_info->send_attention(), and
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19461
diff
changeset
|
308 GList *(*get_attention_types)(PurpleAccount *); |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
309 |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
310 g_return_val_if_fail(account != NULL, NULL); |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
311 |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
312 prpl = purple_find_prpl(purple_account_get_protocol_id(account)); |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
313 |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
314 /* Lookup the attention type in the protocol's attention_types list, if any. */ |
19711
437c320c8d29
Change attention_types to get_attention_types so this will compile.
Richard Laager <rlaager@wiktel.com>
parents:
19703
diff
changeset
|
315 get_attention_types = PURPLE_PLUGIN_PROTOCOL_INFO(prpl)->get_attention_types; |
19463
3f6f84d11ce2
Change serv_send_attention() to call prpl_info->send_attention(), and
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19461
diff
changeset
|
316 if (get_attention_types) { |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
317 GList *attention_types; |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
318 |
19463
3f6f84d11ce2
Change serv_send_attention() to call prpl_info->send_attention(), and
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19461
diff
changeset
|
319 attention_types = get_attention_types(account); |
19461
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
320 attn = (PurpleAttentionType *)g_list_nth_data(attention_types, type_code); |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
321 } else { |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
322 attn = NULL; |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
323 } |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
324 |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
325 return attn; |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
326 } |
1b5e786d137a
In the attention API, use the PURPLE_NOTIFY_MESSAGE flag to serv_got_im()
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
19440
diff
changeset
|
327 |
19426
6395c2e96bc2
Attention API for nudges/buzzes/zaps of various protocols.
Jeffrey Connelly <jaconnel@calpoly.edu>
parents:
18238
diff
changeset
|
328 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
329 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
330 * Move a buddy from one group to another on server. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
331 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
332 * Note: For now we'll not deal with changing gc's at the same time, but |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
333 * it should be possible. Probably needs to be done, someday. Although, |
15823 | 334 * the UI for that would be difficult, because groups are Purple-wide. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
335 */ |
15823 | 336 void serv_move_buddy(PurpleBuddy *b, PurpleGroup *og, PurpleGroup *ng) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
337 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
338 PurpleAccount *account; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
339 PurpleConnection *gc; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
340 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
341 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
342 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
343 g_return_if_fail(b != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
344 g_return_if_fail(og != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
345 g_return_if_fail(ng != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
346 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
347 account = purple_buddy_get_account(b); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
348 gc = purple_account_get_connection(account); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
349 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
350 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
351 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
352 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
353 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
354 if (prpl_info->group_buddy) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
355 prpl_info->group_buddy(gc, purple_buddy_get_name(b), |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
356 purple_group_get_name(og), |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
357 purple_group_get_name(ng)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
358 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
359 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
360 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
361 void serv_add_permit(PurpleConnection *gc, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
362 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
363 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
364 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
365 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
366 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
367 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
368 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
369 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
370 if (prpl_info->add_permit) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
371 prpl_info->add_permit(gc, name); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
372 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
373 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
374 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
375 void serv_add_deny(PurpleConnection *gc, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
376 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
377 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
378 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
379 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
380 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
381 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
382 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
383 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
384 if (prpl_info->add_deny) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
385 prpl_info->add_deny(gc, name); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
386 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
387 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
388 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
389 void serv_rem_permit(PurpleConnection *gc, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
390 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
391 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
392 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
393 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
394 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
395 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
396 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
397 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
398 if (prpl_info->rem_permit) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
399 prpl_info->rem_permit(gc, name); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
400 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
401 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
402 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
403 void serv_rem_deny(PurpleConnection *gc, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
404 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
405 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
406 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
407 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
408 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
409 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
410 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
411 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
412 if (prpl_info->rem_deny) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
413 prpl_info->rem_deny(gc, name); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
414 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
415 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
416 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
417 void serv_set_permit_deny(PurpleConnection *gc) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
418 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
419 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
420 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
421 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
422 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
423 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
424 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
425 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
426 /* |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
427 * this is called when either you import a buddy list, and make lots |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
428 * of changes that way, or when the user toggles the permit/deny mode |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
429 * in the prefs. In either case you should probably be resetting and |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
430 * resending the permit/deny info when you get this. |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
431 */ |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
432 if (prpl_info->set_permit_deny) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
433 prpl_info->set_permit_deny(gc); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
434 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
435 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
436 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
437 void serv_join_chat(PurpleConnection *gc, GHashTable *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
438 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
439 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
440 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
441 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
442 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
443 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
444 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
445 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
446 if (prpl_info->join_chat) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
447 prpl_info->join_chat(gc, data); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
448 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
449 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
450 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
451 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
452 void serv_reject_chat(PurpleConnection *gc, GHashTable *data) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
453 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
454 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
455 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
456 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
457 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
458 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
459 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
460 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
461 if (prpl_info->reject_chat) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
462 prpl_info->reject_chat(gc, data); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
463 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
464 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
465 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
466 void serv_chat_invite(PurpleConnection *gc, int id, const char *message, const char *name) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
467 { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
468 PurplePlugin *prpl = NULL; |
15823 | 469 PurplePluginProtocolInfo *prpl_info = NULL; |
470 PurpleConversation *conv; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
471 char *buffy = message && *message ? g_strdup(message) : NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
472 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
473 conv = purple_find_chat(gc, id); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
474 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
475 if(conv == NULL) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
476 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
477 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
478 if(gc) |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
479 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
480 |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
481 if(prpl) |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
482 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
483 |
15823 | 484 purple_signal_emit(purple_conversations_get_handle(), "chat-inviting-user", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
485 conv, name, &buffy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
486 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
487 if (prpl_info && prpl_info->chat_invite) |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
488 prpl_info->chat_invite(gc, id, buffy, name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
489 |
15823 | 490 purple_signal_emit(purple_conversations_get_handle(), "chat-invited-user", |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
491 conv, name, buffy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
492 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
493 g_free(buffy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
494 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
495 |
15823 | 496 /* Ya know, nothing uses this except purple_conversation_destroy(), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
497 * I think I'll just merge it into that later... |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
498 * Then again, something might want to use this, from outside prpl-land |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
499 * to leave a chat without destroying the conversation. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
500 */ |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
501 void serv_chat_leave(PurpleConnection *gc, int id) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
502 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
503 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
504 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
505 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
506 prpl = purple_connection_get_prpl(gc); |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
507 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
508 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
509 if (prpl_info->chat_leave) |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
510 prpl_info->chat_leave(gc, id); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
511 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
512 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
513 void serv_chat_whisper(PurpleConnection *gc, int id, const char *who, const char *message) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
514 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
515 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
516 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
517 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
518 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
519 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
520 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
521 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
522 if (prpl_info->chat_whisper) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
523 prpl_info->chat_whisper(gc, id, who, message); |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
524 } |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
525 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
526 |
15823 | 527 int serv_chat_send(PurpleConnection *gc, int id, const char *message, PurpleMessageFlags flags) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
528 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
529 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
530 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
531 |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
532 prpl = purple_connection_get_prpl(gc); |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
533 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
534 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
535 if (prpl_info->chat_send) |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
536 return prpl_info->chat_send(gc, id, message, flags); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
537 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
538 return -EINVAL; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
539 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
540 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
541 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
542 * woo. i'm actually going to comment this function. isn't that fun. make |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
543 * sure to follow along, kids |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
544 */ |
15823 | 545 void serv_got_im(PurpleConnection *gc, const char *who, const char *msg, |
546 PurpleMessageFlags flags, time_t mtime) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
547 { |
15823 | 548 PurpleAccount *account; |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
549 PurpleConversation *conv; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
550 char *message, *name; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
551 char *angel, *buffy; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
552 int plugin_return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
553 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
554 g_return_if_fail(msg != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
555 |
15823 | 556 account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
557 |
25866
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
558 /* |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
559 * XXX: Should we be setting this here, or relying on prpls to set it? |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
560 */ |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
561 flags |= PURPLE_MESSAGE_RECV; |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
562 |
28344
2ee64cfbbe2e
Check in a change that does dumb client-side blocking of people
Mark Doliner <mark@kingant.net>
parents:
27998
diff
changeset
|
563 if (!purple_privacy_check(account, who)) { |
2ee64cfbbe2e
Check in a change that does dumb client-side blocking of people
Mark Doliner <mark@kingant.net>
parents:
27998
diff
changeset
|
564 purple_signal_emit(purple_conversations_get_handle(), "blocked-im-msg", |
2ee64cfbbe2e
Check in a change that does dumb client-side blocking of people
Mark Doliner <mark@kingant.net>
parents:
27998
diff
changeset
|
565 account, who, msg, flags, (unsigned int)mtime); |
2ee64cfbbe2e
Check in a change that does dumb client-side blocking of people
Mark Doliner <mark@kingant.net>
parents:
27998
diff
changeset
|
566 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
567 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
568 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
569 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
570 * We should update the conversation window buttons and menu, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
571 * if it exists. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
572 */ |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
573 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, gc->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
574 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
575 /* |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
576 * Make copies of the message and the sender in case plugins want |
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
577 * to free these strings and replace them with a modifed version. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
578 */ |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
579 buffy = g_strdup(msg); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
580 angel = g_strdup(who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
581 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
582 plugin_return = GPOINTER_TO_INT( |
15823 | 583 purple_signal_emit_return_1(purple_conversations_get_handle(), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
584 "receiving-im-msg", gc->account, |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
585 &angel, &buffy, conv, &flags)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
586 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
587 if (!buffy || !angel || plugin_return) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
588 g_free(buffy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
589 g_free(angel); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
590 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
591 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
592 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
593 name = angel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
594 message = buffy; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
595 |
15823 | 596 purple_signal_emit(purple_conversations_get_handle(), "received-im-msg", gc->account, |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
597 name, message, conv, flags); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
598 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
599 /* search for conversation again in case it was created by received-im-msg handler */ |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
600 if (conv == NULL) |
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
601 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
602 |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
603 if (conv == NULL) |
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
604 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
605 |
22630
b398fe0a450e
Pass something useful as the 'who' parameter to purple_conv_im_write for
Will Thompson <will.thompson@collabora.co.uk>
parents:
22332
diff
changeset
|
606 purple_conv_im_write(PURPLE_CONV_IM(conv), name, message, flags, mtime); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
607 g_free(message); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
608 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
609 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
610 * Don't autorespond if: |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
611 * |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
612 * - it's not supported on this connection |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
613 * - we are available |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
614 * - or it's disabled |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
615 * - or we're not idle and the 'only auto respond if idle' pref |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
616 * is set |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
617 */ |
15823 | 618 if (gc->flags & PURPLE_CONNECTION_AUTO_RESP) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
619 { |
15823 | 620 PurplePresence *presence; |
621 PurpleStatus *status; | |
622 PurpleStatusType *status_type; | |
623 PurpleStatusPrimitive primitive; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
624 const gchar *auto_reply_pref; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
625 const char *away_msg = NULL; |
23382
8ea901db8e34
Mobile status are created as independant statuses, which cannot be the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23295
diff
changeset
|
626 gboolean mobile = FALSE; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
627 |
16427
4999bbc52881
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@gmail.com>
parents:
15823
diff
changeset
|
628 auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
629 |
15823 | 630 presence = purple_account_get_presence(account); |
631 status = purple_presence_get_active_status(presence); | |
632 status_type = purple_status_get_type(status); | |
633 primitive = purple_status_type_get_primitive(status_type); | |
23382
8ea901db8e34
Mobile status are created as independant statuses, which cannot be the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23295
diff
changeset
|
634 mobile = purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOBILE); |
15823 | 635 if ((primitive == PURPLE_STATUS_AVAILABLE) || |
636 (primitive == PURPLE_STATUS_INVISIBLE) || | |
23382
8ea901db8e34
Mobile status are created as independant statuses, which cannot be the
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
23295
diff
changeset
|
637 mobile || |
25385
a6e3cb32cdd2
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <paul@darkrain42.org>
parents:
25381
diff
changeset
|
638 purple_strequal(auto_reply_pref, "never") || |
a6e3cb32cdd2
Patch from Paul Aurich to add purple_strequal to help readability and simplicity of code. Ie, don't need to negate the value of strcmp, since this does a strcmp and does the negation for us
Paul Aurich <paul@darkrain42.org>
parents:
25381
diff
changeset
|
639 (!purple_presence_is_idle(presence) && purple_strequal(auto_reply_pref, "awayidle"))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
640 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
641 g_free(name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
642 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
643 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
644 |
15823 | 645 away_msg = purple_value_get_string( |
646 purple_status_get_attr_value(status, "message")); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
647 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
648 if ((away_msg != NULL) && (*away_msg != '\0')) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
649 struct last_auto_response *lar; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
650 time_t now = time(NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
651 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
652 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
653 * This used to be based on the conversation window. But um, if |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
654 * you went away, and someone sent you a message and got your |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
655 * auto-response, and then you closed the window, and then they |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
656 * sent you another one, they'd get the auto-response back too |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
657 * soon. Besides that, we need to keep track of this even if we've |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
658 * got a queue. So the rest of this block is just the auto-response, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
659 * if necessary. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
660 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
661 lar = get_last_auto_response(gc, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
662 if ((now - lar->sent) >= SECS_BEFORE_RESENDING_AUTORESPONSE) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
663 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
664 /* |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
665 * We don't want to send an autoresponse in response to the other user's |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
666 * autoresponse. We do, however, not want to then send one in response to the |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
667 * _next_ message, so we still set lar->sent to now. |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
668 */ |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
669 lar->sent = now; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
670 |
15823 | 671 if (!(flags & PURPLE_MESSAGE_AUTO_RESP)) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
672 { |
15823 | 673 serv_send_im(gc, name, away_msg, PURPLE_MESSAGE_AUTO_RESP); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
674 |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
675 purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, away_msg, |
15823 | 676 PURPLE_MESSAGE_SEND | PURPLE_MESSAGE_AUTO_RESP, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
677 mtime); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
678 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
679 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
680 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
681 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
682 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
683 g_free(name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
684 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
685 |
15823 | 686 void serv_got_typing(PurpleConnection *gc, const char *name, int timeout, |
687 PurpleTypingState state) { | |
688 PurpleConversation *conv; | |
689 PurpleConvIm *im = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
690 |
15823 | 691 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
692 if (conv != NULL) { |
15823 | 693 im = PURPLE_CONV_IM(conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
694 |
15823 | 695 purple_conv_im_set_typing_state(im, state); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
696 } else { |
17071
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
697 switch (state) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
698 { |
17071
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
699 case PURPLE_TYPING: |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
700 purple_signal_emit(purple_conversations_get_handle(), |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
701 "buddy-typing", gc->account, name); |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
702 break; |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
703 case PURPLE_TYPED: |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
704 purple_signal_emit(purple_conversations_get_handle(), |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
705 "buddy-typed", gc->account, name); |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
706 break; |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
707 case PURPLE_NOT_TYPING: |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
708 purple_signal_emit(purple_conversations_get_handle(), |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
709 "buddy-typing-stopped", gc->account, name); |
bfdd46b72027
Emit the buddy-typing-stopped signal even if we don't have a conversation, and use swtich rather than if
Evan Schoenberg <evan.s@dreskin.net>
parents:
16817
diff
changeset
|
710 break; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
711 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
712 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
713 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
714 if (conv != NULL && timeout > 0) |
15823 | 715 purple_conv_im_start_typing_timeout(im, timeout); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
716 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
717 |
15823 | 718 void serv_got_typing_stopped(PurpleConnection *gc, const char *name) { |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
719 |
15823 | 720 PurpleConversation *conv; |
721 PurpleConvIm *im; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
722 |
15823 | 723 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
724 if (conv != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
725 { |
15823 | 726 im = PURPLE_CONV_IM(conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
727 |
15823 | 728 if (im->typing_state == PURPLE_NOT_TYPING) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
729 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
730 |
15823 | 731 purple_conv_im_stop_typing_timeout(im); |
732 purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
733 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
734 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
735 { |
15823 | 736 purple_signal_emit(purple_conversations_get_handle(), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
737 "buddy-typing-stopped", gc->account, name); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
738 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
739 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
740 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
741 struct chat_invite_data { |
15823 | 742 PurpleConnection *gc; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
743 GHashTable *components; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
744 }; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
745 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
746 static void chat_invite_data_free(struct chat_invite_data *cid) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
747 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
748 if (cid->components) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
749 g_hash_table_destroy(cid->components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
750 g_free(cid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
751 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
752 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
753 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
754 static void chat_invite_reject(struct chat_invite_data *cid) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
755 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
756 serv_reject_chat(cid->gc, cid->components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
757 chat_invite_data_free(cid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
758 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
759 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
760 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
761 static void chat_invite_accept(struct chat_invite_data *cid) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
762 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
763 serv_join_chat(cid->gc, cid->components); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
764 chat_invite_data_free(cid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
765 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
766 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
767 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
768 |
15823 | 769 void serv_got_chat_invite(PurpleConnection *gc, const char *name, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
770 const char *who, const char *message, GHashTable *data) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
771 { |
15823 | 772 PurpleAccount *account; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
773 char buf2[BUF_LONG]; |
24821
75690a3eeee0
Fix a potential leak "KuSh" discovered using "cppcheck". Fixes #7863.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
24362
diff
changeset
|
774 struct chat_invite_data *cid; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
775 int plugin_return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
776 |
28784
6ef2cfa15ae7
Make sure the room name and the buddy who invited you are non-null
Mark Doliner <mark@kingant.net>
parents:
28783
diff
changeset
|
777 g_return_if_fail(name != NULL); |
6ef2cfa15ae7
Make sure the room name and the buddy who invited you are non-null
Mark Doliner <mark@kingant.net>
parents:
28783
diff
changeset
|
778 g_return_if_fail(who != NULL); |
6ef2cfa15ae7
Make sure the room name and the buddy who invited you are non-null
Mark Doliner <mark@kingant.net>
parents:
28783
diff
changeset
|
779 |
15823 | 780 account = purple_connection_get_account(gc); |
28783
a50e21712f1d
Call purple_privacy_check() even when the protocol has some privacy
Mark Doliner <mark@kingant.net>
parents:
28651
diff
changeset
|
781 if (!purple_privacy_check(account, who)) { |
a50e21712f1d
Call purple_privacy_check() even when the protocol has some privacy
Mark Doliner <mark@kingant.net>
parents:
28651
diff
changeset
|
782 purple_signal_emit(purple_conversations_get_handle(), "chat-invite-blocked", |
a50e21712f1d
Call purple_privacy_check() even when the protocol has some privacy
Mark Doliner <mark@kingant.net>
parents:
28651
diff
changeset
|
783 account, who, name, message, data); |
a50e21712f1d
Call purple_privacy_check() even when the protocol has some privacy
Mark Doliner <mark@kingant.net>
parents:
28651
diff
changeset
|
784 return; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
785 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
786 |
24821
75690a3eeee0
Fix a potential leak "KuSh" discovered using "cppcheck". Fixes #7863.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
24362
diff
changeset
|
787 cid = g_new0(struct chat_invite_data, 1); |
75690a3eeee0
Fix a potential leak "KuSh" discovered using "cppcheck". Fixes #7863.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
24362
diff
changeset
|
788 |
15823 | 789 plugin_return = GPOINTER_TO_INT(purple_signal_emit_return_1( |
790 purple_conversations_get_handle(), | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
791 "chat-invited", account, who, name, message, data)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
792 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
793 cid->gc = gc; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
794 cid->components = data; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
795 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
796 if (plugin_return == 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
797 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
798 if (message != NULL) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
799 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
800 g_snprintf(buf2, sizeof(buf2), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
801 _("%s has invited %s to the chat room %s:\n%s"), |
15823 | 802 who, purple_account_get_username(account), name, message); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
803 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
804 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
805 g_snprintf(buf2, sizeof(buf2), |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
806 _("%s has invited %s to the chat room %s\n"), |
15823 | 807 who, purple_account_get_username(account), name); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
808 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
809 |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
810 purple_request_accept_cancel(gc, NULL, _("Accept chat invitation?"), buf2, |
16442
08db93bbd798
Added account, who, and conversation parameters to the request API calls, and updated all code to match. I can't compile the Perl module, so I'd appreciate it if someone who knows it would verify that this doesn't break Perl.
Evan Schoenberg <evan.s@dreskin.net>
parents:
16427
diff
changeset
|
811 PURPLE_DEFAULT_ACTION_NONE, account, who, NULL, |
21099
51cf02dbdb0e
disapproval of revision 'c484d979c4fda4433a9633ff8b69bd8a395c9479'
Richard Laager <rlaager@wiktel.com>
parents:
21095
diff
changeset
|
812 cid, G_CALLBACK(chat_invite_accept), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
813 G_CALLBACK(chat_invite_reject)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
814 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
815 else if (plugin_return > 0) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
816 chat_invite_accept(cid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
817 else |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
818 chat_invite_reject(cid); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
819 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
820 |
15823 | 821 PurpleConversation *serv_got_joined_chat(PurpleConnection *gc, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
822 int id, const char *name) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
823 { |
15823 | 824 PurpleConversation *conv; |
825 PurpleConvChat *chat; | |
826 PurpleAccount *account; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
827 |
15823 | 828 account = purple_connection_get_account(gc); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
829 |
27613
32d2caa6a777
Commit the QQ null chat room name crash on the *right* branch.
Paul Aurich <paul@darkrain42.org>
parents:
27219
diff
changeset
|
830 g_return_val_if_fail(account != NULL, NULL); |
32d2caa6a777
Commit the QQ null chat room name crash on the *right* branch.
Paul Aurich <paul@darkrain42.org>
parents:
27219
diff
changeset
|
831 g_return_val_if_fail(name != NULL, NULL); |
32d2caa6a777
Commit the QQ null chat room name crash on the *right* branch.
Paul Aurich <paul@darkrain42.org>
parents:
27219
diff
changeset
|
832 |
15823 | 833 conv = purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, name); |
27613
32d2caa6a777
Commit the QQ null chat room name crash on the *right* branch.
Paul Aurich <paul@darkrain42.org>
parents:
27219
diff
changeset
|
834 g_return_val_if_fail(conv != NULL, NULL); |
32d2caa6a777
Commit the QQ null chat room name crash on the *right* branch.
Paul Aurich <paul@darkrain42.org>
parents:
27219
diff
changeset
|
835 |
15823 | 836 chat = PURPLE_CONV_CHAT(conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
837 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
838 if (!g_slist_find(gc->buddy_chats, conv)) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
839 gc->buddy_chats = g_slist_append(gc->buddy_chats, conv); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
840 |
15823 | 841 purple_conv_chat_set_id(chat, id); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
842 |
15823 | 843 purple_signal_emit(purple_conversations_get_handle(), "chat-joined", conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
844 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
845 return conv; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
846 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
847 |
15823 | 848 void serv_got_chat_left(PurpleConnection *g, int id) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
849 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
850 GSList *bcs; |
15823 | 851 PurpleConversation *conv = NULL; |
852 PurpleConvChat *chat = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
853 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
854 for (bcs = g->buddy_chats; bcs != NULL; bcs = bcs->next) { |
15823 | 855 conv = (PurpleConversation *)bcs->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
856 |
15823 | 857 chat = PURPLE_CONV_CHAT(conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
858 |
15823 | 859 if (purple_conv_chat_get_id(chat) == id) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
860 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
861 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
862 conv = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
863 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
864 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
865 if (!conv) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
866 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
867 |
15823 | 868 purple_debug(PURPLE_DEBUG_INFO, "server", "Leaving room: %s\n", |
869 purple_conversation_get_name(conv)); | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
870 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
871 g->buddy_chats = g_slist_remove(g->buddy_chats, conv); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
872 |
15823 | 873 purple_conv_chat_left(PURPLE_CONV_CHAT(conv)); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
874 |
15823 | 875 purple_signal_emit(purple_conversations_get_handle(), "chat-left", conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
876 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
877 |
23105
591ef3693345
As discussed on the devel list, purple_serv_got_join_chat_failed() and the
Evan Schoenberg <evan.s@dreskin.net>
parents:
22891
diff
changeset
|
878 void purple_serv_got_join_chat_failed(PurpleConnection *gc, GHashTable *data) |
22891
43233dc1d40b
applied changes from 4c5110037671f84e3e775214c32692b5b23c11e1
Evan Schoenberg <evan.s@dreskin.net>
parents:
22753
diff
changeset
|
879 { |
43233dc1d40b
applied changes from 4c5110037671f84e3e775214c32692b5b23c11e1
Evan Schoenberg <evan.s@dreskin.net>
parents:
22753
diff
changeset
|
880 purple_signal_emit(purple_conversations_get_handle(), "chat-join-failed", |
23105
591ef3693345
As discussed on the devel list, purple_serv_got_join_chat_failed() and the
Evan Schoenberg <evan.s@dreskin.net>
parents:
22891
diff
changeset
|
881 gc, data); |
22891
43233dc1d40b
applied changes from 4c5110037671f84e3e775214c32692b5b23c11e1
Evan Schoenberg <evan.s@dreskin.net>
parents:
22753
diff
changeset
|
882 } |
43233dc1d40b
applied changes from 4c5110037671f84e3e775214c32692b5b23c11e1
Evan Schoenberg <evan.s@dreskin.net>
parents:
22753
diff
changeset
|
883 |
15823 | 884 void serv_got_chat_in(PurpleConnection *g, int id, const char *who, |
885 PurpleMessageFlags flags, const char *message, time_t mtime) | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
886 { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
887 GSList *bcs; |
15823 | 888 PurpleConversation *conv = NULL; |
889 PurpleConvChat *chat = NULL; | |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
890 char *buffy, *angel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
891 int plugin_return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
892 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
893 g_return_if_fail(who != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
894 g_return_if_fail(message != NULL); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
895 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
896 for (bcs = g->buddy_chats; bcs != NULL; bcs = bcs->next) { |
15823 | 897 conv = (PurpleConversation *)bcs->data; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
898 |
15823 | 899 chat = PURPLE_CONV_CHAT(conv); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
900 |
15823 | 901 if (purple_conv_chat_get_id(chat) == id) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
902 break; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
903 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
904 conv = NULL; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
905 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
906 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
907 if (!conv) |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
908 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
909 |
25866
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
910 /* Did I send the message? */ |
26803
1ba4bbd3b0cd
Chat's nick is normalized. So normalize before comparing with it.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
26585
diff
changeset
|
911 if (purple_strequal(purple_conv_chat_get_nick(chat), |
25866
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
912 purple_normalize(purple_conversation_get_account(conv), who))) { |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
913 flags |= PURPLE_MESSAGE_SEND; |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
914 flags &= ~PURPLE_MESSAGE_RECV; /* Just in case some prpl sets it! */ |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
915 } else { |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
916 flags |= PURPLE_MESSAGE_RECV; |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
917 } |
1cf0b4f71d16
*** Plucked rev 0257ab6e (wabz@pidgin.im):
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24821
diff
changeset
|
918 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
919 /* |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
920 * Make copies of the message and the sender in case plugins want |
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
921 * to free these strings and replace them with a modifed version. |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
922 */ |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
923 buffy = g_strdup(message); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
924 angel = g_strdup(who); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
925 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
926 plugin_return = GPOINTER_TO_INT( |
15823 | 927 purple_signal_emit_return_1(purple_conversations_get_handle(), |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
928 "receiving-chat-msg", g->account, |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
929 &angel, &buffy, conv, &flags)); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
930 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
931 if (!buffy || !angel || plugin_return) { |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
932 g_free(buffy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
933 g_free(angel); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
934 return; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
935 } |
20569
7393ee28c819
Richard pointed out that this was dumb in an email to the devel
Mark Doliner <mark@kingant.net>
parents:
20063
diff
changeset
|
936 |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
937 who = angel; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
938 message = buffy; |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
939 |
15823 | 940 purple_signal_emit(purple_conversations_get_handle(), "received-chat-msg", g->account, |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
941 who, message, conv, flags); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
942 |
15823 | 943 purple_conv_chat_write(chat, who, message, flags, mtime); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
944 |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
945 g_free(angel); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
946 g_free(buffy); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
947 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
948 |
15823 | 949 void serv_send_file(PurpleConnection *gc, const char *who, const char *file) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
950 { |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
951 PurplePlugin *prpl; |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
952 PurplePluginProtocolInfo *prpl_info; |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
953 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
954 if (gc) { |
22262
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
955 prpl = purple_connection_get_prpl(gc); |
edca47ee06c5
Kill off gc->prpl in the core everywhere but connection.c (when the struct
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
21099
diff
changeset
|
956 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
957 |
28651
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
958 if (prpl_info->send_file && |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
959 (!prpl_info->can_receive_file |
e8cd57c14643
Change the way we handle these if checks to hopefully be a little
Mark Doliner <mark@kingant.net>
parents:
28650
diff
changeset
|
960 || prpl_info->can_receive_file(gc, who))) |
15374
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
961 prpl_info->send_file(gc, who, file); |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
962 } |
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
963 } |