annotate src/main.c @ 6179:16e384bb7fbf

[gaim-migrate @ 6664] Core/UI split the core initialization and shutdown. I think I got all the bugs worked out. It's looking nice and stable here, but if it causes CVS to go to hell for everyone.. er, try to fix it or let me know :) I don't have this in patch form. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Thu, 17 Jul 2003 10:35:43 +0000
parents 0d2bd49c611e
children 1fc158d6ebdb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
22 #include "internal.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
23
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
24 #include "account.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
25 #include "conversation.h"
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
26 #include "core.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
27 #include "debug.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
28 #include "ft.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
29 #include "log.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
30 #include "notify.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
31 #include "prefs.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
32 #include "prpl.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
33 #include "pounce.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
34 #include "sound.h"
6106
99f4bbeb27bc [gaim-migrate @ 6567]
Mark Doliner <mark@kingant.net>
parents: 6065
diff changeset
35 #include "status.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
36 #include "util.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
37
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
38 #include "gtkaccount.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
39 #include "gtkblist.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
40 #include "gtkconn.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
41 #include "gtkconv.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
42 #include "gtkdebug.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
43 #include "gtkft.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
44 #include "gtknotify.h"
5875
448f2f4ca3ec [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5874
diff changeset
45 #include "gtkpounce.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
46 #include "gtkprefs.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
47 #include "gtkrequest.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
48 #include "gtksound.h"
5943
a4f2aba0848d [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5909
diff changeset
49 #include "gtkutils.h"
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
50 #include "stock.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
51
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
52 #include "ui.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
53
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
54 #if HAVE_SIGNAL_H
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
55 # include <signal.h>
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
56 #endif
5872
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
57
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
58 #include "locale.h"
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
59 #include <getopt.h>
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
60
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
61 extern void load_prefs();
059d95c67cda [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 5866
diff changeset
62 extern void load_pounces();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
63
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
64 static GtkWidget *name;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
65 static GtkWidget *pass;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
66
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
67 GSList *away_messages = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
68 GSList *message_queue = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
69 GSList *unread_message_queue = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
70 GSList *away_time_queue = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
71
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
72 GtkWidget *mainwindow = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
73
4561
9df99116840a [gaim-migrate @ 4842]
Nathan Walp <nwalp@pidgin.im>
parents: 4514
diff changeset
74
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
75 int opt_away = 0;
4687
283fb289c510 [gaim-migrate @ 4998]
Sean Egan <seanegan@gmail.com>
parents: 4635
diff changeset
76 int docklet_count = 0;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
77 char *opt_away_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
78 char *opt_rcfile_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
79 int opt_debug = 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
81 int opt_gdebug = 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
82 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
84 #if HAVE_SIGNAL_H
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
85 /*
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86 * Lists of signals we wish to catch and those we wish to ignore.
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
87 * Each list terminated with -1
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
89 static int catch_sig_list[] = {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90 SIGSEGV,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
91 SIGHUP,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
92 SIGINT,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
93 SIGTERM,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
94 SIGQUIT,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
95 SIGCHLD,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
96 -1
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
97 };
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
98
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
99 static int ignore_sig_list[] = {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
100 SIGPIPE,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
101 -1
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
102 };
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
103 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
104
4561
9df99116840a [gaim-migrate @ 4842]
Nathan Walp <nwalp@pidgin.im>
parents: 4514
diff changeset
105 static guint snd_tmout = 0;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
106 static gboolean sound_timeout(gpointer data)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
107 {
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
108 gaim_gtk_sound_set_login_mute(FALSE);
4561
9df99116840a [gaim-migrate @ 4842]
Nathan Walp <nwalp@pidgin.im>
parents: 4514
diff changeset
109 snd_tmout = 0;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
110 return FALSE;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
111 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
112
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
113 /* we need to do this for Oscar because serv_login only starts the login
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
114 * process, it doesn't end there. gaim_setup will be called later from
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
115 * oscar.c, after the buddy list is made and serv_finish_login is called */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
116 void gaim_setup(GaimConnection *gc)
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
117 {
5734
5cd96052bc45 [gaim-migrate @ 6158]
Nathan Walp <nwalp@pidgin.im>
parents: 5717
diff changeset
118 if (gaim_prefs_get_bool("/gaim/gtk/sound/enabled/login")
5cd96052bc45 [gaim-migrate @ 6158]
Nathan Walp <nwalp@pidgin.im>
parents: 5717
diff changeset
119 && gaim_prefs_get_bool("/gaim/gtk/sound/silent_signon")) {
4561
9df99116840a [gaim-migrate @ 4842]
Nathan Walp <nwalp@pidgin.im>
parents: 4514
diff changeset
120 if(snd_tmout) {
9df99116840a [gaim-migrate @ 4842]
Nathan Walp <nwalp@pidgin.im>
parents: 4514
diff changeset
121 g_source_remove(snd_tmout);
9df99116840a [gaim-migrate @ 4842]
Nathan Walp <nwalp@pidgin.im>
parents: 4514
diff changeset
122 }
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
123 gaim_gtk_sound_set_login_mute(TRUE);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
124 snd_tmout = g_timeout_add(10000, sound_timeout, NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
125 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
126 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
127
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
128 static gboolean domiddleclick(GtkWidget *w, GdkEventButton *event, gpointer null)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
129 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
130 if (event->button != 2)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
131 return FALSE;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132
5780
a9029bed0479 [gaim-migrate @ 6205]
Christian Hammond <chipx86@chipx86.com>
parents: 5766
diff changeset
133 gaim_accounts_auto_login(GAIM_GTK_UI);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
134
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
135 return TRUE;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
136 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
137
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
138 static void dologin(GtkWidget *widget, GtkWidget *w)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
139 {
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
140 GaimAccount *account;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
141 const char *username = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(name)->entry));
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
142 const char *password = gtk_entry_get_text(GTK_ENTRY(pass));
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
143
6036
547ba881bc7e [gaim-migrate @ 6486]
Mark Doliner <mark@kingant.net>
parents: 6019
diff changeset
144 if (*username == '\0') {
5436
ad445074d239 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5435
diff changeset
145 gaim_notify_error(NULL, NULL, _("Please enter your login."), NULL);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
146 return;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
147 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
148
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
149 /* if there is more than one user of the same name, then fuck
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
150 * them, they just have to use the account editor to sign in
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
151 * the second one */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
152
5874
964e4f94fc56 [gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
153 account = gaim_accounts_find(username, -1);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
154 if (!account) {
5943
a4f2aba0848d [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5909
diff changeset
155 account = gaim_account_new(username, "prpl-oscar");
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
156
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
157 gaim_account_set_remember_password(account, TRUE);
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
158 }
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
159
6036
547ba881bc7e [gaim-migrate @ 6486]
Mark Doliner <mark@kingant.net>
parents: 6019
diff changeset
160 gaim_account_set_password(account, (*password != '\0') ? password : NULL);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
161
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
162 gaim_account_connect(account);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
163 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
164
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
165 /* <name> is a comma-separated list of names, or NULL
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
166 if NULL and there is at least one user defined in .gaimrc, try to login.
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
167 if not NULL, parse <name> into separate strings, look up each one in
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
168 .gaimrc and, if it's there, try to login.
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
169 returns: 0 if successful
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
170 -1 if no user was found that had a saved password
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
171 */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
172 static int dologin_named(char *name)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
173 {
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
174 GaimAccount *account;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
175 char **names, **n;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
176 int retval = -1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
177
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
178 if (name !=NULL) { /* list of names given */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
179 names = g_strsplit(name, ",", 32);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
180 for (n = names; *n != NULL; n++) {
5874
964e4f94fc56 [gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
181 account = gaim_accounts_find(*n, -1);
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4489
diff changeset
182 if (account) { /* found a user */
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
183 if (gaim_account_get_remember_password(account)) {
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
184 retval = 0;
6036
547ba881bc7e [gaim-migrate @ 6486]
Mark Doliner <mark@kingant.net>
parents: 6019
diff changeset
185 gaim_account_connect(account);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
186 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
187 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
188 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
189 g_strfreev(names);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
190 } else { /* no name given, use default */
5580
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
191 account = (GaimAccount *)gaim_accounts_get_all()->data;
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
192
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
193 if (gaim_account_get_remember_password(account)) {
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
194 retval = 0;
6036
547ba881bc7e [gaim-migrate @ 6486]
Mark Doliner <mark@kingant.net>
parents: 6019
diff changeset
195 gaim_account_connect(account);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
196 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
197 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
199 return retval;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
200 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
201
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
203 static void doenter(GtkWidget *widget, GtkWidget *w)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
204 {
6109
0922bb7a7bbc [gaim-migrate @ 6571]
Mark Doliner <mark@kingant.net>
parents: 6106
diff changeset
205 gtk_entry_set_text(GTK_ENTRY(pass), "");
0922bb7a7bbc [gaim-migrate @ 6571]
Mark Doliner <mark@kingant.net>
parents: 6106
diff changeset
206 gtk_editable_select_region(GTK_EDITABLE(GTK_COMBO(name)->entry), 0, 0);
0922bb7a7bbc [gaim-migrate @ 6571]
Mark Doliner <mark@kingant.net>
parents: 6106
diff changeset
207 gtk_widget_grab_focus(pass);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
208 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
209
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
210
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
211 static void combo_changed(GtkWidget *w, GtkWidget *combo)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
212 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
213 const char *txt = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(combo)->entry));
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
214 GaimAccount *account;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
215
5874
964e4f94fc56 [gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
216 account = gaim_accounts_find(txt, -1);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
217
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
218 if (account && gaim_account_get_remember_password(account)) {
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4489
diff changeset
219 gtk_entry_set_text(GTK_ENTRY(pass), account->password);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
220 } else {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
221 gtk_entry_set_text(GTK_ENTRY(pass), "");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
222 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
223 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
224
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
225
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
226 static GList *combo_user_names()
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
227 {
5580
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
228 GList *accts = gaim_accounts_get_all();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 GList *tmp = NULL;
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
230 GaimAccount *account;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4489
diff changeset
232 if (!accts)
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
233 return g_list_append(NULL, _("<New User>"));
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
234
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4489
diff changeset
235 while (accts) {
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
236 account = (GaimAccount *)accts->data;
4491
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4489
diff changeset
237 tmp = g_list_append(tmp, account->username);
3196d9044a45 [gaim-migrate @ 4766]
Nathan Walp <nwalp@pidgin.im>
parents: 4489
diff changeset
238 accts = accts->next;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
239 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
240
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
241 return tmp;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
242 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
243
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
244 static void login_window_closed(GtkWidget *w, GdkEvent *ev, gpointer d)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
245 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
246 if(docklet_count) {
4880
9b51c090236a [gaim-migrate @ 5210]
Herman Bloggs <hermanator12002@yahoo.com>
parents: 4800
diff changeset
247 #ifdef _WIN32
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
248 wgaim_systray_minimize(mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
249 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
250 gtk_widget_hide(mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
251 } else
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
252 gaim_core_quit();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
253 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
254
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
255 void show_login()
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
256 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
257 GtkWidget *image;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
258 GtkWidget *vbox;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
259 GtkWidget *button;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
260 GtkWidget *hbox;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
261 GtkWidget *label;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
262 GtkWidget *vbox2;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
263 GList *tmp;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
264
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
265 /* Do we already have a main window opened? If so, bring it back, baby... ribs... yeah */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
266 if (mainwindow) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
267 gtk_window_present(GTK_WINDOW(mainwindow));
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
268 return;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
269 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
270
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
271 mainwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
272
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
273 gtk_window_set_role(GTK_WINDOW(mainwindow), "login");
4635
42d53c416bb9 [gaim-migrate @ 4942]
Nathan Walp <nwalp@pidgin.im>
parents: 4589
diff changeset
274 gtk_window_set_resizable(GTK_WINDOW(mainwindow), FALSE);
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
275 gtk_window_set_title(GTK_WINDOW(mainwindow), _("Login"));
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
276 gtk_widget_realize(mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
277 gdk_window_set_group(mainwindow->window, mainwindow->window);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
278 gtk_container_set_border_width(GTK_CONTAINER(mainwindow), 5);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
279 g_signal_connect(G_OBJECT(mainwindow), "delete_event",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
280 G_CALLBACK(login_window_closed), mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
281
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
282 vbox = gtk_vbox_new(FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
283 gtk_container_add(GTK_CONTAINER(mainwindow), vbox);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
284
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
285 image = gtk_image_new_from_stock(GAIM_STOCK_LOGO, gtk_icon_size_from_name(GAIM_ICON_SIZE_LOGO));
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
286 gtk_box_pack_start(GTK_BOX(vbox), image, FALSE, FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
287
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
288 vbox2 = gtk_vbox_new(FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
289 gtk_container_set_border_width(GTK_CONTAINER(vbox2), 5);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
290
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
291 label = gtk_label_new(_("Screen Name:"));
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
292 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
293 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
294
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
295 name = gtk_combo_new();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
296 tmp = combo_user_names();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
297 gtk_combo_set_popdown_strings(GTK_COMBO(name), tmp);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
298 g_list_free(tmp);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299 g_signal_connect(G_OBJECT(GTK_COMBO(name)->entry), "activate",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
300 G_CALLBACK(doenter), mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
301 g_signal_connect(G_OBJECT(GTK_COMBO(name)->entry), "changed",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
302 G_CALLBACK(combo_changed), name);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
303 gtk_box_pack_start(GTK_BOX(vbox2), name, FALSE, TRUE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
304 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, TRUE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
305
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
306 vbox2 = gtk_vbox_new(FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307 gtk_container_set_border_width(GTK_CONTAINER(vbox2), 5);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
308
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
309 label = gtk_label_new(_("Password:"));
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
310 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
311 gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
312
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
313 pass = gtk_entry_new();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
314 gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
315 g_signal_connect(G_OBJECT(pass), "activate",
6109
0922bb7a7bbc [gaim-migrate @ 6571]
Mark Doliner <mark@kingant.net>
parents: 6106
diff changeset
316 G_CALLBACK(dologin), mainwindow);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
317 gtk_box_pack_start(GTK_BOX(vbox2), pass, FALSE, TRUE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
318 gtk_box_pack_start(GTK_BOX(vbox), vbox2, FALSE, TRUE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
319
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
320 /* Now for the button box */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
321 hbox = gtk_hbox_new(TRUE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
322 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 5);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
323
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
324 /* And now for the buttons */
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
325 button = gaim_pixbuf_button_from_stock(_("Accounts"), GAIM_STOCK_ACCOUNTS, GAIM_BUTTON_VERTICAL);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
326 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
327 g_signal_connect(G_OBJECT(button), "clicked",
6119
0d2bd49c611e [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6109
diff changeset
328 G_CALLBACK(gaim_gtk_accounts_window_show), mainwindow);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
329 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
330
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
331 #ifdef NO_MULTI
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
332 gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
333 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
334
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
335 button = gaim_pixbuf_button_from_stock(_("Preferences"), GTK_STOCK_PREFERENCES, GAIM_BUTTON_VERTICAL);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
336 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
337 g_signal_connect(G_OBJECT(button), "clicked",
5530
2c4c975620f0 [gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents: 5492
diff changeset
338 G_CALLBACK(gaim_gtk_prefs_show), mainwindow);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
339 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
340
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
341 button = gaim_pixbuf_button_from_stock(_("Sign On"), GAIM_STOCK_SIGN_ON, GAIM_BUTTON_VERTICAL);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
342 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
343 g_signal_connect(G_OBJECT(button), "clicked",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
344 G_CALLBACK(dologin), mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
345 g_signal_connect(G_OBJECT(button), "button-press-event", G_CALLBACK(domiddleclick), NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
346 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
347
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
348 /* Now grab the focus that we need */
5580
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
349 if (gaim_accounts_get_all()) {
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
350 GaimAccount *account = gaim_accounts_get_all()->data;
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
351
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
352 if (gaim_account_get_remember_password(account)) {
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
353 combo_changed(NULL, name);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
354 gtk_widget_grab_focus(button);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
355 } else {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
356 gtk_widget_grab_focus(pass);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
357 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
358 } else {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
359 gtk_widget_grab_focus(name);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
360 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
361
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
362 /* And raise the curtain! */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
363 gtk_widget_show_all(mainwindow);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
364
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
365 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
366
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
367 #if HAVE_SIGNAL_H
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
368 void sighandler(int sig)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
369 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
370 switch (sig) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
371 case SIGHUP:
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
372 gaim_debug(GAIM_DEBUG_WARNING, "sighandler",
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
373 "Caught signal %d\n", sig);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
374 gaim_connections_disconnect_all();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
375 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
376 case SIGSEGV:
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
377 #ifndef DEBUG
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
378 fprintf(stderr, "Gaim has segfaulted and attempted to dump a core file.\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
379 "This is a bug in the software and has happened through\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
380 "no fault of your own.\n\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
381 "It is possible that this bug is already fixed in CVS.\n"
5747
7ec0cd751e6b [gaim-migrate @ 6172]
Luke Schierer <lschiere@pidgin.im>
parents: 5734
diff changeset
382 "If you can reproduce the crash, please notify the gaim\n"
7ec0cd751e6b [gaim-migrate @ 6172]
Luke Schierer <lschiere@pidgin.im>
parents: 5734
diff changeset
383 "maintainers by reporting a bug at\n"
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
384 WEBSITE "bug.php\n\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
385 "Please make sure to specify what you were doing at the time,\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
386 "and post the backtrace from the core file. If you do not know\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
387 "how to get the backtrace, please get instructions at\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
388 WEBSITE "gdb.php. If you need further\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
389 "assistance, please IM either RobFlynn or SeanEgn and\n"
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
390 "they can help you.\n");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
391 #else
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
392 fprintf(stderr, "Oh no! Segmentation fault!\n");
4703
e4dda06a3143 [gaim-migrate @ 5014]
Sean Egan <seanegan@gmail.com>
parents: 4695
diff changeset
393 /*g_on_error_query (g_get_prgname());*/
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
394 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
395 abort();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
396 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
397 case SIGCHLD:
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
398 clean_pid();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
399 #if HAVE_SIGNAL_H
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
400 signal(SIGCHLD, sighandler); /* restore signal catching on this one! */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
401 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
402 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
403 default:
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
404 gaim_debug(GAIM_DEBUG_WARNING, "sighandler",
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
405 "Caught signal %d\n", sig);
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
406 gaim_connections_disconnect_all();
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
407
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
408 gaim_plugins_unload_all();
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
409
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
410 if (gtk_main_level())
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
411 gtk_main_quit();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
412 exit(0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
413 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
414 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
415 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
416
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
417 static int ui_main()
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
418 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
419 #ifndef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
420 GList *icons = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
421 GdkPixbuf *icon = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
422 char *icon_path;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
423 #endif
4978
307c16c4b57e [gaim-migrate @ 5313]
Luke Schierer <lschiere@pidgin.im>
parents: 4957
diff changeset
424
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
425 if (current_smiley_theme == NULL) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
426 smiley_theme_probe();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
427 if (smiley_themes) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
428 struct smiley_theme *smile = smiley_themes->data;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
429 load_smiley_theme(smile->path, TRUE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
430 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
431 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
432
5422
af62169c74fd [gaim-migrate @ 5801]
Sean Egan <seanegan@gmail.com>
parents: 5242
diff changeset
433 gaim_gtk_blist_setup_sort_methods();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
434
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
435 #ifndef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
436 /* use the nice PNG icon for all the windows */
5024
8e55a4d362a3 [gaim-migrate @ 5361]
Sean Egan <seanegan@gmail.com>
parents: 4978
diff changeset
437 icon_path = g_build_filename(DATADIR, "pixmaps", "gaim", "icons", "online.png", NULL);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
438 icon = gdk_pixbuf_new_from_file(icon_path, NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
439 g_free(icon_path);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
440 if (icon) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
441 icons = g_list_append(icons,icon);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
442 gtk_window_set_default_icon_list(icons);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
443 g_object_unref(G_OBJECT(icon));
4978
307c16c4b57e [gaim-migrate @ 5313]
Luke Schierer <lschiere@pidgin.im>
parents: 4957
diff changeset
444 g_list_free(icons);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
445 } else {
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
446 gaim_debug(GAIM_DEBUG_ERROR, "ui_main",
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
447 "Failed to load the default window icon!\n");
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
448 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
449 #endif
4978
307c16c4b57e [gaim-migrate @ 5313]
Luke Schierer <lschiere@pidgin.im>
parents: 4957
diff changeset
450
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
451 return 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
452 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
453
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
454 static void set_first_user(char *name)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
455 {
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
456 GaimAccount *account;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
457
5874
964e4f94fc56 [gaim-migrate @ 6306]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
458 account = gaim_accounts_find(name, -1);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
459
5580
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
460 if (account == NULL) /* new user */
5943
a4f2aba0848d [gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents: 5909
diff changeset
461 account = gaim_account_new(name, "prpl-oscar");
5580
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
462
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
463 /* Place it as the first user. */
86456ec3ca25 [gaim-migrate @ 5984]
Christian Hammond <chipx86@chipx86.com>
parents: 5573
diff changeset
464 gaim_accounts_reorder(account, 0);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
465 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
466
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
467 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
468 /* WIN32 print and log handlers */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
469
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
470 static void gaim_dummy_print( const gchar* string ) {
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
471 return;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
472 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
473
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
474 static void gaim_dummy_log_handler (const gchar *domain,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
475 GLogLevelFlags flags,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
476 const gchar *msg,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
477 gpointer user_data) {
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
478 return;
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
479 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
480
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
481 static void gaim_log_handler (const gchar *domain,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
482 GLogLevelFlags flags,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
483 const gchar *msg,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
484 gpointer user_data) {
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
485 gaim_debug(GAIM_DEBUG_MISC, "log", "%s - %s\n", domain, msg);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
486 g_log_default_handler(domain, flags, msg, user_data);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
487 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
488 #endif /* _WIN32 */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
489
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
490 static void
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
491 debug_init(void)
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
492 {
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
493 gaim_set_debug_ui_ops(gaim_get_gtk_debug_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
494 gaim_gtk_debug_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
495 }
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
496
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
497 static void
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
498 gaim_gtk_ui_init(void)
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
499 {
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
500 /* Set the UI operation structures. */
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
501 gaim_set_win_ui_ops(gaim_get_gtk_window_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
502 gaim_set_xfer_ui_ops(gaim_get_gtk_xfer_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
503 gaim_set_blist_ui_ops(gaim_get_gtk_blist_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
504 gaim_set_notify_ui_ops(gaim_get_gtk_notify_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
505 gaim_set_request_ui_ops(gaim_get_gtk_request_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
506 gaim_set_sound_ui_ops(gaim_get_gtk_sound_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
507 gaim_set_connection_ui_ops(gaim_get_gtk_connection_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
508
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
509 gaim_gtk_prefs_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
510 gaim_gtk_blist_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
511 gaim_gtk_conversation_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
512 gaim_gtk_pounces_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
513 gaim_gtk_xfer_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
514 }
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
515
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
516 static void
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
517 gaim_gtk_quit(void)
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
518 {
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
519 /* XXX? */
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
520
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
521 /* captain's log, stardate... */
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
522 system_log(log_quit, NULL, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON);
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
523
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
524 #ifdef USE_SM
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
525 /* unplug */
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
526 session_end();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
527 #endif
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
528
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
529 /* and end it all... */
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
530 gtk_main_quit();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
531 }
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
532
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
533 static GaimCoreUiOps core_ops =
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
534 {
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
535 gaim_gtk_prefs_init,
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
536 debug_init,
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
537 gaim_gtk_ui_init,
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
538 gaim_gtk_quit
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
539 };
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
540
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
541 static GaimCoreUiOps *
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
542 gaim_get_gtk_core_ui_ops(void)
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
543 {
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
544 return &core_ops;
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
545 }
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
546
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
547 /* FUCKING GET ME A TOWEL! */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
548 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
549 int gaim_main(int argc, char *argv[])
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
550 #else
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
551 int main(int argc, char *argv[])
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
552 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
553 {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
554 int opt_acct = 0, opt_help = 0, opt_version = 0, opt_login = 0, opt_nologin = 0, dologin_ret = -1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
555 char *opt_user_arg = NULL, *opt_login_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
556 char *opt_session_arg = NULL;
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
557 char *plugin_search_paths[3];
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
558 #if HAVE_SIGNAL_H
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
559 int sig_indx; /* for setting up signal catching */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
560 sigset_t sigset;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
561 void (*prev_sig_disp)();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
562 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
563 int opt, opt_user = 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
564 int i;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
565
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
566 struct option long_options[] = {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
567 {"acct", no_argument, NULL, 'a'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
568 /*{"away", optional_argument, NULL, 'w'}, */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
569 {"help", no_argument, NULL, 'h'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
570 /*{"login", optional_argument, NULL, 'l'}, */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
571 {"loginwin", no_argument, NULL, 'n'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
572 {"user", required_argument, NULL, 'u'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
573 {"file", required_argument, NULL, 'f'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
574 {"debug", no_argument, NULL, 'd'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
575 {"version", no_argument, NULL, 'v'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
576 {"session", required_argument, NULL, 's'},
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
577 {0, 0, 0, 0}
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
578 };
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
579
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
580 #ifdef DEBUG
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
581 opt_debug = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
582 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
583 #ifdef ENABLE_NLS
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
584 bindtextdomain(PACKAGE, LOCALEDIR);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
585 bind_textdomain_codeset(PACKAGE, "UTF-8");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
586 textdomain(PACKAGE);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
587 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
588
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
589 #if HAVE_SIGNAL_H
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
590 /* Let's not violate any PLA's!!!! */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
591 /* jseymour: whatever the fsck that means */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
592 /* Robot101: for some reason things like gdm like to block *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
593 * useful signals like SIGCHLD, so we unblock all the ones we *
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
594 * declare a handler for. thanks JSeymour and Vann. */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
595 if (sigemptyset(&sigset)) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
596 char errmsg[BUFSIZ];
5435
a2f26666de42 [gaim-migrate @ 5817]
Mark Doliner <mark@kingant.net>
parents: 5422
diff changeset
597 snprintf(errmsg, BUFSIZ, "Warning: couldn't initialise empty signal set");
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
598 perror(errmsg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
599 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
600 for(sig_indx = 0; catch_sig_list[sig_indx] != -1; ++sig_indx) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
601 if((prev_sig_disp = signal(catch_sig_list[sig_indx], sighandler)) == SIG_ERR) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
602 char errmsg[BUFSIZ];
5435
a2f26666de42 [gaim-migrate @ 5817]
Mark Doliner <mark@kingant.net>
parents: 5422
diff changeset
603 snprintf(errmsg, BUFSIZ, "Warning: couldn't set signal %d for catching",
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
604 catch_sig_list[sig_indx]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
605 perror(errmsg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
606 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
607 if(sigaddset(&sigset, catch_sig_list[sig_indx])) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
608 char errmsg[BUFSIZ];
5435
a2f26666de42 [gaim-migrate @ 5817]
Mark Doliner <mark@kingant.net>
parents: 5422
diff changeset
609 snprintf(errmsg, BUFSIZ, "Warning: couldn't include signal %d for unblocking",
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
610 catch_sig_list[sig_indx]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
611 perror(errmsg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
612 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
613 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
614 for(sig_indx = 0; ignore_sig_list[sig_indx] != -1; ++sig_indx) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
615 if((prev_sig_disp = signal(ignore_sig_list[sig_indx], SIG_IGN)) == SIG_ERR) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
616 char errmsg[BUFSIZ];
5435
a2f26666de42 [gaim-migrate @ 5817]
Mark Doliner <mark@kingant.net>
parents: 5422
diff changeset
617 snprintf(errmsg, BUFSIZ, "Warning: couldn't set signal %d to ignore",
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
618 ignore_sig_list[sig_indx]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
619 perror(errmsg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
620 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
621 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
622
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
623 if (sigprocmask(SIG_UNBLOCK, &sigset, NULL)) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
624 char errmsg[BUFSIZ];
5435
a2f26666de42 [gaim-migrate @ 5817]
Mark Doliner <mark@kingant.net>
parents: 5422
diff changeset
625 snprintf(errmsg, BUFSIZ, "Warning: couldn't unblock signals");
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
626 perror(errmsg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
627 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
628 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
629
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
630 for (i = 0; i < argc; i++) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
631 /* --login option */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
632 if (strstr(argv[i], "--l") == argv[i]) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
633 char *equals;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
634 opt_login = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
635 if ((equals = strchr(argv[i], '=')) != NULL) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
636 /* --login=NAME */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
637 opt_login_arg = g_strdup(equals + 1);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
638 if (strlen(opt_login_arg) == 0) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
639 g_free(opt_login_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
640 opt_login_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
641 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
642 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
643 /* --login NAME */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
644 opt_login_arg = g_strdup(argv[i + 1]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
645 strcpy(argv[i + 1], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
646 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
647 strcpy(argv[i], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
648 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
649 /* -l option */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
650 else if (strstr(argv[i], "-l") == argv[i]) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
651 opt_login = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
652 if (strlen(argv[i]) > 2) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
653 /* -lNAME */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
654 opt_login_arg = g_strdup(argv[i] + 2);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
655 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
656 /* -l NAME */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
657 opt_login_arg = g_strdup(argv[i + 1]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
658 strcpy(argv[i + 1], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
659 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
660 strcpy(argv[i], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
661 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
662 /* --away option */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
663 else if (strstr(argv[i], "--aw") == argv[i]) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
664 char *equals;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
665 opt_away = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
666 if ((equals = strchr(argv[i], '=')) != NULL) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
667 /* --away=MESG */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
668 opt_away_arg = g_strdup(equals + 1);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
669 if (strlen(opt_away_arg) == 0) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
670 g_free(opt_away_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
671 opt_away_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
672 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
673 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
674 /* --away MESG */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
675 opt_away_arg = g_strdup(argv[i + 1]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
676 strcpy(argv[i + 1], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
677 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
678 strcpy(argv[i], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
679 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
680 /* -w option */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
681 else if (strstr(argv[i], "-w") == argv[i]) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
682 opt_away = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
683 if (strlen(argv[i]) > 2) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
684 /* -wMESG */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
685 opt_away_arg = g_strdup(argv[i] + 2);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
686 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
687 /* -w MESG */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
688 opt_away_arg = g_strdup(argv[i + 1]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
689 strcpy(argv[i + 1], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
690 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
691 strcpy(argv[i], " ");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
692 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
693 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
694 /*
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
695 if (opt_login) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
696 printf ("--login given with arg %s\n",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
697 opt_login_arg ? opt_login_arg : "NULL");
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
698 exit(0);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
699 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
700 */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
701
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
702 gtk_set_locale();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
703 gtk_init(&argc, &argv);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
704
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
705 /* scan command-line options */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
706 opterr = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
707 while ((opt = getopt_long(argc, argv,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
708 #ifndef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
709 "adhu:f:vns:",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
710 #else
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
711 "adghu:f:vn",
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
712 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
713 long_options, NULL)) != -1) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
714 switch (opt) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
715 case 'u': /* set user */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
716 opt_user = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
717 opt_user_arg = g_strdup(optarg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
718 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
719 case 'a': /* account editor */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
720 opt_acct = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
721 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
722 case 'd': /* debug */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
723 opt_debug = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
724 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
725 case 'f':
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
726 opt_rcfile_arg = g_strdup(optarg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
727 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
728 case 's': /* use existing session ID */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
729 opt_session_arg = g_strdup(optarg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
730 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
731 case 'v': /* version */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
732 opt_version = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
733 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
734 case 'h': /* help */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
735 opt_help = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
736 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
737 case 'n': /* don't autologin */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
738 opt_nologin = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
739 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
740 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
741 case 'g': /* debug GTK and GLIB */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
742 opt_gdebug = 1;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
743 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
744 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
745 case '?':
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
746 default:
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
747 show_usage(1, argv[0]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
748 return 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
749 break;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
750 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
751 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
752
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
753 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
754 /* We don't want a console window.. */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
755 /*
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
756 * Any calls to the glib logging functions, result in a call to AllocConsole().
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
757 * ME and 98 will in such cases produce a console window (2000 not), despite
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
758 * being built as a windows app rather than a console app. So we should either
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
759 * ignore messages by setting dummy log handlers, or redirect messages.
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
760 * This requires setting handlers for all domains (any lib which uses g_logging).
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
761 */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
762
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
763 g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
764 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
765 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
766 g_log_set_handler ("Gdk", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
767 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
768 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
769 g_log_set_handler ("Gtk", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
770 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
771 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
772 g_log_set_handler ("GLib", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
773 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
774 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
775 g_log_set_handler ("GModule", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
776 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
777 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
778 g_log_set_handler ("GLib-GObject", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
779 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
780 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
781 g_log_set_handler ("GThread", G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
782 (opt_gdebug ? gaim_log_handler : gaim_dummy_log_handler),
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
783 NULL);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
784
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
785 /* g_print also makes a call to AllocConsole(), therefore a handler needs to be
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
786 set here aswell */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
787 if(!opt_debug)
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
788 g_set_print_handler( gaim_dummy_print );
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
789
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
790 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
791
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
792 /* show help message */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
793 if (opt_help) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
794 show_usage(0, argv[0]);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
795 return 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
796 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
797 /* show version message */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
798 if (opt_version) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
799 printf("Gaim %s\n",VERSION);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
800 return 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
801 }
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
802
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
803 gaim_gtk_stock_init();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
804
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
805 gaim_set_core_ui_ops(gaim_get_gtk_core_ui_ops());
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
806
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
807 if (!gaim_core_init(GAIM_GTK_UI)) {
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
808 fprintf(stderr,
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
809 "Initialization of the Gaim core failed. Dumping core.\n"
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
810 "Please report this!\n");
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
811 abort();
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
812 }
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
813
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
814 #if 0
6009
5cd7a10c6ade [gaim-migrate @ 6457]
Christian Hammond <chipx86@chipx86.com>
parents: 5996
diff changeset
815 /* This has to be done before the debug stuff. */
5cd7a10c6ade [gaim-migrate @ 6457]
Christian Hammond <chipx86@chipx86.com>
parents: 5996
diff changeset
816 gaim_gtk_stock_init();
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
817
6019
272c761c52e3 [gaim-migrate @ 6469]
Sean Egan <seanegan@gmail.com>
parents: 6009
diff changeset
818 static_proto_init();
6009
5cd7a10c6ade [gaim-migrate @ 6457]
Christian Hammond <chipx86@chipx86.com>
parents: 5996
diff changeset
819
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
820 gaim_prefs_init();
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
821
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
822 /* This kind of has to be here.. sucks, but it's important. */
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
823 gaim_gtk_debug_init();
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
824
5858
96e5b32e75ad [gaim-migrate @ 6289]
Nathan Walp <nwalp@pidgin.im>
parents: 5840
diff changeset
825 gaim_conversation_init();
5683
9befba33f7c8 [gaim-migrate @ 6102]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
826 gaim_proxy_init();
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
827 gaim_sound_init();
5875
448f2f4ca3ec [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5874
diff changeset
828 gaim_pounces_init();
5683
9befba33f7c8 [gaim-migrate @ 6102]
Christian Hammond <chipx86@chipx86.com>
parents: 5673
diff changeset
829
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
830 gaim_gtk_prefs_init();
5906
390d32a6b130 [gaim-migrate @ 6338]
Nathan Walp <nwalp@pidgin.im>
parents: 5875
diff changeset
831 gaim_gtk_blist_init();
5673
62f57ec16f29 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5665
diff changeset
832 gaim_gtk_conversation_init();
5875
448f2f4ca3ec [gaim-migrate @ 6307]
Christian Hammond <chipx86@chipx86.com>
parents: 5874
diff changeset
833 gaim_gtk_pounces_init();
5974
1abc483f74c6 [gaim-migrate @ 6421]
Mark Doliner <mark@kingant.net>
parents: 5949
diff changeset
834 gaim_gtk_xfer_init();
6179
16e384bb7fbf [gaim-migrate @ 6664]
Christian Hammond <chipx86@chipx86.com>
parents: 6119
diff changeset
835 #endif
5673
62f57ec16f29 [gaim-migrate @ 6091]
Christian Hammond <chipx86@chipx86.com>
parents: 5665
diff changeset
836
5205
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
837 plugin_search_paths[0] = LIBDIR;
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
838 plugin_search_paths[1] = gaim_user_dir();
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
839 plugin_search_paths[2] = g_strdup_printf("%s/plugins", gaim_user_dir());
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
840
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
841 gaim_plugins_set_search_paths(sizeof(plugin_search_paths) /
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
842 sizeof(*plugin_search_paths),
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
843 plugin_search_paths);
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
844
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
845 g_free(plugin_search_paths[2]);
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
846
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
847 gaim_plugins_probe(NULL);
fefad67de2c7 [gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents: 5032
diff changeset
848
5909
1a7f7feab916 [gaim-migrate @ 6341]
Nathan Walp <nwalp@pidgin.im>
parents: 5906
diff changeset
849 gaim_prefs_load();
1a7f7feab916 [gaim-migrate @ 6341]
Nathan Walp <nwalp@pidgin.im>
parents: 5906
diff changeset
850
1a7f7feab916 [gaim-migrate @ 6341]
Nathan Walp <nwalp@pidgin.im>
parents: 5906
diff changeset
851
1a7f7feab916 [gaim-migrate @ 6341]
Nathan Walp <nwalp@pidgin.im>
parents: 5906
diff changeset
852 /* we only read ~/.gaimrc (load_prefs()) if there is no accounts.xml
1a7f7feab916 [gaim-migrate @ 6341]
Nathan Walp <nwalp@pidgin.im>
parents: 5906
diff changeset
853 * since prefs.xml existed alongside ~/.gaim in 0.64 */
1a7f7feab916 [gaim-migrate @ 6341]
Nathan Walp <nwalp@pidgin.im>
parents: 5906
diff changeset
854 if (!gaim_accounts_load()) {
5665
132a30783c3d [gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents: 5642
diff changeset
855 load_prefs();
132a30783c3d [gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents: 5642
diff changeset
856 gaim_prefs_sync();
132a30783c3d [gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents: 5642
diff changeset
857 }
132a30783c3d [gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents: 5642
diff changeset
858
5838
6aa7651c7c15 [gaim-migrate @ 6269]
Nathan Walp <nwalp@pidgin.im>
parents: 5826
diff changeset
859 /* load plugins we had when we quit */
5949
90d0849abd3c [gaim-migrate @ 6393]
Christian Hammond <chipx86@chipx86.com>
parents: 5943
diff changeset
860 gaim_plugins_load_saved("/gaim/gtk/plugins/loaded");
5665
132a30783c3d [gaim-migrate @ 6081]
Christian Hammond <chipx86@chipx86.com>
parents: 5642
diff changeset
861
5866
d6b5cab288bb [gaim-migrate @ 6297]
Christian Hammond <chipx86@chipx86.com>
parents: 5859
diff changeset
862 gaim_pounces_load();
6065
3a40666c08b4 [gaim-migrate @ 6515]
Sean Egan <seanegan@gmail.com>
parents: 6036
diff changeset
863 gaim_status_load();
5581
3a9b54f260e3 [gaim-migrate @ 5985]
Christian Hammond <chipx86@chipx86.com>
parents: 5580
diff changeset
864
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
865 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
866 /* Various win32 initializations */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
867 wgaim_init();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
868 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
869
5859
022786c7ab53 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5858
diff changeset
870 gaim_set_blist(gaim_blist_new());
022786c7ab53 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5858
diff changeset
871 gaim_blist_load();
022786c7ab53 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5858
diff changeset
872
5032
cb700c07ee07 [gaim-migrate @ 5375]
Christian Hammond <chipx86@chipx86.com>
parents: 5024
diff changeset
873 load_pounces();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
874 ui_main();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
875
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
876 #ifdef USE_SM
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
877 session_init(argv[0], opt_session_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
878 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
879 if (opt_session_arg != NULL) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
880 g_free(opt_session_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
881 opt_session_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
882 };
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
883
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
884 /* set the default username */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
885 if (opt_user_arg != NULL) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
886 set_first_user(opt_user_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
887 g_free(opt_user_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
888 opt_user_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
889 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
890
5535
933739f789f9 [gaim-migrate @ 5935]
Nathan Walp <nwalp@pidgin.im>
parents: 5534
diff changeset
891 if (gaim_prefs_get_bool("/gaim/gtk/debug/enabled"))
5211
0241d6b6702d [gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents: 5205
diff changeset
892 gaim_gtk_debug_window_show();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
893
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
894 /* deal with --login */
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
895 if (opt_login) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
896 dologin_ret = dologin_named(opt_login_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
897 if (opt_login_arg != NULL) {
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
898 g_free(opt_login_arg);
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
899 opt_login_arg = NULL;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
900 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
901 }
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
902
5859
022786c7ab53 [gaim-migrate @ 6290]
Christian Hammond <chipx86@chipx86.com>
parents: 5858
diff changeset
903 if (!opt_acct && !opt_nologin)
5780
a9029bed0479 [gaim-migrate @ 6205]
Christian Hammond <chipx86@chipx86.com>
parents: 5766
diff changeset
904 gaim_accounts_auto_login(GAIM_GTK_UI);
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
905
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
906 if (opt_acct) {
6119
0d2bd49c611e [gaim-migrate @ 6588]
Christian Hammond <chipx86@chipx86.com>
parents: 6109
diff changeset
907 gaim_gtk_accounts_window_show();
5563
9eb5b13fd412 [gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents: 5549
diff changeset
908 } else if ((dologin_ret == -1) && !gaim_connections_get_all())
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
909 show_login();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
910
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
911 gtk_main();
5684
b61520e71679 [gaim-migrate @ 6104]
Nathan Walp <nwalp@pidgin.im>
parents: 5683
diff changeset
912 gaim_sound_shutdown();
4489
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
913 #ifdef _WIN32
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
914 wgaim_cleanup();
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
915 #endif
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
916 return 0;
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
917
58c3c6cfd537 [gaim-migrate @ 4764]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
918 }