Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
22582
838faa931042
Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17468
diff
changeset
|
1 | #ifndef DBUS_API_SUBJECT_TO_CHANGE |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
2 | #define DBUS_API_SUBJECT_TO_CHANGE |
|
22582
838faa931042
Avoid a compile warning when building with NetworkManager support because
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
17468
diff
changeset
|
3 | #endif |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
4 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
5 | #include <dbus/dbus-glib.h> |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
6 | #include <stdio.h> |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
7 | #include <stdlib.h> |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
8 | |
| 15884 | 9 | #include "dbus-purple.h" |
|
17468
4ce91d523015
Yet another change from o_sukhodolsky:
Richard Laager <rlaager@pidgin.im>
parents:
15987
diff
changeset
|
10 | #include "purple-client.h" |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
11 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
12 | static DBusGConnection *bus; |
| 15884 | 13 | static DBusGProxy *purple_proxy; |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
14 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
15 | static GList *garray_int_to_glist(GArray *array) |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
16 | { |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
17 | GList *list = NULL; |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
18 | int i; |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
19 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
20 | for (i = 0; i < array->len; i++) |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
21 | list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
22 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
23 | g_array_free(array, TRUE); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
24 | return list; |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
25 | } |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
26 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
27 | static GSList *garray_int_to_gslist(GArray *array) |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
28 | { |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
29 | GSList *list = NULL; |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
30 | int i; |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
31 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
32 | for (i = 0; i < array->len; i++) |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
33 | list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
34 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
35 | g_array_free(array, TRUE); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
36 | return list; |
|
11277
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
37 | } |
|
ab3c0b6c5ca5
[gaim-migrate @ 13467]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11241
diff
changeset
|
38 | |
| 15884 | 39 | #include "purple-client-bindings.c" |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
40 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
41 | static void lose(const char *fmt, ...) G_GNUC_NORETURN G_GNUC_PRINTF (1, 2); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
42 | static void lose_gerror(const char *prefix, GError *error) G_GNUC_NORETURN; |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
43 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
44 | static void |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
45 | lose(const char *str, ...) |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
46 | { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
47 | va_list args; |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
48 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
49 | va_start(args, str); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
50 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
51 | vfprintf(stderr, str, args); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
52 | fputc('\n', stderr); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
53 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
54 | va_end(args); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
55 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
56 | exit(1); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
57 | } |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
58 | |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
59 | static void |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
60 | lose_gerror(const char *prefix, GError *error) |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
61 | { |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
62 | lose("%s: %s", prefix, error->message); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
63 | } |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
64 | |
| 15884 | 65 | void purple_init(void) |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
66 | { |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
67 | GError *error = NULL; |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
68 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
69 | g_type_init (); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
70 | |
|
14097
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
71 | bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
72 | if (!bus) |
|
0c340861ab79
[gaim-migrate @ 16638]
Mark Doliner <markdoliner@pidgin.im>
parents:
11277
diff
changeset
|
73 | lose_gerror ("Couldn't connect to session bus", error); |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
74 | |
| 15884 | 75 | purple_proxy = dbus_g_proxy_new_for_name (bus, |
| 76 | DBUS_SERVICE_PURPLE, | |
| 77 | DBUS_PATH_PURPLE, | |
| 78 | DBUS_INTERFACE_PURPLE); | |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
79 | |
| 15884 | 80 | if (!purple_proxy) |
| 81 | lose_gerror ("Couldn't connect to the Purple Service", error); | |
|
11241
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
82 | } |
|
f62a71823fc3
[gaim-migrate @ 13404]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
83 |