pidgin/gtkmain.c

Sat, 10 Aug 2013 15:59:19 +0530

author
Ankit Vani <a@nevitus.org>
date
Sat, 10 Aug 2013 15:59:19 +0530
branch
soc.2013.gobjectification.plugins
changeset 36485
bfb60fd48059
parent 36431
ea007725fd4d
child 36540
10eb918682fc
permissions
-rw-r--r--

Add LIBDIR to pidgin and finch search paths

10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
1 /*
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
2 * pidgin
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
3 *
15931
716b5fac1895 Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents: 15884
diff changeset
4 * Pidgin is the legal property of its developers, whose names are too numerous
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
6 * source distribution.
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
7 *
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
12 *
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
17 *
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19840
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
21 *
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
22 */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
23
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
24 #include "internal.h"
15577
b8129373f65e More pidgin changes
Sean Egan <seanegan@pidgin.im>
parents: 15567
diff changeset
25 #include "pidgin.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
26
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
27 #include "account.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
28 #include "conversation.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
29 #include "core.h"
22888
f54d95628a9f Include dbus-maybe.h rather than conditionally including dbus-server.h
Will Thompson <resiak@pidgin.im>
parents: 22884
diff changeset
30 #include "dbus-maybe.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
31 #include "debug.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
32 #include "eventloop.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
33 #include "ft.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
34 #include "log.h"
19048
432404a6b416 Fix stun to work on startup (this is is a temporary hack until purple_prefs_load() happens in the core). Fixes #2334
Daniel Atallah <datallah@pidgin.im>
parents: 18606
diff changeset
35 #include "network.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
36 #include "notify.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
37 #include "prefs.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
38 #include "prpl.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
39 #include "pounce.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
40 #include "sound.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
41 #include "status.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
42 #include "util.h"
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11403
diff changeset
43 #include "whiteboard.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
44
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
45 #include "gtkaccount.h"
34708
dd67596485ca Undo renames of UI blist headers back to gntblist.h and gtkblist.h
Ankit Vani <a@nevitus.org>
parents: 34706
diff changeset
46 #include "gtkblist.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
47 #include "gtkconn.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
48 #include "gtkconv.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
49 #include "gtkdebug.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
50 #include "gtkdialogs.h"
14743
2324d3eee038 [gaim-migrate @ 17433]
Sean Egan <seanegan@pidgin.im>
parents: 14636
diff changeset
51 #include "gtkdocklet.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
52 #include "gtkeventloop.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
53 #include "gtkft.h"
11907
de3ea77afe3c [gaim-migrate @ 14198]
Evan Schoenberg <evands@pidgin.im>
parents: 11906
diff changeset
54 #include "gtkidle.h"
12838
5c6f36abeee8 [gaim-migrate @ 15186]
Richard Laager <rlaager@pidgin.im>
parents: 12670
diff changeset
55 #include "gtklog.h"
26269
cacc598079e4 Separate PidginMedia from PidginConversation.
Michael Ruprecht <maiku@pidgin.im>
parents: 24585
diff changeset
56 #include "gtkmedia.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
57 #include "gtknotify.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
58 #include "gtkplugin.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
59 #include "gtkpounce.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
60 #include "gtkprefs.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
61 #include "gtkprivacy.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
62 #include "gtkrequest.h"
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
63 #include "gtkroomlist.h"
10574
5abb2931b6ff [gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10448
diff changeset
64 #include "gtksavedstatuses.h"
12246
7af1ef3b1cc4 [gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents: 12202
diff changeset
65 #include "gtksession.h"
22443
7b8772af6bb7 Apply the custom smiley patches from #1187, from Jorge VillaseƱo (Masca) and
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22187
diff changeset
66 #include "gtksmiley.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
67 #include "gtksound.h"
11525
1d06283bdcc9 [gaim-migrate @ 13773]
Francesco Fracassi <ffracassi@users.sourceforge.net>
parents: 11520
diff changeset
68 #include "gtkthemes.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
69 #include "gtkutils.h"
15883
969b74a3e27a According to etags, pidgin/ should be completely clean of references to 'gaim' as a client
Sean Egan <seanegan@pidgin.im>
parents: 15808
diff changeset
70 #include "pidginstock.h"
11475
1e222e6e52a0 [gaim-migrate @ 13717]
Gary Kramlich <grim@reaperworld.com>
parents: 11403
diff changeset
71 #include "gtkwhiteboard.h"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
72
13428
78687459c64b [gaim-migrate @ 15802]
Daniel Atallah <datallah@pidgin.im>
parents: 13322
diff changeset
73 #ifdef HAVE_SIGNAL_H
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
74 # include <signal.h>
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
75 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
76
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
77 #include <getopt.h>
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
78
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
79
13428
78687459c64b [gaim-migrate @ 15802]
Daniel Atallah <datallah@pidgin.im>
parents: 13322
diff changeset
80 #ifdef HAVE_SIGNAL_H
14542
7c1dd9601f1d [gaim-migrate @ 17199]
Mark Doliner <markdoliner@pidgin.im>
parents: 14323
diff changeset
81
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
82 /*
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
83 * Lists of signals we wish to catch and those we wish to ignore.
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
84 * Each list terminated with -1
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
85 */
21091
07fe1a99c47b Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@pidgin.im>
parents: 20791
diff changeset
86 static const int catch_sig_list[] = {
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
87 SIGSEGV,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
88 SIGINT,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
89 SIGTERM,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
90 SIGQUIT,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
91 -1
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
92 };
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
93
21091
07fe1a99c47b Patch from Andrew Gaul to constify a bunch of static variables to reduce
Ka-Hing Cheung <khc@pidgin.im>
parents: 20791
diff changeset
94 static const int ignore_sig_list[] = {
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
95 SIGPIPE,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
96 -1
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
97 };
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
98 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
99
17719
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
100 static void
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
101 dologin_named(const char *name)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
102 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
103 PurpleAccount *account;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
104 char **names;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
105 int i;
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
106
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
107 if (name != NULL) { /* list of names given */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
108 names = g_strsplit(name, ",", 64);
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
109 for (i = 0; names[i] != NULL; i++) {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
110 account = purple_accounts_find(names[i], NULL);
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
111 if (account != NULL) { /* found a user */
17719
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
112 purple_account_set_enabled(account, PIDGIN_UI, TRUE);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
113 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
114 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
115 g_strfreev(names);
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
116 } else { /* no name given, use the first account */
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
117 GList *accounts;
11520
61d34ca357f2 [gaim-migrate @ 13765]
Mark Doliner <markdoliner@pidgin.im>
parents: 11475
diff changeset
118
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
119 accounts = purple_accounts_get_all();
11520
61d34ca357f2 [gaim-migrate @ 13765]
Mark Doliner <markdoliner@pidgin.im>
parents: 11475
diff changeset
120 if (accounts != NULL)
61d34ca357f2 [gaim-migrate @ 13765]
Mark Doliner <markdoliner@pidgin.im>
parents: 11475
diff changeset
121 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
122 account = (PurpleAccount *)accounts->data;
17719
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
123 purple_account_set_enabled(account, PIDGIN_UI, TRUE);
11520
61d34ca357f2 [gaim-migrate @ 13765]
Mark Doliner <markdoliner@pidgin.im>
parents: 11475
diff changeset
124 }
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
125 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
126 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
127
13428
78687459c64b [gaim-migrate @ 15802]
Daniel Atallah <datallah@pidgin.im>
parents: 13322
diff changeset
128 #ifdef HAVE_SIGNAL_H
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
129 static char *segfault_message;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
130
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
131 static int signal_sockets[2];
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
132
14542
7c1dd9601f1d [gaim-migrate @ 17199]
Mark Doliner <markdoliner@pidgin.im>
parents: 14323
diff changeset
133 static void sighandler(int sig);
7c1dd9601f1d [gaim-migrate @ 17199]
Mark Doliner <markdoliner@pidgin.im>
parents: 14323
diff changeset
134
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
135 static void sighandler(int sig)
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
136 {
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
137 ssize_t written;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
138
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
139 /*
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
140 * We won't do any of the heavy lifting for the signal handling here
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
141 * because we have no idea what was interrupted. Previously this signal
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
142 * handler could result in some calls to malloc/free, which can cause
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
143 * deadlock in libc when the signal handler was interrupting a previous
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
144 * malloc or free. So instead we'll do an ugly hack where we write the
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
145 * signal number to one end of a socket pair. The other half of the
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
146 * socket pair is watched by our main loop. When the main loop sees new
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
147 * data on the socket it reads in the signal and performs the appropriate
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
148 * action without fear of interrupting stuff.
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
149 */
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
150 if (sig == SIGSEGV) {
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
151 fprintf(stderr, "%s", segfault_message);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
152 abort();
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
153 return;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
154 }
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
155
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
156 written = write(signal_sockets[0], &sig, sizeof(int));
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
157 if (written < 0 || written != sizeof(int)) {
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
158 /* This should never happen */
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
159 purple_debug_error("sighandler", "Received signal %d but only "
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
160 "wrote %" G_GSSIZE_FORMAT " bytes out of %"
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
161 G_GSIZE_FORMAT ": %s\n",
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
162 sig, written, sizeof(int), g_strerror(errno));
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
163 exit(1);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
164 }
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
165 }
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
166
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
167 static gboolean
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
168 mainloop_sighandler(GIOChannel *source, GIOCondition cond, gpointer data)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
169 {
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
170 GIOStatus stat;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
171 int sig;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
172 gsize bytes_read;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
173 GError *error = NULL;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
174
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
175 /* read the signal number off of the io channel */
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
176 stat = g_io_channel_read_chars(source, (gchar *)&sig, sizeof(int),
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
177 &bytes_read, &error);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
178 if (stat != G_IO_STATUS_NORMAL) {
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
179 purple_debug_error("sighandler", "Signal callback failed to read "
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
180 "from signal socket: %s", error->message);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
181 purple_core_quit();
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
182 return FALSE;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
183 }
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
184
33376
161320946afd Remove SIGCHLD signal handler.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32785
diff changeset
185 purple_debug_warning("sighandler", "Caught signal %d\n", sig);
161320946afd Remove SIGCHLD signal handler.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32785
diff changeset
186 purple_core_quit();
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
187
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
188 return TRUE;
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
189 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
190 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
191
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
192 static int
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21984
diff changeset
193 ui_main(void)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
194 {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
195 #ifndef _WIN32
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
196 GList *icons = NULL;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
197 GdkPixbuf *icon = NULL;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
198 char *icon_path;
16052
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
199 int i;
16504
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
200 struct {
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
201 const char *dir;
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
202 const char *filename;
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
203 } icon_sizes[] = {
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
204 {"16x16", "pidgin.png"},
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
205 {"24x24", "pidgin.png"},
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
206 {"32x32", "pidgin.png"},
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
207 {"48x48", "pidgin.png"},
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
208 {"scalable", "pidgin.svg"}
16052
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
209 };
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
210
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
211 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
212
16263
27e0ef0f38e6 Word on the street is that we don't want things named pidginfoo_bar(), but
Richard Laager <rlaager@pidgin.im>
parents: 16193
diff changeset
213 pidgin_themes_init();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
214
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
215 pidgin_blist_setup_sort_methods();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
216
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
217 #ifndef _WIN32
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
218 /* use the nice PNG icon for all the windows */
16052
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
219 for(i=0; i<G_N_ELEMENTS(icon_sizes); i++) {
16504
ae9a01ab4db3 Add the SVG to the default window icon list for really big window icons
Sean Egan <seanegan@pidgin.im>
parents: 16499
diff changeset
220 icon_path = g_build_filename(DATADIR, "icons", "hicolor", icon_sizes[i].dir, "apps", icon_sizes[i].filename, NULL);
31889
96183796df0c Start looking at the GError parameter every time we call these functions:
Mark Doliner <markdoliner@pidgin.im>
parents: 31881
diff changeset
221 icon = pidgin_pixbuf_new_from_file(icon_path);
16052
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
222 g_free(icon_path);
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
223 if (icon) {
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
224 icons = g_list_append(icons,icon);
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
225 } else {
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
226 purple_debug_error("ui_main",
22622
1ecb840b5101 Fix a bunch of compiler warnings caused by my addition of G_GNUC_PRINTF()
Mark Doliner <markdoliner@pidgin.im>
parents: 22565
diff changeset
227 "Failed to load the default window icon (%spx version)!\n", icon_sizes[i].dir);
16052
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
228 }
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
229 }
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
230 if(NULL == icons) {
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
231 purple_debug_error("ui_main", "Unable to load any size of default window icon!\n");
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
232 } else {
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
233 gtk_window_set_default_icon_list(icons);
16052
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
234
d53fc4f13ff3 new icon goodness (i may have screwed this up, someone check)
Nathan Walp <nwalp@pidgin.im>
parents: 15931
diff changeset
235 g_list_foreach(icons, (GFunc)g_object_unref, NULL);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
236 g_list_free(icons);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
237 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
238 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
239
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
240 return 0;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
241 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
242
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
243 static void
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
244 debug_init(void)
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
245 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
246 purple_debug_set_ui_ops(pidgin_debug_get_ui_ops());
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
247 pidgin_debug_init();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
248 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
249
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
250 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
251 pidgin_ui_init(void)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
252 {
22481
d8a9e927c90f Initialize the stock stuff before doing anything else so that stock items used in error messages are ready to be used. Fixes #4917.
Daniel Atallah <datallah@pidgin.im>
parents: 22187
diff changeset
253 pidgin_stock_init();
d8a9e927c90f Initialize the stock stuff before doing anything else so that stock items used in error messages are ready to be used. Fixes #4917.
Daniel Atallah <datallah@pidgin.im>
parents: 22187
diff changeset
254
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
255 /* Set the UI operation structures. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
256 purple_accounts_set_ui_ops(pidgin_accounts_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
257 purple_xfers_set_ui_ops(pidgin_xfers_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
258 purple_blist_set_ui_ops(pidgin_blist_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
259 purple_notify_set_ui_ops(pidgin_notify_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
260 purple_request_set_ui_ops(pidgin_request_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
261 purple_sound_set_ui_ops(pidgin_sound_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
262 purple_connections_set_ui_ops(pidgin_connections_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
263 purple_whiteboard_set_ui_ops(pidgin_whiteboard_get_ui_ops());
22791
6b4c7afad987 Patch from Jeffery Brown to set the idle uiops on OS X when IOKit is available.
Will Thompson <resiak@pidgin.im>
parents: 22631
diff changeset
264 #if defined(USE_SCREENSAVER) || defined(HAVE_IOKIT)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
265 purple_idle_set_ui_ops(pidgin_idle_get_ui_ops());
12272
4eee92ead973 [gaim-migrate @ 14574]
Mark Doliner <markdoliner@pidgin.im>
parents: 12246
diff changeset
266 #endif
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
267
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33955
diff changeset
268 pidgin_accounts_init();
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
269 pidgin_connection_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
270 pidgin_blist_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
271 pidgin_status_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
272 pidgin_conversations_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
273 pidgin_pounces_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
274 pidgin_privacy_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
275 pidgin_xfers_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
276 pidgin_roomlist_init();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
277 pidgin_log_init();
16796
1397249dcde1 Initialize docklet from pidgin_ui_init. This ensures docklet prefs are
Casey Harkins <charkins@pidgin.im>
parents: 16763
diff changeset
278 pidgin_docklet_init();
22443
7b8772af6bb7 Apply the custom smiley patches from #1187, from Jorge VillaseƱo (Masca) and
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22187
diff changeset
279 pidgin_smileys_init();
24674
36bf974a7d78 Allow plugins to specify custom link types to the GtkIMHtml widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24585
diff changeset
280 pidgin_utils_init();
26269
cacc598079e4 Separate PidginMedia from PidginConversation.
Michael Ruprecht <maiku@pidgin.im>
parents: 24585
diff changeset
281 pidgin_medias_init();
27476
d44640cb5686 Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <darkrain42@pidgin.im>
parents: 27361
diff changeset
282 pidgin_notify_init();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
283 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
284
18442
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
285 static GHashTable *ui_info = NULL;
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
286
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
287 static void
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
288 pidgin_quit(void)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
289 {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
290 #ifdef USE_SM
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
291 /* unplug */
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
292 pidgin_session_end();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
293 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
294
10574
5abb2931b6ff [gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10448
diff changeset
295 /* Uninit */
24674
36bf974a7d78 Allow plugins to specify custom link types to the GtkIMHtml widget.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 24585
diff changeset
296 pidgin_utils_uninit();
27476
d44640cb5686 Clear the notifications via a signal instead of pidgin_close_notify.
Paul Aurich <darkrain42@pidgin.im>
parents: 27361
diff changeset
297 pidgin_notify_uninit();
22443
7b8772af6bb7 Apply the custom smiley patches from #1187, from Jorge VillaseƱo (Masca) and
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22187
diff changeset
298 pidgin_smileys_uninit();
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
299 pidgin_conversations_uninit();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
300 pidgin_status_uninit();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
301 pidgin_docklet_uninit();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
302 pidgin_blist_uninit();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
303 pidgin_connection_uninit();
34587
a3bc28bb4ef5 Refactored pidgin to use the GObject-based PurpleAccount API
Ankit Vani <a@nevitus.org>
parents: 33955
diff changeset
304 pidgin_accounts_uninit();
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
305 pidgin_xfers_uninit();
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
306 pidgin_debug_uninit();
10574
5abb2931b6ff [gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10448
diff changeset
307
18442
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
308 if(NULL != ui_info)
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
309 g_hash_table_destroy(ui_info);
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
310
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
311 /* and end it all... */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
312 gtk_main_quit();
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
313 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
314
22104
56970903b8e9 Probe for -Wstrict-prototypes to get some more warnings. I then cleaned up
Richard Laager <rlaager@pidgin.im>
parents: 21984
diff changeset
315 static GHashTable *pidgin_ui_get_info(void)
18442
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
316 {
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
317 if(NULL == ui_info) {
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
318 ui_info = g_hash_table_new(g_str_hash, g_str_equal);
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
319
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
320 g_hash_table_insert(ui_info, "name", (char*)PIDGIN_NAME);
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
321 g_hash_table_insert(ui_info, "version", VERSION);
33955
55aa58076485 Use https URLs for pidgin.im and developer.pidgin.im.
Mark Doliner <mark@kingant.net>
parents: 33940
diff changeset
322 g_hash_table_insert(ui_info, "website", "https://pidgin.im");
55aa58076485 Use https URLs for pidgin.im and developer.pidgin.im.
Mark Doliner <mark@kingant.net>
parents: 33940
diff changeset
323 g_hash_table_insert(ui_info, "dev_website", "https://developer.pidgin.im");
25578
c0c1b73f4fb1 Changed "type" to "client_type" for the hash value specifying client type
Marcus Lundblad <malu@pidgin.im>
parents: 25577
diff changeset
324 g_hash_table_insert(ui_info, "client_type", "pc");
27685
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
325
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
326 /*
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
327 * This is the client key for "Pidgin." It is owned by the AIM
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
328 * account "markdoliner." Please don't use this key for other
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
329 * applications. You can either not specify a client key, in
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
330 * which case the default "libpurple" key will be used, or you
31881
fb4435d51439 Change Finch to use Pidgin's clientkey/devid when connecting to ICQ.
Mark Doliner <markdoliner@pidgin.im>
parents: 31506
diff changeset
331 * can try to register your own at the AIM or ICQ web sites
fb4435d51439 Change Finch to use Pidgin's clientkey/devid when connecting to ICQ.
Mark Doliner <markdoliner@pidgin.im>
parents: 31506
diff changeset
332 * (although this functionality was removed at some point, it's
fb4435d51439 Change Finch to use Pidgin's clientkey/devid when connecting to ICQ.
Mark Doliner <markdoliner@pidgin.im>
parents: 31506
diff changeset
333 * possible it has been re-added). AOL's old key management
fb4435d51439 Change Finch to use Pidgin's clientkey/devid when connecting to ICQ.
Mark Doliner <markdoliner@pidgin.im>
parents: 31506
diff changeset
334 * page is http://developer.aim.com/manageKeys.jsp
27685
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
335 */
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
336 g_hash_table_insert(ui_info, "prpl-aim-clientkey", "ma1cSASNCKFtrdv9");
6e8ce73aa4a4 Use a custom clientkey for AIM and ICQ for Pidgin and Finch
Mark Doliner <markdoliner@pidgin.im>
parents: 27476
diff changeset
337 g_hash_table_insert(ui_info, "prpl-icq-clientkey", "ma1cSASNCKFtrdv9");
27688
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
338
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
339 /*
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
340 * This is the distid for Pidgin, given to us by AOL. Please
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
341 * don't use this for other applications. You can just not
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
342 * specify a distid and libpurple will use a default.
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
343 */
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
344 g_hash_table_insert(ui_info, "prpl-aim-distid", GINT_TO_POINTER(1550));
8c89470bfe9d Oh, we don't need a special ui_info field for the AIM clientstring
Mark Doliner <markdoliner@pidgin.im>
parents: 27685
diff changeset
345 g_hash_table_insert(ui_info, "prpl-icq-distid", GINT_TO_POINTER(1550));
18442
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
346 }
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
347
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
348 return ui_info;
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
349 }
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
350
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
351 static PurpleCoreUiOps core_ops =
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
352 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
353 pidgin_prefs_init,
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
354 debug_init,
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
355 pidgin_ui_init,
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16545
diff changeset
356 pidgin_quit,
18442
99c6a0271b1d UI info for finch and pidgin (finch guys probably want to take a look
Nathan Walp <nwalp@pidgin.im>
parents: 18256
diff changeset
357 pidgin_ui_get_info,
16752
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16545
diff changeset
358 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16545
diff changeset
359 NULL,
e6bcb1628c57 Patch from John 'rekkanoryo' Bailey to add the padding struct members in pidgin
Gary Kramlich <grim@reaperworld.com>
parents: 16545
diff changeset
360 NULL
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
361 };
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
362
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
363 static PurpleCoreUiOps *
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
364 pidgin_core_get_ui_ops(void)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
365 {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
366 return &core_ops;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
367 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
368
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
369 static void
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
370 show_usage(const char *name, gboolean terse)
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
371 {
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
372 char *text;
12846
93ff2d8dd1e7 [gaim-migrate @ 15194]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 12838
diff changeset
373
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
374 if (terse) {
21106
b85fbef13eed Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21091
diff changeset
375 text = g_strdup_printf(_("%s %s. Try `%s -h' for more information.\n"), PIDGIN_NAME, DISPLAY_VERSION, name);
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
376 } else {
28275
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
377 GString *str = g_string_new(NULL);
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
378 g_string_append_printf(str, "%s %s\n", PIDGIN_NAME, DISPLAY_VERSION);
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
379 g_string_append_printf(str, _("Usage: %s [OPTION]...\n\n"), name);
28473
aede2f49264b Make DIR and NAME localizable
Mark Doliner <markdoliner@pidgin.im>
parents: 28275
diff changeset
380 g_string_append_printf(str, " -c, --config=%s %s\n",
aede2f49264b Make DIR and NAME localizable
Mark Doliner <markdoliner@pidgin.im>
parents: 28275
diff changeset
381 _("DIR"), _("use DIR for config files"));
28275
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
382 g_string_append_printf(str, " -d, --debug %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
383 _("print debugging messages to stdout"));
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
384 g_string_append_printf(str, " -f, --force-online %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
385 _("force online, regardless of network status"));
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
386 g_string_append_printf(str, " -h, --help %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
387 _("display this help and exit"));
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
388 g_string_append_printf(str, " -m, --multiple %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
389 _("allow multiple instances"));
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
390 g_string_append_printf(str, " -n, --nologin %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
391 _("don't automatically login"));
28473
aede2f49264b Make DIR and NAME localizable
Mark Doliner <markdoliner@pidgin.im>
parents: 28275
diff changeset
392 g_string_append_printf(str, " -l, --login[=%s] %s\n",
aede2f49264b Make DIR and NAME localizable
Mark Doliner <markdoliner@pidgin.im>
parents: 28275
diff changeset
393 _("NAME"),
28275
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
394 _("enable specified account(s) (optional argument NAME\n"
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
395 " "
28511
2c088c4a48c1 Comebine two separate strings into one, thus restoring balance to the
Mark Doliner <markdoliner@pidgin.im>
parents: 28473
diff changeset
396 "specifies account(s) to use, separated by commas.\n"
2c088c4a48c1 Comebine two separate strings into one, thus restoring balance to the
Mark Doliner <markdoliner@pidgin.im>
parents: 28473
diff changeset
397 " "
2c088c4a48c1 Comebine two separate strings into one, thus restoring balance to the
Mark Doliner <markdoliner@pidgin.im>
parents: 28473
diff changeset
398 "Without this only the first account will be enabled)."));
21984
56574d6a456e Ye Olde Compiler complained about this:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21727
diff changeset
399 #ifndef WIN32
28275
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
400 g_string_append_printf(str, " --display=DISPLAY %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
401 _("X display to use"));
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
402 #endif /* !WIN32 */
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
403 g_string_append_printf(str, " -v, --version %s\n",
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
404 _("display the current version and exit"));
149a59ce7546 Split the descriptions of our --help text up into multiple smaller
Mark Doliner <markdoliner@pidgin.im>
parents: 27688
diff changeset
405 text = g_string_free(str, FALSE);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
406 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
407
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
408 purple_print_utf8_to_console(stdout, text);
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
409 g_free(text);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
410 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
411
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
412 /* FUCKING GET ME A TOWEL! */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
413 #ifdef _WIN32
15697
78ddac185d80 winpidgin warning fixes
Daniel Atallah <datallah@pidgin.im>
parents: 15578
diff changeset
414 /* suppress gcc "no previous prototype" warning */
33371
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 31889
diff changeset
415 int __cdecl pidgin_main(HINSTANCE hint, int argc, char *argv[]);
6d93866a4a3f Explictly set the calling conventions for some dynamic functions on win32.
Daniel Atallah <datallah@pidgin.im>
parents: 31889
diff changeset
416 int __cdecl pidgin_main(HINSTANCE hint, int argc, char *argv[])
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
417 #else
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
418 int main(int argc, char *argv[])
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
419 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
420 {
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
421 gboolean opt_force_online = FALSE;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
422 gboolean opt_help = FALSE;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
423 gboolean opt_login = FALSE;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
424 gboolean opt_nologin = FALSE;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
425 gboolean opt_version = FALSE;
18207
e89bf4430ea6 Allow disabling check for single instance.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
426 gboolean opt_si = TRUE; /* Check for single instance? */
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
427 char *opt_config_dir_arg = NULL;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
428 char *opt_login_arg = NULL;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
429 char *opt_session_arg = NULL;
10447
887380ec66f5 [gaim-migrate @ 11712]
Mark Doliner <markdoliner@pidgin.im>
parents: 10433
diff changeset
430 char *search_path;
33929
014800693d22 Fix compilation for GTK2
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33926
diff changeset
431 #if GTK_CHECK_VERSION(3,0,0)
33926
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
432 GtkCssProvider *provider;
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
433 GdkScreen *screen;
33929
014800693d22 Fix compilation for GTK2
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33926
diff changeset
434 #endif
18122
9bf9970c1b6a disapproval of revision '2d8ea56b90971e7851442d96b7d74ecb4f052126'
Richard Laager <rlaager@pidgin.im>
parents: 18121
diff changeset
435 GList *accounts;
13428
78687459c64b [gaim-migrate @ 15802]
Daniel Atallah <datallah@pidgin.im>
parents: 13322
diff changeset
436 #ifdef HAVE_SIGNAL_H
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
437 int sig_indx; /* for setting up signal catching */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
438 sigset_t sigset;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
439 char errmsg[BUFSIZ];
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
440 GIOChannel *signal_channel;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
441 GIOStatus signal_status;
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
442 guint signal_channel_watcher;
13215
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
443 #ifndef DEBUG
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
444 char *segfault_message_tmp;
28836
737062c0d40c Fix compile with debugging enabled.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28820
diff changeset
445 #endif
33926
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
446 #endif
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
447 #if defined(HAVE_SIGNAL_H) || GTK_CHECK_VERSION(3,0,0)
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
448 GError *error;
13215
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
449 #endif
14636
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14623
diff changeset
450 int opt;
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14623
diff changeset
451 gboolean gui_check;
5306c329992c [gaim-migrate @ 17298]
Daniel Atallah <datallah@pidgin.im>
parents: 14623
diff changeset
452 gboolean debug_enabled;
18121
2d8ea56b9097 Mark the return type const for the following functions. I noticed this
Richard Laager <rlaager@pidgin.im>
parents: 18093
diff changeset
453 GList *active_accounts;
33940
b44d15793c83 Use GStatBuf instead of struct stat
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33929
diff changeset
454 GStatBuf st;
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
455
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
456 struct option long_options[] = {
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
457 {"config", required_argument, NULL, 'c'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
458 {"debug", no_argument, NULL, 'd'},
30844
0d9af8dbf654 Fix typoed short option for "force-online".
Daniel Atallah <datallah@pidgin.im>
parents: 30477
diff changeset
459 {"force-online", no_argument, NULL, 'f'},
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
460 {"help", no_argument, NULL, 'h'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
461 {"login", optional_argument, NULL, 'l'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
462 {"multiple", no_argument, NULL, 'm'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
463 {"nologin", no_argument, NULL, 'n'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
464 {"session", required_argument, NULL, 's'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
465 {"version", no_argument, NULL, 'v'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
466 {"display", required_argument, NULL, 'D'},
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
467 {"sync", no_argument, NULL, 'S'},
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
468 {0, 0, 0, 0}
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
469 };
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
470
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
471 #ifdef DEBUG
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10306
diff changeset
472 debug_enabled = TRUE;
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10306
diff changeset
473 #else
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10306
diff changeset
474 debug_enabled = FALSE;
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
475 #endif
17105
c0a8e07ee507 disapproval of revision 'd3231850edf096c5afacfab40b53717b34098355'
Sean Egan <seanegan@pidgin.im>
parents: 17104
diff changeset
476
33890
4a1b14508788 Correctly remove deprecated functions g_type_init and g_thread_init
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33796
diff changeset
477 #if !GLIB_CHECK_VERSION(2, 32, 0)
4a1b14508788 Correctly remove deprecated functions g_type_init and g_thread_init
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33796
diff changeset
478 /* GLib threading system is automaticaly initialized since 2.32.
4a1b14508788 Correctly remove deprecated functions g_type_init and g_thread_init
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33796
diff changeset
479 * For earlier versions, it have to be initialized before calling any
4a1b14508788 Correctly remove deprecated functions g_type_init and g_thread_init
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33796
diff changeset
480 * Glib or GTK+ functions.
4a1b14508788 Correctly remove deprecated functions g_type_init and g_thread_init
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33796
diff changeset
481 */
17105
c0a8e07ee507 disapproval of revision 'd3231850edf096c5afacfab40b53717b34098355'
Sean Egan <seanegan@pidgin.im>
parents: 17104
diff changeset
482 g_thread_init(NULL);
33890
4a1b14508788 Correctly remove deprecated functions g_type_init and g_thread_init
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33796
diff changeset
483 #endif
18232
2b0a1d552f56 Use g_set_application_name() so unnamed dialogs get given a name, my
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18208
diff changeset
484
28934
d2d81a26a190 Set prgname for pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28836
diff changeset
485 g_set_prgname("Pidgin");
d2d81a26a190 Set prgname for pidgin.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 28836
diff changeset
486
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
487 #ifdef ENABLE_NLS
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
488 bindtextdomain(PACKAGE, LOCALEDIR);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
489 bind_textdomain_codeset(PACKAGE, "UTF-8");
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
490 textdomain(PACKAGE);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
491 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
492
13090
aee4ed853ff3 [gaim-migrate @ 15451]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13024
diff changeset
493 #ifdef HAVE_SETLOCALE
aee4ed853ff3 [gaim-migrate @ 15451]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13024
diff changeset
494 /* Locale initialization is not complete here. See gtk_init_check() */
aee4ed853ff3 [gaim-migrate @ 15451]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13024
diff changeset
495 setlocale(LC_ALL, "");
aee4ed853ff3 [gaim-migrate @ 15451]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13024
diff changeset
496 #endif
11080
0578003800d0 [gaim-migrate @ 13092]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents: 11067
diff changeset
497
13428
78687459c64b [gaim-migrate @ 15802]
Daniel Atallah <datallah@pidgin.im>
parents: 13322
diff changeset
498 #ifdef HAVE_SIGNAL_H
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
499
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
500 #ifndef DEBUG
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
501 /* We translate this here in case the crash breaks gettext. */
13215
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
502 segfault_message_tmp = g_strdup_printf(_(
20395
81c963c89157 Include the version in the segfault message - enough people blindly copy
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20346
diff changeset
503 "%s %s has segfaulted and attempted to dump a core file.\n"
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
504 "This is a bug in the software and has happened through\n"
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
505 "no fault of your own.\n\n"
16977
c9cb49bea66d Change the PIDGIN_NAME stuff to allow translators to transliterate the
Richard Laager <rlaager@pidgin.im>
parents: 16967
diff changeset
506 "If you can reproduce the crash, please notify the developers\n"
c9cb49bea66d Change the PIDGIN_NAME stuff to allow translators to transliterate the
Richard Laager <rlaager@pidgin.im>
parents: 16967
diff changeset
507 "by reporting a bug at:\n"
18256
63c91e6c806e I believe the great unwashed should be using simpleticket for submitting
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18232
diff changeset
508 "%ssimpleticket/\n\n"
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
509 "Please make sure to specify what you were doing at the time\n"
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
510 "and post the backtrace from the core file. If you do not know\n"
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
511 "how to get the backtrace, please read the instructions at\n"
24585
25d84f35abf8 kluge pointed out that the segfault message still recommends people IM
Richard Laager <rlaager@pidgin.im>
parents: 23545
diff changeset
512 "%swiki/GetABacktrace\n"),
25d84f35abf8 kluge pointed out that the segfault message still recommends people IM
Richard Laager <rlaager@pidgin.im>
parents: 23545
diff changeset
513 PIDGIN_NAME, DISPLAY_VERSION, PURPLE_DEVEL_WEBSITE, PURPLE_DEVEL_WEBSITE
13090
aee4ed853ff3 [gaim-migrate @ 15451]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13024
diff changeset
514 );
13587
fb0245a7ccab [gaim-migrate @ 15971]
Daniel Atallah <datallah@pidgin.im>
parents: 13429
diff changeset
515
13215
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
516 /* we have to convert the message (UTF-8 to console
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
517 charset) early because after a segmentation fault
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
518 it's not a good practice to allocate memory */
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
519 error = NULL;
13587
fb0245a7ccab [gaim-migrate @ 15971]
Daniel Atallah <datallah@pidgin.im>
parents: 13429
diff changeset
520 segfault_message = g_locale_from_utf8(segfault_message_tmp,
13215
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
521 -1, NULL, NULL, &error);
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
522 if (segfault_message != NULL) {
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
523 g_free(segfault_message_tmp);
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
524 }
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
525 else {
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
526 /* use 'segfault_message_tmp' (UTF-8) as a fallback */
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
527 g_warning("%s\n", error->message);
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
528 g_error_free(error);
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
529 segfault_message = segfault_message_tmp;
c3e72e316531 [gaim-migrate @ 15578]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 13111
diff changeset
530 }
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
531 #else
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
532 /* Don't mark this for translation. */
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
533 segfault_message = g_strdup(
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
534 "Hi, user. We need to talk.\n"
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
535 "I think something's gone wrong here. It's probably my fault.\n"
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
536 "No, really, it's not you... it's me... no no no, I think we get along well\n"
12670
54597c65a004 [gaim-migrate @ 15013]
Will Thompson <resiak@pidgin.im>
parents: 12600
diff changeset
537 "it's just that.... well, I want to see other people. I... what?!? NO! I \n"
54597c65a004 [gaim-migrate @ 15013]
Will Thompson <resiak@pidgin.im>
parents: 12600
diff changeset
538 "haven't been cheating on you!! How many times do you want me to tell you?! And\n"
54597c65a004 [gaim-migrate @ 15013]
Will Thompson <resiak@pidgin.im>
parents: 12600
diff changeset
539 "for the last time, it's just a rash!\n"
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
540 );
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
541 #endif
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
542
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
543 /*
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
544 * Create a socket pair for receiving unix signals from a signal
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
545 * handler.
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
546 */
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
547 if (socketpair(AF_UNIX, SOCK_STREAM, 0, signal_sockets) < 0) {
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
548 perror("Failed to create sockets for GLib signal handling");
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
549 exit(1);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
550 }
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
551 signal_channel = g_io_channel_unix_new(signal_sockets[1]);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
552
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
553 /*
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
554 * Set the channel encoding to raw binary instead of the default of
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
555 * UTF-8, because we'll be sending integers across instead of strings.
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
556 */
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
557 error = NULL;
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
558 signal_status = g_io_channel_set_encoding(signal_channel, NULL, &error);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
559 if (signal_status != G_IO_STATUS_NORMAL) {
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
560 fprintf(stderr, "Failed to set the signal channel to raw "
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
561 "binary: %s", error->message);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
562 exit(1);
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
563 }
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
564 signal_channel_watcher = g_io_add_watch(signal_channel, G_IO_IN, mainloop_sighandler, NULL);
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
565 g_io_channel_unref(signal_channel);
28820
58701e24ed40 We really shouldn't be doing a whole lot in our signal handler. The
Mark Doliner <markdoliner@pidgin.im>
parents: 28800
diff changeset
566
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
567 /* Let's not violate any PLA's!!!! */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
568 /* jseymour: whatever the fsck that means */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
569 /* Robot101: for some reason things like gdm like to block *
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
570 * useful signals like SIGCHLD, so we unblock all the ones we *
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
571 * declare a handler for. thanks JSeymour and Vann. */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
572 if (sigemptyset(&sigset)) {
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
573 snprintf(errmsg, sizeof(errmsg), "Warning: couldn't initialise empty signal set");
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
574 perror(errmsg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
575 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
576 for(sig_indx = 0; catch_sig_list[sig_indx] != -1; ++sig_indx) {
33794
716cbef8d1c6 Fix a number of additional trivial issues - unused variables, etc.
Daniel Atallah <datallah@pidgin.im>
parents: 33371
diff changeset
577 if(signal(catch_sig_list[sig_indx], sighandler) == SIG_ERR) {
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
578 snprintf(errmsg, sizeof(errmsg), "Warning: couldn't set signal %d for catching",
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
579 catch_sig_list[sig_indx]);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
580 perror(errmsg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
581 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
582 if(sigaddset(&sigset, catch_sig_list[sig_indx])) {
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
583 snprintf(errmsg, sizeof(errmsg), "Warning: couldn't include signal %d for unblocking",
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
584 catch_sig_list[sig_indx]);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
585 perror(errmsg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
586 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
587 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
588 for(sig_indx = 0; ignore_sig_list[sig_indx] != -1; ++sig_indx) {
33794
716cbef8d1c6 Fix a number of additional trivial issues - unused variables, etc.
Daniel Atallah <datallah@pidgin.im>
parents: 33371
diff changeset
589 if(signal(ignore_sig_list[sig_indx], SIG_IGN) == SIG_ERR) {
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
590 snprintf(errmsg, sizeof(errmsg), "Warning: couldn't set signal %d to ignore",
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
591 ignore_sig_list[sig_indx]);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
592 perror(errmsg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
593 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
594 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
595
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
596 if (sigprocmask(SIG_UNBLOCK, &sigset, NULL)) {
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
597 snprintf(errmsg, sizeof(errmsg), "Warning: couldn't unblock signals");
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
598 perror(errmsg);
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10306
diff changeset
599 }
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
600 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
601
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
602 /* scan command-line options */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
603 opterr = 1;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
604 while ((opt = getopt_long(argc, argv,
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
605 #ifndef _WIN32
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
606 "c:dfhmnl::s:v",
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
607 #else
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
608 "c:dfhmnl::v",
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
609 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
610 long_options, NULL)) != -1) {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
611 switch (opt) {
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
612 case 'c': /* config dir */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
613 g_free(opt_config_dir_arg);
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
614 opt_config_dir_arg = g_strdup(optarg);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
615 break;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
616 case 'd': /* debug */
10307
f3ba80364053 [gaim-migrate @ 11497]
Mark Doliner <markdoliner@pidgin.im>
parents: 10306
diff changeset
617 debug_enabled = TRUE;
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
618 break;
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
619 case 'f': /* force-online */
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
620 opt_force_online = TRUE;
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
621 break;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
622 case 'h': /* help */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
623 opt_help = TRUE;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
624 break;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
625 case 'n': /* no autologin */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
626 opt_nologin = TRUE;
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
627 break;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
628 case 'l': /* login, option username */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
629 opt_login = TRUE;
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
630 g_free(opt_login_arg);
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
631 if (optarg != NULL)
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
632 opt_login_arg = g_strdup(optarg);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
633 break;
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
634 case 's': /* use existing session ID */
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
635 g_free(opt_session_arg);
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
636 opt_session_arg = g_strdup(optarg);
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
637 break;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
638 case 'v': /* version */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
639 opt_version = TRUE;
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
640 break;
18207
e89bf4430ea6 Allow disabling check for single instance.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
641 case 'm': /* do not ensure single instance. */
e89bf4430ea6 Allow disabling check for single instance.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
642 opt_si = FALSE;
e89bf4430ea6 Allow disabling check for single instance.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
643 break;
20346
06c3e9cfdc27 Accept --display as an argument, to be passed to Gtk+.
Ethan Blanton <elb@pidgin.im>
parents: 19859
diff changeset
644 case 'D': /* --display */
22187
6269c8333ae6 Allow --sync to reach gtk initialization. This is basically the same as
Richard Laager <rlaager@pidgin.im>
parents: 22104
diff changeset
645 case 'S': /* --sync */
20346
06c3e9cfdc27 Accept --display as an argument, to be passed to Gtk+.
Ethan Blanton <elb@pidgin.im>
parents: 19859
diff changeset
646 /* handled by gtk_init_check below */
06c3e9cfdc27 Accept --display as an argument, to be passed to Gtk+.
Ethan Blanton <elb@pidgin.im>
parents: 19859
diff changeset
647 break;
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
648 case '?': /* show terse help */
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
649 default:
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
650 show_usage(argv[0], TRUE);
16193
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
651 #ifdef HAVE_SIGNAL_H
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
652 g_free(segfault_message);
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
653 #endif
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
654 return 0;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
655 break;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
656 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
657 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
658
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
659 /* show help message */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
660 if (opt_help) {
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
661 show_usage(argv[0], FALSE);
16193
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
662 #ifdef HAVE_SIGNAL_H
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
663 g_free(segfault_message);
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
664 #endif
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
665 return 0;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
666 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
667 /* show version message */
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
668 if (opt_version) {
25702
41a5336bc2d6 applied changes from 20269e8849976ad6a0996f79ccbc0a12a311484f
Ethan Blanton <elb@pidgin.im>
parents: 25460
diff changeset
669 printf("%s %s (libpurple %s)\n", PIDGIN_NAME, DISPLAY_VERSION,
41a5336bc2d6 applied changes from 20269e8849976ad6a0996f79ccbc0a12a311484f
Ethan Blanton <elb@pidgin.im>
parents: 25460
diff changeset
670 purple_core_get_version());
16193
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
671 #ifdef HAVE_SIGNAL_H
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
672 g_free(segfault_message);
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
673 #endif
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
674 return 0;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
675 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
676
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
677 /* set a user-specified config directory */
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
678 if (opt_config_dir_arg != NULL) {
32785
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
679 if (g_path_is_absolute(opt_config_dir_arg)) {
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
680 purple_util_set_user_dir(opt_config_dir_arg);
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
681 } else {
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
682 /* Make an absolute (if not canonical) path */
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
683 char *cwd = g_get_current_dir();
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
684 char *path = g_build_path(G_DIR_SEPARATOR_S, cwd, opt_config_dir_arg, NULL);
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
685 purple_util_set_user_dir(path);
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
686 g_free(path);
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
687 g_free(cwd);
5e08d5a41442 pidgin/finch: Make relative paths absolute with -c
Paul Aurich <darkrain42@pidgin.im>
parents: 31992
diff changeset
688 }
10323
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
689 }
f4a013ac9e7c [gaim-migrate @ 11530]
Mark Doliner <markdoliner@pidgin.im>
parents: 10322
diff changeset
690
10448
4415ffba12e9 [gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
691 /*
4415ffba12e9 [gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
692 * We're done piddling around with command line arguments.
4415ffba12e9 [gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
693 * Fire up this baby.
4415ffba12e9 [gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
694 */
4415ffba12e9 [gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
695
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
696 purple_debug_set_enabled(debug_enabled);
10448
4415ffba12e9 [gaim-migrate @ 11713]
Mark Doliner <markdoliner@pidgin.im>
parents: 10447
diff changeset
697
33926
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
698 #if !GTK_CHECK_VERSION(3,0,0)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
699 search_path = g_build_filename(purple_user_dir(), "gtkrc-2.0", NULL);
12572
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
700 gtk_rc_add_default_file(search_path);
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
701 g_free(search_path);
33926
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
702 #endif
12572
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
703
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
704 gui_check = gtk_init_check(&argc, &argv);
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
705 if (!gui_check) {
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
706 char *display = gdk_get_display();
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
707
21106
b85fbef13eed Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21091
diff changeset
708 printf("%s %s\n", PIDGIN_NAME, DISPLAY_VERSION);
12572
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
709
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
710 g_warning("cannot open display: %s", display ? display : "unset");
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
711 g_free(display);
16193
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
712 #ifdef HAVE_SIGNAL_H
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
713 g_free(segfault_message);
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
714 #endif
12572
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
715
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
716 return 1;
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
717 }
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
718
33926
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
719 #if GTK_CHECK_VERSION(3,0,0)
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
720 search_path = g_build_filename(purple_user_dir(), "gtk-3.0.css", NULL);
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
721
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
722 error = NULL;
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
723 provider = gtk_css_provider_new();
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
724 gui_check = gtk_css_provider_load_from_path(provider, search_path, &error);
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
725
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
726 if (gui_check && !error) {
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
727 screen = gdk_screen_get_default();
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
728 gtk_style_context_add_provider_for_screen(screen,
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
729 GTK_STYLE_PROVIDER(provider),
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
730 GTK_STYLE_PROVIDER_PRIORITY_USER);
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
731 } else {
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
732 purple_debug_error("gtk", "Unable to load custom gtk-3.0.css: %s\n",
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
733 error ? error->message : "(unknown error)");
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
734 }
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
735
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
736 g_free(search_path);
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
737 #endif
0c11d752fbe4 Load custom CSS for styling on GTK+3.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 33890
diff changeset
738
28800
a57c85844d28 Use PIDGIN_NAME here, rather than duplicate it.
Richard Laager <rlaager@pidgin.im>
parents: 28511
diff changeset
739 g_set_application_name(PIDGIN_NAME);
18345
a51a9c1e4314 Move g_set_application_name to a point before the pidgin UI is created
Gabriel Schulhof <nix@go-nix.ca>
parents: 18256
diff changeset
740
12572
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
741 #ifdef _WIN32
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15567
diff changeset
742 winpidgin_init(hint);
12572
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
743 #endif
a71b6aef215b [gaim-migrate @ 14891]
Daniel Atallah <datallah@pidgin.im>
parents: 12562
diff changeset
744
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
745 purple_core_set_ui_ops(pidgin_core_get_ui_ops());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
746 purple_eventloop_set_ui_ops(pidgin_eventloop_get_ui_ops());
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
747
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
748 if (!purple_core_init(PIDGIN_UI)) {
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
749 fprintf(stderr,
16977
c9cb49bea66d Change the PIDGIN_NAME stuff to allow translators to transliterate the
Richard Laager <rlaager@pidgin.im>
parents: 16967
diff changeset
750 "Initialization of the libpurple core failed. Dumping core.\n"
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
751 "Please report this!\n");
16193
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
752 #ifdef HAVE_SIGNAL_H
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
753 g_free(segfault_message);
e27165dcba9b Free segfault_message when Pidgin exits abnormally
Mark Doliner <markdoliner@pidgin.im>
parents: 16158
diff changeset
754 #endif
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
755 abort();
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
756 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
757
36415
1c0b40253875 Refactored gtkdocklet, gtkimhtmltoolbar, gtkmain to use the new API
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
758 search_path = g_build_filename(purple_user_dir(), "plugins", NULL);
1c0b40253875 Refactored gtkdocklet, gtkimhtmltoolbar, gtkmain to use the new API
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
759 if (!g_stat(search_path, &st))
1c0b40253875 Refactored gtkdocklet, gtkimhtmltoolbar, gtkmain to use the new API
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
760 g_mkdir(search_path, S_IRUSR | S_IWUSR | S_IXUSR);
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36415
diff changeset
761 purple_plugins_add_search_path(search_path);
36485
bfb60fd48059 Add LIBDIR to pidgin and finch search paths
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
762 g_free(search_path);
bfb60fd48059 Add LIBDIR to pidgin and finch search paths
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
763
bfb60fd48059 Add LIBDIR to pidgin and finch search paths
Ankit Vani <a@nevitus.org>
parents: 36431
diff changeset
764 purple_plugins_add_search_path(LIBDIR);
36431
ea007725fd4d Refactored the codebase to use the plugin wrapper functions
Ankit Vani <a@nevitus.org>
parents: 36415
diff changeset
765 purple_plugins_refresh();
36415
1c0b40253875 Refactored gtkdocklet, gtkimhtmltoolbar, gtkmain to use the new API
Ankit Vani <a@nevitus.org>
parents: 34708
diff changeset
766
18207
e89bf4430ea6 Allow disabling check for single instance.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 18191
diff changeset
767 if (opt_si && !purple_core_ensure_single_instance()) {
22872
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
768 #ifdef HAVE_DBUS
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
769 DBusConnection *conn = purple_dbus_get_connection();
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
770 DBusMessage *message = dbus_message_new_method_call(DBUS_SERVICE_PURPLE, DBUS_PATH_PURPLE,
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
771 DBUS_INTERFACE_PURPLE, "PurpleBlistSetVisible");
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
772 gboolean tr = TRUE;
25725
afd7e78b98bd *** Plucked rev 079a5ca1 (paul@darkrain42.org):
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 25702
diff changeset
773 dbus_message_append_args(message, DBUS_TYPE_INT32, &tr, DBUS_TYPE_INVALID);
22872
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
774 dbus_connection_send_with_reply_and_block(conn, message, -1, NULL);
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
775 dbus_message_unref(message);
41d80fc58db2 Pop up the buddylist of the running instance instead of exiting quietly
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22791
diff changeset
776 #endif
31506
d282fb1e8315 Remove the dependency on libstartup-notification. Our use of it had some bugs
David Benjamin <davidben@mit.edu>
parents: 30844
diff changeset
777 gdk_notify_startup_complete();
17126
909c4e988d00 Added purple_core_quit to cleanup.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17122
diff changeset
778 purple_core_quit();
25460
3d23980668be Display rather than log the error when another instance is running.
Richard Laager <rlaager@pidgin.im>
parents: 25440
diff changeset
779 g_printerr(_("Exiting because another libpurple client is already running.\n"));
17121
43d41f5ce17b Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents: 17104
diff changeset
780 #ifdef HAVE_SIGNAL_H
43d41f5ce17b Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents: 17104
diff changeset
781 g_free(segfault_message);
43d41f5ce17b Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents: 17104
diff changeset
782 #endif
17124
f3952abcaad9 Whitespace fix in the dbus_uniq code.
Richard Laager <rlaager@pidgin.im>
parents: 17122
diff changeset
783 return 0;
17122
5ba216aa4583 Style changes + removed unnecessary NULL checks.
Gabriel Schulhof <nix@go-nix.ca>
parents: 17121
diff changeset
784 }
17121
43d41f5ce17b Alternative dbus_uniq implementation
Gabriel Schulhof <nix@go-nix.ca>
parents: 17104
diff changeset
785
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
786 /* load plugins we had when we quit */
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
787 purple_plugins_load_saved(PIDGIN_PREFS_ROOT "/plugins/loaded");
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
788
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
789 ui_main();
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
790
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
791 #ifdef USE_SM
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
792 pidgin_session_init(argv[0], opt_session_arg, opt_config_dir_arg);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
793 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
794 if (opt_session_arg != NULL) {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
795 g_free(opt_session_arg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
796 opt_session_arg = NULL;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
797 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
798 if (opt_config_dir_arg != NULL) {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
799 g_free(opt_config_dir_arg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
800 opt_config_dir_arg = NULL;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
801 }
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
802
24999
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
803 /* This needs to be before purple_blist_show() so the
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
804 * statusbox gets the forced online status. */
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
805 if (opt_force_online)
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
806 purple_network_force_online();
84d597b7e7c6 Add a -f/--force-online option to Pidgin which tells libpurple to claim the
Richard Laager <rlaager@pidgin.im>
parents: 24674
diff changeset
807
12011
85a627679414 [gaim-migrate @ 14304]
Mark Doliner <markdoliner@pidgin.im>
parents: 11928
diff changeset
808 /*
85a627679414 [gaim-migrate @ 14304]
Mark Doliner <markdoliner@pidgin.im>
parents: 11928
diff changeset
809 * We want to show the blist early in the init process so the
85a627679414 [gaim-migrate @ 14304]
Mark Doliner <markdoliner@pidgin.im>
parents: 11928
diff changeset
810 * user feels warm and fuzzy (not cold and prickley).
85a627679414 [gaim-migrate @ 14304]
Mark Doliner <markdoliner@pidgin.im>
parents: 11928
diff changeset
811 */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
812 purple_blist_show();
12011
85a627679414 [gaim-migrate @ 14304]
Mark Doliner <markdoliner@pidgin.im>
parents: 11928
diff changeset
813
16123
8b98683319e7 Rename /purple/gtk preferences back to /gaim/gtk to allow for smooth upgrades
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16071
diff changeset
814 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled"))
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
815 pidgin_debug_window_show();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
816
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
817 if (opt_login) {
17719
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
818 /* disable all accounts */
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
819 for (accounts = purple_accounts_get_all(); accounts != NULL; accounts = accounts->next) {
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
820 PurpleAccount *account = accounts->data;
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
821 purple_account_set_enabled(account, PIDGIN_UI, FALSE);
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
822 }
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
823 /* honor the startup status preference */
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
824 if (!purple_prefs_get_bool("/purple/savedstatus/startup_current_status"))
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
825 purple_savedstatus_activate(purple_savedstatus_get_startup());
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
826 /* now enable the requested ones */
8070b1610abe Make -l do something slightly more sane than it does now, even though it
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17105
diff changeset
827 dologin_named(opt_login_arg);
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
828 if (opt_login_arg != NULL) {
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
829 g_free(opt_login_arg);
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
830 opt_login_arg = NULL;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
831 }
19675
3c1669c529a1 Move purple_prefs_load() to purple_prefs_init() - there's been a TODO for this for a long time. I have no idea why this wasn't done sooner; it seems to work just fine and fixes some bugs where stuff isn't loaded before being used. Fixes #1848 (and I'm sure others). Yell at me if this breaks anything.
Daniel Atallah <datallah@pidgin.im>
parents: 19122
diff changeset
832 } else if (opt_nologin) {
11806
269e9f78cf89 [gaim-migrate @ 14097]
Mark Doliner <markdoliner@pidgin.im>
parents: 11795
diff changeset
833 /* Set all accounts to "offline" */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
834 PurpleSavedStatus *saved_status;
13111
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
835
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
836 /* If we've used this type+message before, lookup the transient status */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
837 saved_status = purple_savedstatus_find_transient_by_type_and_message(
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
838 PURPLE_STATUS_OFFLINE, NULL);
13111
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
839
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
840 /* If this type+message is unique then create a new transient saved status */
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
841 if (saved_status == NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
842 saved_status = purple_savedstatus_new(NULL, PURPLE_STATUS_OFFLINE);
13111
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
843
31caa48825f7 [gaim-migrate @ 15472]
Mark Doliner <markdoliner@pidgin.im>
parents: 13106
diff changeset
844 /* Set the status for each account */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
845 purple_savedstatus_activate(saved_status);
19675
3c1669c529a1 Move purple_prefs_load() to purple_prefs_init() - there's been a TODO for this for a long time. I have no idea why this wasn't done sooner; it seems to work just fine and fixes some bugs where stuff isn't loaded before being used. Fixes #1848 (and I'm sure others). Yell at me if this breaks anything.
Daniel Atallah <datallah@pidgin.im>
parents: 19122
diff changeset
846 } else {
11348
b8938b189d61 [gaim-migrate @ 13565]
Mark Doliner <markdoliner@pidgin.im>
parents: 11277
diff changeset
847 /* Everything is good to go--sign on already */
16478
19107605c565 Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@pidgin.im>
parents: 16263
diff changeset
848 if (!purple_prefs_get_bool("/purple/savedstatus/startup_current_status"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
849 purple_savedstatus_activate(purple_savedstatus_get_startup());
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15883
diff changeset
850 purple_accounts_restore_current_statuses();
10738
63ca8277c234 [gaim-migrate @ 12340]
Mark Doliner <markdoliner@pidgin.im>
parents: 10638
diff changeset
851 }
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
852
18121
2d8ea56b9097 Mark the return type const for the following functions. I noticed this
Richard Laager <rlaager@pidgin.im>
parents: 18093
diff changeset
853 if ((active_accounts = purple_accounts_get_all_active()) == NULL)
11403
e7e7ed37dc51 [gaim-migrate @ 13638]
Mark Doliner <markdoliner@pidgin.im>
parents: 11348
diff changeset
854 {
15562
8c8249fe5e3c gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents: 15498
diff changeset
855 pidgin_accounts_window_show();
10315
2738b56121ca [gaim-migrate @ 11515]
Sean Egan <seanegan@pidgin.im>
parents: 10307
diff changeset
856 }
13835
86dea5f9cffa [gaim-migrate @ 16282]
Yosef Radchenko
parents: 13587
diff changeset
857 else
86dea5f9cffa [gaim-migrate @ 16282]
Yosef Radchenko
parents: 13587
diff changeset
858 {
18121
2d8ea56b9097 Mark the return type const for the following functions. I noticed this
Richard Laager <rlaager@pidgin.im>
parents: 18093
diff changeset
859 g_list_free(active_accounts);
13835
86dea5f9cffa [gaim-migrate @ 16282]
Yosef Radchenko
parents: 13587
diff changeset
860 }
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
861
31506
d282fb1e8315 Remove the dependency on libstartup-notification. Our use of it had some bugs
David Benjamin <davidben@mit.edu>
parents: 30844
diff changeset
862 /* GTK clears the notification for us when opening the first window,
d282fb1e8315 Remove the dependency on libstartup-notification. Our use of it had some bugs
David Benjamin <davidben@mit.edu>
parents: 30844
diff changeset
863 * but we may have launched with only a status icon, so clear the it
d282fb1e8315 Remove the dependency on libstartup-notification. Our use of it had some bugs
David Benjamin <davidben@mit.edu>
parents: 30844
diff changeset
864 * just in case. */
d282fb1e8315 Remove the dependency on libstartup-notification. Our use of it had some bugs
David Benjamin <davidben@mit.edu>
parents: 30844
diff changeset
865 gdk_notify_startup_complete();
14762
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14743
diff changeset
866
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14743
diff changeset
867 #ifdef _WIN32
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15567
diff changeset
868 winpidgin_post_init();
14762
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14743
diff changeset
869 #endif
f494a5f12981 [gaim-migrate @ 17452]
Daniel Atallah <datallah@pidgin.im>
parents: 14743
diff changeset
870
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
871 gtk_main();
10320
f5b0f5cf8562 [gaim-migrate @ 11527]
Mark Doliner <markdoliner@pidgin.im>
parents: 10317
diff changeset
872
13428
78687459c64b [gaim-migrate @ 15802]
Daniel Atallah <datallah@pidgin.im>
parents: 13322
diff changeset
873 #ifdef HAVE_SIGNAL_H
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
874 g_free(segfault_message);
29991
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
875 g_source_remove(signal_channel_watcher);
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
876 close(signal_sockets[0]);
37e306c31983 Try to be polite and free stuff associated with our signal watcher pipes
Mark Doliner <markdoliner@pidgin.im>
parents: 29662
diff changeset
877 close(signal_sockets[1]);
12562
adbcee61068b [gaim-migrate @ 14881]
Daniel Atallah <datallah@pidgin.im>
parents: 12556
diff changeset
878 #endif
12556
f4d4e4e3a825 [gaim-migrate @ 14875]
Richard Laager <rlaager@pidgin.im>
parents: 12409
diff changeset
879
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
880 #ifdef _WIN32
15574
18d9d1c05994 Win32 de-gaimification of pidgin
Daniel Atallah <datallah@pidgin.im>
parents: 15567
diff changeset
881 winpidgin_cleanup();
10302
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
882 #endif
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
883
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
884 return 0;
8c73238fb5d4 [gaim-migrate @ 11487]
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
885 }

mercurial