Mercurial > pidgin.yaz
annotate libpurple/example/nullclient.c @ 30018:7ed0ddbdd2a8
Use an inline RC style to get rid of some other padding to make the small
buttons even smaller, as suggested by Paradox on trac, and nicked from
nautilus.
Refs #8727.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 20 Mar 2010 06:22:53 +0000 |
parents | 3015b7c2bec3 |
children | a8cc50c2279f |
rev | line source |
---|---|
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
1 /* |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
2 * pidgin |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
3 * |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
4 * Pidgin is the legal property of its developers, whose names are too numerous |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
6 * source distribution. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
7 * |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
11 * (at your option) any later version. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
12 * |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
16 * GNU General Public License for more details. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
17 * |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@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:
19567
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
21 * |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
22 */ |
18210
b8572b937c09
#include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents:
18013
diff
changeset
|
23 |
22151
68f8adb67470
'make -f Makefile.oot' will successfully compile the nullclient out-of-tree.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22067
diff
changeset
|
24 #include "purple.h" |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
25 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
26 #include <glib.h> |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
27 |
22151
68f8adb67470
'make -f Makefile.oot' will successfully compile the nullclient out-of-tree.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
22067
diff
changeset
|
28 #include <signal.h> |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
29 #include <string.h> |
29883
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
30 #ifndef _WIN32 |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
31 #include <unistd.h> |
29883
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
32 #else |
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
33 #include "win32/win32dep.h" |
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
34 #endif |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
35 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
36 #include "defines.h" |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
37 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
38 /** |
15823 | 39 * The following eventloop functions are used in both pidgin and purple-text. If your |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
40 * application uses glib mainloop, you can safely use this verbatim. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
41 */ |
15823 | 42 #define PURPLE_GLIB_READ_COND (G_IO_IN | G_IO_HUP | G_IO_ERR) |
43 #define PURPLE_GLIB_WRITE_COND (G_IO_OUT | G_IO_HUP | G_IO_ERR | G_IO_NVAL) | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
44 |
15823 | 45 typedef struct _PurpleGLibIOClosure { |
46 PurpleInputFunction function; | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
47 guint result; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
48 gpointer data; |
15823 | 49 } PurpleGLibIOClosure; |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
50 |
15823 | 51 static void purple_glib_io_destroy(gpointer data) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
52 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
53 g_free(data); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
54 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
55 |
15823 | 56 static gboolean purple_glib_io_invoke(GIOChannel *source, GIOCondition condition, gpointer data) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
57 { |
15823 | 58 PurpleGLibIOClosure *closure = data; |
59 PurpleInputCondition purple_cond = 0; | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
60 |
15823 | 61 if (condition & PURPLE_GLIB_READ_COND) |
62 purple_cond |= PURPLE_INPUT_READ; | |
63 if (condition & PURPLE_GLIB_WRITE_COND) | |
64 purple_cond |= PURPLE_INPUT_WRITE; | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
65 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
66 closure->function(closure->data, g_io_channel_unix_get_fd(source), |
15823 | 67 purple_cond); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
68 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
69 return TRUE; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
70 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
71 |
15823 | 72 static guint glib_input_add(gint fd, PurpleInputCondition condition, PurpleInputFunction function, |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
73 gpointer data) |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
74 { |
15823 | 75 PurpleGLibIOClosure *closure = g_new0(PurpleGLibIOClosure, 1); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
76 GIOChannel *channel; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
77 GIOCondition cond = 0; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
78 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
79 closure->function = function; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
80 closure->data = data; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
81 |
15823 | 82 if (condition & PURPLE_INPUT_READ) |
83 cond |= PURPLE_GLIB_READ_COND; | |
84 if (condition & PURPLE_INPUT_WRITE) | |
85 cond |= PURPLE_GLIB_WRITE_COND; | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
86 |
29883
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
87 #if defined _WIN32 && !defined WINPIDGIN_USE_GLIB_IO_CHANNEL |
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
88 channel = wpurple_g_io_channel_win32_new_socket(fd); |
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
89 #else |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
90 channel = g_io_channel_unix_new(fd); |
29883
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
91 #endif |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
92 closure->result = g_io_add_watch_full(channel, G_PRIORITY_DEFAULT, cond, |
15823 | 93 purple_glib_io_invoke, closure, purple_glib_io_destroy); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
94 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
95 g_io_channel_unref(channel); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
96 return closure->result; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
97 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
98 |
15823 | 99 static PurpleEventLoopUiOps glib_eventloops = |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
100 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
101 g_timeout_add, |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
102 g_source_remove, |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
103 glib_input_add, |
15694
cd02b303b81f
Fix the following compiler warning:
Mark Doliner <mark@kingant.net>
parents:
15618
diff
changeset
|
104 g_source_remove, |
16676
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
105 NULL, |
18013
58e82c3b697e
It's GLIB_CHECK_VERSION, not GLIB_VERSION_CHECK.
Richard Laager <rlaager@wiktel.com>
parents:
18009
diff
changeset
|
106 #if GLIB_CHECK_VERSION(2,14,0) |
18009
9ffa9af32854
Wire in g_timeout_add_seconds for Finch and nullclient as well.
Richard Laager <rlaager@wiktel.com>
parents:
17093
diff
changeset
|
107 g_timeout_add_seconds, |
9ffa9af32854
Wire in g_timeout_add_seconds for Finch and nullclient as well.
Richard Laager <rlaager@wiktel.com>
parents:
17093
diff
changeset
|
108 #else |
9ffa9af32854
Wire in g_timeout_add_seconds for Finch and nullclient as well.
Richard Laager <rlaager@wiktel.com>
parents:
17093
diff
changeset
|
109 NULL, |
9ffa9af32854
Wire in g_timeout_add_seconds for Finch and nullclient as well.
Richard Laager <rlaager@wiktel.com>
parents:
17093
diff
changeset
|
110 #endif |
16676
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
111 |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
112 /* padding */ |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
113 NULL, |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
114 NULL, |
15694
cd02b303b81f
Fix the following compiler warning:
Mark Doliner <mark@kingant.net>
parents:
15618
diff
changeset
|
115 NULL |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
116 }; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
117 /*** End of the eventloop functions. ***/ |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
118 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
119 /*** Conversation uiops ***/ |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
120 static void |
15823 | 121 null_write_conv(PurpleConversation *conv, const char *who, const char *alias, |
122 const char *message, PurpleMessageFlags flags, time_t mtime) | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
123 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
124 const char *name; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
125 if (alias && *alias) |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
126 name = alias; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
127 else if (who && *who) |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
128 name = who; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
129 else |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
130 name = NULL; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
131 |
15823 | 132 printf("(%s) %s %s: %s\n", purple_conversation_get_name(conv), |
133 purple_utf8_strftime("(%H:%M:%S)", localtime(&mtime)), | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
134 name, message); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
135 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
136 |
15823 | 137 static PurpleConversationUiOps null_conv_uiops = |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
138 { |
17093
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
139 NULL, /* create_conversation */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
140 NULL, /* destroy_conversation */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
141 NULL, /* write_chat */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
142 NULL, /* write_im */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
143 null_write_conv, /* write_conv */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
144 NULL, /* chat_add_users */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
145 NULL, /* chat_rename_user */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
146 NULL, /* chat_remove_users */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
147 NULL, /* chat_update_user */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
148 NULL, /* present */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
149 NULL, /* has_focus */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
150 NULL, /* custom_smiley_add */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
151 NULL, /* custom_smiley_write */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
152 NULL, /* custom_smiley_close */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
153 NULL, /* send_confirm */ |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
154 NULL, |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
155 NULL, |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
156 NULL, |
4b65a67d23b8
Replace some C99 struct syntax.
Richard Laager <rlaager@wiktel.com>
parents:
16676
diff
changeset
|
157 NULL |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
158 }; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
159 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
160 static void |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21060
diff
changeset
|
161 null_ui_init(void) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
162 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
163 /** |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
164 * This should initialize the UI components for all the modules. Here we |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
165 * just initialize the UI for conversations. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
166 */ |
15823 | 167 purple_conversations_set_ui_ops(&null_conv_uiops); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
168 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
169 |
15823 | 170 static PurpleCoreUiOps null_core_uiops = |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
171 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
172 NULL, |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
173 NULL, |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
174 null_ui_init, |
16676
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
175 NULL, |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
176 |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
177 /* padding */ |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
178 NULL, |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
179 NULL, |
07cf49a0f404
I _think_ this is it for libpurple's padding...
Gary Kramlich <grim@reaperworld.com>
parents:
16098
diff
changeset
|
180 NULL, |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
181 NULL |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
182 }; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
183 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
184 static void |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21060
diff
changeset
|
185 init_libpurple(void) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
186 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
187 /* Set a custom user directory (optional) */ |
15823 | 188 purple_util_set_user_dir(CUSTOM_USER_DIRECTORY); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
189 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
190 /* We do not want any debugging for now to keep the noise to a minimum. */ |
19547
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
191 purple_debug_set_enabled(FALSE); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
192 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
193 /* Set the core-uiops, which is used to |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
194 * - initialize the ui specific preferences. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
195 * - initialize the debug ui. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
196 * - initialize the ui components for all the modules. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
197 * - uninitialize the ui components for all the modules when the core terminates. |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
198 */ |
15823 | 199 purple_core_set_ui_ops(&null_core_uiops); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
200 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
201 /* Set the uiops for the eventloop. If your client is glib-based, you can safely |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
202 * copy this verbatim. */ |
15823 | 203 purple_eventloop_set_ui_ops(&glib_eventloops); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
204 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
205 /* Set path to search for plugins. The core (libpurple) takes care of loading the |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
206 * core-plugins, which includes the protocol-plugins. So it is not essential to add |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
207 * any path here, but it might be desired, especially for ui-specific plugins. */ |
15823 | 208 purple_plugins_add_search_path(CUSTOM_PLUGIN_PATH); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
209 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
210 /* Now that all the essential stuff has been set, let's try to init the core. It's |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
211 * necessary to provide a non-NULL name for the current ui to the core. This name |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
212 * is used by stuff that depends on this ui, for example the ui-specific plugins. */ |
15823 | 213 if (!purple_core_init(UI_ID)) { |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
214 /* Initializing the core failed. Terminate. */ |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
215 fprintf(stderr, |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
216 "libpurple initialization failed. Dumping core.\n" |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
217 "Please report this!\n"); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
218 abort(); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
219 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
220 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
221 /* Create and load the buddylist. */ |
15823 | 222 purple_set_blist(purple_blist_new()); |
223 purple_blist_load(); | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
224 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
225 /* Load the preferences. */ |
15823 | 226 purple_prefs_load(); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
227 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
228 /* Load the desired plugins. The client should save the list of loaded plugins in |
15823 | 229 * the preferences using purple_plugins_save_loaded(PLUGIN_SAVE_PREF) */ |
230 purple_plugins_load_saved(PLUGIN_SAVE_PREF); | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
231 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
232 /* Load the pounces. */ |
15823 | 233 purple_pounces_load(); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
234 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
235 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
236 static void |
15823 | 237 signed_on(PurpleConnection *gc, gpointer null) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
238 { |
15823 | 239 PurpleAccount *account = purple_connection_get_account(gc); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
240 printf("Account connected: %s %s\n", account->username, account->protocol_id); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
241 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
242 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
243 static void |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21060
diff
changeset
|
244 connect_to_signals_for_demonstration_purposes_only(void) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
245 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
246 static int handle; |
15823 | 247 purple_signal_connect(purple_connections_get_handle(), "signed-on", &handle, |
248 PURPLE_CALLBACK(signed_on), NULL); | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
249 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
250 |
22007
c38d72677c8a
Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@wiktel.com>
parents:
21060
diff
changeset
|
251 int main(int argc, char *argv[]) |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
252 { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
253 GList *iter; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
254 int i, num; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
255 GList *names = NULL; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
256 const char *prpl; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
257 char name[128]; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
258 char *password; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
259 GMainLoop *loop = g_main_loop_new(NULL, FALSE); |
15823 | 260 PurpleAccount *account; |
261 PurpleSavedStatus *status; | |
22067
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
262 char *res; |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
263 |
29883
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
264 #ifndef _WIN32 |
21060
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
265 /* libpurple's built-in DNS resolution forks processes to perform |
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
266 * blocking lookups without blocking the main process. It does not |
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
267 * handle SIGCHLD itself, so if the UI does not you quickly get an army |
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
268 * of zombie subprocesses marching around. |
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
269 */ |
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
270 signal(SIGCHLD, SIG_IGN); |
29883
3015b7c2bec3
incomplete win32 fixes
Daniel Atallah <daniel.atallah@gmail.com>
parents:
22151
diff
changeset
|
271 #endif |
21060
9838af97586b
A pidgin fans in Great Britain.U.K thinks that nullclient should explicitly
Will Thompson <will.thompson@collabora.co.uk>
parents:
19680
diff
changeset
|
272 |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
273 init_libpurple(); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
274 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
275 printf("libpurple initialized.\n"); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
276 |
15823 | 277 iter = purple_plugins_get_protocols(); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
278 for (i = 0; iter; iter = iter->next) { |
15823 | 279 PurplePlugin *plugin = iter->data; |
280 PurplePluginInfo *info = plugin->info; | |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
281 if (info && info->name) { |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
282 printf("\t%d: %s\n", i++, info->name); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
283 names = g_list_append(names, info->id); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
284 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
285 } |
19547
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
286 printf("Select the protocol [0-%d]: ", i-1); |
22067
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
287 res = fgets(name, sizeof(name), stdin); |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
288 if (!res) { |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
289 fprintf(stderr, "Failed to gets protocol selection."); |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
290 abort(); |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
291 } |
19547
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
292 sscanf(name, "%d", &num); |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
293 prpl = g_list_nth_data(names, num); |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
294 |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
295 printf("Username: "); |
22067
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
296 res = fgets(name, sizeof(name), stdin); |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
297 if (!res) { |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
298 fprintf(stderr, "Failed to read user name."); |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
299 abort(); |
3684c9d16f6f
Part of a large patch from o_sukhodolsky to fix some build warnings.
Richard Laager <rlaager@wiktel.com>
parents:
22007
diff
changeset
|
300 } |
19547
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
301 name[strlen(name) - 1] = 0; /* strip the \n at the end */ |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
302 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
303 /* Create the account */ |
19547
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
304 account = purple_account_new(name, prpl); |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
305 |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
306 /* Get the password for the account */ |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
307 password = getpass("Password: "); |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
308 purple_account_set_password(account, password); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
309 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
310 /* It's necessary to enable the account first. */ |
15823 | 311 purple_account_set_enabled(account, UI_ID, TRUE); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
312 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
313 /* Now, to connect the account(s), create a status and activate it. */ |
19547
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
314 status = purple_savedstatus_new(NULL, PURPLE_STATUS_AVAILABLE); |
6c726af063c9
Revert jeff2's changes from 2007-08-12. Specifically revision
Mark Doliner <mark@kingant.net>
parents:
18910
diff
changeset
|
315 purple_savedstatus_activate(status); |
15618
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
316 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
317 connect_to_signals_for_demonstration_purposes_only(); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
318 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
319 g_main_loop_run(loop); |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
320 |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
321 return 0; |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
322 } |
7e0c0062c428
Add the example nullclient here.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff
changeset
|
323 |