annotate src/aim.c @ 3551:cd938f18f3f8

[gaim-migrate @ 3626] In the interest of continued progress, I pulled what's usable out of my development tree and am committing it. Here, we have gotten rid of the plugins dialog and perl menu under Tools and put them both in preferences. Perl scripts now work like plugins--you have to load them explicitly (it will probe $prefix/lib/gaim and $HOME/.gaim for them) and you can unload them (although right now, this is entirely unreliable) Oh, and I broke all your perl scripts. Sorry about that. Don't try fixing them yet, though--I'm gonna make unloading single scripts more reliable tommorow. I should also finish Phase Two tommorow as well. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Thu, 26 Sep 2002 07:37:52 +0000
parents 6c32036050cf
children 9682c0e022c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
349
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 342
diff changeset
22 #ifdef HAVE_CONFIG_H
2090
b66aca8e8dce [gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2083
diff changeset
23 #include <config.h>
349
b402a23f35df [gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 342
diff changeset
24 #endif
395
9a436c1d128d [gaim-migrate @ 405]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 392
diff changeset
25 #ifdef GAIM_PLUGINS
9a436c1d128d [gaim-migrate @ 405]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 392
diff changeset
26 #include <dlfcn.h>
9a436c1d128d [gaim-migrate @ 405]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 392
diff changeset
27 #endif /* GAIM_PLUGINS */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <gtk/gtk.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <gdk/gdkx.h>
216
f7e17fb767eb [gaim-migrate @ 226]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 200
diff changeset
30 #include <gdk/gdk.h>
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31 #include <unistd.h>
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
32 #include <sys/types.h>
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
33 #include <sys/socket.h>
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
34 #include <sys/stat.h>
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
35 #include <netinet/in.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 #include <arpa/inet.h>
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
37 #include <errno.h>
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
38 #include <sys/un.h>
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
39 #include <sys/wait.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
40 #include <stdio.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41 #include <string.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
42 #include <stdarg.h>
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
43 #include <stdlib.h>
228
f3b61c04f44e [gaim-migrate @ 238]
Syd Logan <slogan>
parents: 216
diff changeset
44 #include <ctype.h>
991
3dbc2cd326e2 [gaim-migrate @ 1001]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 989
diff changeset
45 #include "prpl.h"
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
46 #include "gaim.h"
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
47 #include "pixmaps/logo.xpm"
614
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
48 #if HAVE_SIGNAL_H
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
49 #include <signal.h>
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
50 #endif
462
9a5da5b17722 [gaim-migrate @ 472]
Rob Flynn <gaim@robflynn.com>
parents: 436
diff changeset
51 #include "locale.h"
1117
f3e0f41beddb [gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1093
diff changeset
52 #include "gtkspell.h"
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
53 #include <getopt.h>
430
0cd2ba801eb4 [gaim-migrate @ 440]
Syd Logan <slogan>
parents: 423
diff changeset
54
3209
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
55 static gchar *aspell_cmd[] = { "aspell", "--sug-mode=fast","-a", NULL };
1128
418b1738a9a7 [gaim-migrate @ 1138]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1124
diff changeset
56 static gchar *ispell_cmd[] = { "ispell", "-a", NULL };
418b1738a9a7 [gaim-migrate @ 1138]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1124
diff changeset
57
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
58 static GtkWidget *name;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
59 static GtkWidget *pass;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
60
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
61 GList *log_conversations = NULL;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
62 GList *buddy_pounces = NULL;
940
9fca1293f871 [gaim-migrate @ 950]
Rob Flynn <gaim@robflynn.com>
parents: 917
diff changeset
63 GSList *away_messages = NULL;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
64 GList *conversations = NULL;
1768
9aae465eeb6e [gaim-migrate @ 1778]
Rob Flynn <gaim@robflynn.com>
parents: 1750
diff changeset
65 GSList *message_queue = NULL;
3517
6b0cb60162f4 [gaim-migrate @ 3590]
Sean Egan <seanegan@gmail.com>
parents: 3510
diff changeset
66 GSList *unread_message_queue = NULL;
1774
9d0c91c705b7 [gaim-migrate @ 1784]
Rob Flynn <gaim@robflynn.com>
parents: 1768
diff changeset
67 GSList *away_time_queue = NULL;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
68
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
69 GtkWidget *mainwindow = NULL;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
70
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
71 int opt_away = 0;
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
72 char *opt_away_arg = NULL;
1560
72235e3fcff6 [gaim-migrate @ 1570]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1555
diff changeset
73 char *opt_rcfile_arg = NULL;
2823
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
74 int opt_debug = 0;
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
75
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
76 #if HAVE_SIGNAL_H
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
77 /*
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
78 * Lists of signals we wish to catch and those we wish to ignore.
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
79 * Each list terminated with -1
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
80 */
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
81 static int catch_sig_list[] = {
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
82 SIGSEGV,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
83 SIGHUP,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
84 SIGINT,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
85 SIGTERM,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
86 SIGQUIT,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
87 SIGCHLD,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
88 -1
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
89 };
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
90
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
91 static int ignore_sig_list[] = {
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
92 SIGPIPE,
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
93 -1
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
94 };
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
95 #endif
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
96
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
97
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
98 void cancel_logon(void)
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
99 {
392
df5127560034 [gaim-migrate @ 402]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 369
diff changeset
100 #ifdef GAIM_PLUGINS
df5127560034 [gaim-migrate @ 402]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 369
diff changeset
101 /* first we tell those who have requested it we're quitting */
3517
6b0cb60162f4 [gaim-migrate @ 3590]
Sean Egan <seanegan@gmail.com>
parents: 3510
diff changeset
102 plugin_event(event_quit);
392
df5127560034 [gaim-migrate @ 402]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 369
diff changeset
103
df5127560034 [gaim-migrate @ 402]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 369
diff changeset
104 /* then we remove everyone in a mass suicide */
2125
af59d854de29 [gaim-migrate @ 2135]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2121
diff changeset
105 remove_all_plugins();
392
df5127560034 [gaim-migrate @ 402]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 369
diff changeset
106 #endif /* GAIM_PLUGINS */
784
4c292b3f74ea [gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 780
diff changeset
107 #ifdef USE_PERL
4c292b3f74ea [gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 780
diff changeset
108 perl_end();
4c292b3f74ea [gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 780
diff changeset
109 #endif
392
df5127560034 [gaim-migrate @ 402]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 369
diff changeset
110
1117
f3e0f41beddb [gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1093
diff changeset
111 gtk_main_quit();
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
112 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
113
109
45bcfa3b584c [gaim-migrate @ 119]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 107
diff changeset
114 static int snd_tmout;
133
e277d5f0c1dd [gaim-migrate @ 143]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 109
diff changeset
115 int logins_not_muted = 1;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
116 static void sound_timeout()
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
117 {
133
e277d5f0c1dd [gaim-migrate @ 143]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 109
diff changeset
118 logins_not_muted = 1;
109
45bcfa3b584c [gaim-migrate @ 119]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 107
diff changeset
119 gtk_timeout_remove(snd_tmout);
45bcfa3b584c [gaim-migrate @ 119]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 107
diff changeset
120 }
45bcfa3b584c [gaim-migrate @ 119]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 107
diff changeset
121
265
59f1748b09a6 [gaim-migrate @ 275]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 253
diff changeset
122 /* we need to do this for Oscar because serv_login only starts the login
59f1748b09a6 [gaim-migrate @ 275]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 253
diff changeset
123 * process, it doesn't end there. gaim_setup will be called later from
59f1748b09a6 [gaim-migrate @ 275]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 253
diff changeset
124 * oscar.c, after the buddy list is made and serv_finish_login is called */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
125 void gaim_setup(struct gaim_connection *gc)
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
126 {
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
127 if ((sound_options & OPT_SOUND_LOGIN) && (sound_options & OPT_SOUND_SILENT_SIGNON)) {
133
e277d5f0c1dd [gaim-migrate @ 143]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 109
diff changeset
128 logins_not_muted = 0;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
129 snd_tmout = gtk_timeout_add(10000, (GtkFunction)sound_timeout, NULL);
109
45bcfa3b584c [gaim-migrate @ 119]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 107
diff changeset
130 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
131 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
133
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
134 static void dologin(GtkWidget *widget, GtkWidget *w)
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
135 {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
136 struct aim_user *u;
1942
ba421d552093 [gaim-migrate @ 1952]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1878
diff changeset
137 const char *username = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(name)->entry));
ba421d552093 [gaim-migrate @ 1952]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1878
diff changeset
138 const char *password = gtk_entry_get_text(GTK_ENTRY(pass));
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
139
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
140 if (!strlen(username)) {
3427
8fa61405af2b [gaim-migrate @ 3453]
Sean Egan <seanegan@gmail.com>
parents: 3391
diff changeset
141 do_error_dialog(_("Please enter your login."), NULL, GAIM_ERROR);
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
142 return;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
143 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
144
2531
93b50fa8f410 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2511
diff changeset
145 /* if there is more than one user of the same name, then fuck
93b50fa8f410 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2511
diff changeset
146 * them, they just have to use the account editor to sign in
93b50fa8f410 [gaim-migrate @ 2544]
Rob Flynn <gaim@robflynn.com>
parents: 2511
diff changeset
147 * the second one */
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
148
1030
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1026
diff changeset
149 u = find_user(username, -1);
1355
04874e92af24 [gaim-migrate @ 1365]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1333
diff changeset
150 if (!u)
1878
75643b9f4261 [gaim-migrate @ 1888]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1820
diff changeset
151 u = new_user(username, DEFAULT_PROTO, OPT_USR_REM_PASS);
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
152 g_snprintf(u->password, sizeof u->password, "%s", password);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
153 save_prefs();
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
154 serv_login(u);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
155 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
156
3483
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
157 static void dologin_all(GtkWidget *widget, GtkWidget *w)
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
158 {
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
159 struct aim_user *u;
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
160 GSList *users = aim_users;
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
161
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
162 while (users) {
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
163 u = users->data;
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
164 if (u->options & OPT_USR_AUTO)
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
165 serv_login(u);
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
166 users = users->next;
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
167 }
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
168 }
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
169
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
170 static void doenter(GtkWidget *widget, GtkWidget *w)
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
171 {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
172 if (widget == name) {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
173 gtk_entry_set_text(GTK_ENTRY(pass), "");
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
174 gtk_entry_select_region(GTK_ENTRY(GTK_COMBO(name)->entry), 0, 0);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
175 gtk_widget_grab_focus(pass);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
176 } else if (widget == pass) {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
177 dologin(widget, w);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
178 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
179 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
180
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
181
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
182 static void combo_changed(GtkWidget *w, GtkWidget *combo)
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
183 {
1942
ba421d552093 [gaim-migrate @ 1952]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1878
diff changeset
184 const char *txt = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(combo)->entry));
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
185 struct aim_user *u;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
186
1030
38452403563b [gaim-migrate @ 1040]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1026
diff changeset
187 u = find_user(txt, -1);
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
188
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
189 if (u && u->options & OPT_USR_REM_PASS) {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
190 gtk_entry_set_text(GTK_ENTRY(pass), u->password);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
191 } else {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
192 gtk_entry_set_text(GTK_ENTRY(pass), "");
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
193 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
194 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
195
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
196
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
197 static GList *combo_user_names()
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
198 {
2397
520257562955 [gaim-migrate @ 2410]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2379
diff changeset
199 GSList *usr = aim_users;
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
200 GList *tmp = NULL;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
201 struct aim_user *u;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
202
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
203 if (!usr)
1409
17e544f8c7fb [gaim-migrate @ 1419]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1400
diff changeset
204 return g_list_append(NULL, "<New User>");
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
205
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
206 while (usr) {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
207 u = (struct aim_user *)usr->data;
2257
eae25a0309c1 [gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
208 tmp = g_list_append(tmp, u->username);
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
209 usr = usr->next;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
210 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
211
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
212 return tmp;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
213 }
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
214
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
215
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
216 void show_login()
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
217 {
3483
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
218 GtkWidget *signon_all;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
219 GtkWidget *options;
96
247f540ea6e1 [gaim-migrate @ 106]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 94
diff changeset
220 GtkWidget *plugs;
991
3dbc2cd326e2 [gaim-migrate @ 1001]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 989
diff changeset
221 #ifndef NO_MULTI
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 941
diff changeset
222 GtkWidget *accts;
991
3dbc2cd326e2 [gaim-migrate @ 1001]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 989
diff changeset
223 #endif
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
224 GtkWidget *signon;
960
fa681641643d [gaim-migrate @ 970]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 941
diff changeset
225 GtkWidget *cancel;
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2823
diff changeset
226 GtkWidget *reg;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
227 GtkWidget *bbox;
96
247f540ea6e1 [gaim-migrate @ 106]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 94
diff changeset
228 GtkWidget *hbox;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 GtkWidget *sbox;
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
230 GtkWidget *label;
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231 GtkWidget *table;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
233 GtkWidget *pmw;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
234 GdkPixmap *pm;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
235 GtkStyle *style;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
236 GdkBitmap *mask;
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
237
2257
eae25a0309c1 [gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
238 GList *tmp;
eae25a0309c1 [gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
239
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
240 if (mainwindow) {
3474
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
241 gtk_window_present(GTK_WINDOW(mainwindow));
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
242 return;
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
243 }
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
244
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
245 mainwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
246 gtk_window_set_wmclass(GTK_WINDOW(mainwindow), "login", "Gaim");
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
247 gtk_window_set_policy(GTK_WINDOW(mainwindow), FALSE, FALSE, TRUE);
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
248 gtk_signal_connect(GTK_OBJECT(mainwindow), "delete_event",
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
249 GTK_SIGNAL_FUNC(cancel_logon), mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
250 gtk_window_set_title(GTK_WINDOW(mainwindow), _("Gaim - Login"));
621
991bf4e3c9fe [gaim-migrate @ 631]
Todd Kulesza <fflewddur>
parents: 614
diff changeset
251 gtk_widget_realize(mainwindow);
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
252 gdk_window_set_group(mainwindow->window, mainwindow->window);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
253
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
254 table = gtk_table_new(8, 2, FALSE);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
255 gtk_container_add(GTK_CONTAINER(mainwindow), table);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
256 gtk_widget_show(table);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
257
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
258 style = gtk_widget_get_style(mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
259 pm = gdk_pixmap_create_from_xpm_d(mainwindow->window, &mask,
2533
5639484fccc9 [gaim-migrate @ 2546]
Rob Flynn <gaim@robflynn.com>
parents: 2531
diff changeset
260 &style->bg[GTK_STATE_NORMAL], (gchar **)gaim_logo_xpm);
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
261 pmw = gtk_pixmap_new(pm, mask);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
262 gtk_table_attach(GTK_TABLE(table), pmw, 0, 2, 0, 1, 0, 0, 5, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
263 gtk_widget_show(pmw);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
264 gdk_pixmap_unref(pm);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
265 gdk_bitmap_unref(mask);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
266
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
267 label = gtk_label_new(_("Screen Name: "));
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
268 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, 0, 0, 5, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
269 gtk_widget_show(label);
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
270
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
271 name = gtk_combo_new();
2257
eae25a0309c1 [gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
272 tmp = combo_user_names();
eae25a0309c1 [gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
273 gtk_combo_set_popdown_strings(GTK_COMBO(name), tmp);
eae25a0309c1 [gaim-migrate @ 2267]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2232
diff changeset
274 g_list_free(tmp);
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
275 gtk_signal_connect(GTK_OBJECT(GTK_COMBO(name)->entry), "activate",
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
276 GTK_SIGNAL_FUNC(doenter), mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
277 gtk_signal_connect(GTK_OBJECT(GTK_COMBO(name)->entry), "changed",
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
278 GTK_SIGNAL_FUNC(combo_changed), name);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
279 gtk_widget_set_usize(name, 100, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
280 gtk_table_attach(GTK_TABLE(table), name, 1, 2, 2, 3, 0, 0, 5, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
281 gtk_widget_show(name);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
282
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
283 label = gtk_label_new(_("Password: "));
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
284 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, 0, 0, 5, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
285 gtk_widget_show(label);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
286
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
287 pass = gtk_entry_new();
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
288 gtk_widget_set_usize(pass, 100, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
289 gtk_entry_set_visibility(GTK_ENTRY(pass), FALSE);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
290 gtk_signal_connect(GTK_OBJECT(pass), "activate", GTK_SIGNAL_FUNC(doenter), mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
291 gtk_table_attach(GTK_TABLE(table), pass, 1, 2, 3, 4, 0, 0, 5, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
292 gtk_widget_show(pass);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
293
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
294 sbox = gtk_vbox_new(TRUE, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
295 gtk_container_border_width(GTK_CONTAINER(sbox), 10);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
296 gtk_table_attach(GTK_TABLE(table), sbox, 0, 2, 7, 8, 0, 0, 5, 5);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
297 gtk_widget_show(sbox);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
298
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
299 bbox = gtk_hbox_new(TRUE, 10);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
300 gtk_box_pack_start(GTK_BOX(sbox), bbox, TRUE, TRUE, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
301 gtk_widget_show(bbox);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
302
1391
d606da211acb [gaim-migrate @ 1401]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1361
diff changeset
303 cancel = gtk_button_new_with_label(_("Quit"));
991
3dbc2cd326e2 [gaim-migrate @ 1001]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 989
diff changeset
304 #ifndef NO_MULTI
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
305 accts = gtk_button_new_with_label(_("Accounts"));
991
3dbc2cd326e2 [gaim-migrate @ 1001]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 989
diff changeset
306 #endif
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
307 signon = gtk_button_new_with_label(_("Signon"));
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
308
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2307
diff changeset
309 if (misc_options & OPT_MISC_COOL_LOOK) {
1360
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
310 gtk_button_set_relief(GTK_BUTTON(cancel), GTK_RELIEF_NONE);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
311 #ifndef NO_MULTI
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
312 gtk_button_set_relief(GTK_BUTTON(accts), GTK_RELIEF_NONE);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
313 #endif
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
314 gtk_button_set_relief(GTK_BUTTON(signon), GTK_RELIEF_NONE);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
315 }
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
316
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
317 gtk_signal_connect(GTK_OBJECT(cancel), "clicked", GTK_SIGNAL_FUNC(cancel_logon), mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
318 #ifndef NO_MULTI
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
319 gtk_signal_connect(GTK_OBJECT(accts), "clicked", GTK_SIGNAL_FUNC(account_editor), mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
320 #endif
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
321 gtk_signal_connect(GTK_OBJECT(signon), "clicked", GTK_SIGNAL_FUNC(dologin), mainwindow);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
322
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
323 gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
324 #ifndef NO_MULTI
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
325 gtk_box_pack_start(GTK_BOX(bbox), accts, TRUE, TRUE, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
326 #endif
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
327 gtk_box_pack_start(GTK_BOX(bbox), signon, TRUE, TRUE, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
328
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
329 gtk_widget_show(cancel);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
330 #ifndef NO_MULTI
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
331 gtk_widget_show(accts);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
332 #endif
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
333 gtk_widget_show(signon);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
334
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
335 hbox = gtk_hbox_new(TRUE, 10);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
336 gtk_box_pack_start(GTK_BOX(sbox), hbox, TRUE, TRUE, 0);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
337 gtk_widget_show(hbox);
ed8b24a73764 [gaim-migrate @ 1370]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1355
diff changeset
338
3483
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
339 reg = gtk_button_new_with_label(_("Auto-login"));
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
340 options = gtk_button_new_with_label(_("Options"));
3551
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
341 plugs = gtk_button_new_with_label(_("About"));
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2307
diff changeset
342 if (misc_options & OPT_MISC_COOL_LOOK) {
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2823
diff changeset
343 gtk_button_set_relief(GTK_BUTTON(reg), GTK_RELIEF_NONE);
535
f03f041c1aa9 [gaim-migrate @ 545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 508
diff changeset
344 gtk_button_set_relief(GTK_BUTTON(options), GTK_RELIEF_NONE);
f03f041c1aa9 [gaim-migrate @ 545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 508
diff changeset
345 gtk_button_set_relief(GTK_BUTTON(plugs), GTK_RELIEF_NONE);
f03f041c1aa9 [gaim-migrate @ 545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 508
diff changeset
346 }
f03f041c1aa9 [gaim-migrate @ 545]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 508
diff changeset
347
3483
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
348 gtk_signal_connect(GTK_OBJECT(reg), "clicked", GTK_SIGNAL_FUNC(dologin_all), NULL);
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
349 gtk_signal_connect(GTK_OBJECT(options), "clicked", GTK_SIGNAL_FUNC(show_prefs), NULL);
3551
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
350 gtk_signal_connect(GTK_OBJECT(plugs), "clicked", GTK_SIGNAL_FUNC(show_about), NULL);
3495
adaa8cbf79e9 [gaim-migrate @ 3556]
Luke Schierer <lschiere@pidgin.im>
parents: 3489
diff changeset
351 gtk_box_pack_start(GTK_BOX(hbox), plugs, TRUE, TRUE, 0);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
352
96
247f540ea6e1 [gaim-migrate @ 106]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 94
diff changeset
353 gtk_box_pack_start(GTK_BOX(hbox), options, TRUE, TRUE, 0);
3483
abaee81fdea2 [gaim-migrate @ 3537]
Sean Egan <seanegan@gmail.com>
parents: 3481
diff changeset
354 gtk_box_pack_start(GTK_BOX(hbox), reg, TRUE, TRUE, 0);
96
247f540ea6e1 [gaim-migrate @ 106]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 94
diff changeset
355
2827
51999a36c0b1 [gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2823
diff changeset
356 gtk_widget_show(reg);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
357 gtk_widget_show(options);
96
247f540ea6e1 [gaim-migrate @ 106]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 94
diff changeset
358 gtk_widget_show(plugs);
989
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
359
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
360 if (aim_users) {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
361 struct aim_user *c = (struct aim_user *)aim_users->data;
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
362 if (c->options & OPT_USR_REM_PASS) {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
363 combo_changed(NULL, name);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
364 gtk_widget_grab_focus(signon);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
365 } else {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
366 gtk_widget_grab_focus(pass);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
367 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
368 } else {
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
369 gtk_widget_grab_focus(name);
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
370 }
bd8eb3efe14e [gaim-migrate @ 999]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 988
diff changeset
371
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
372 gtk_widget_show(mainwindow);
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
373 }
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
374
614
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
375 #if HAVE_SIGNAL_H
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
376 void sighandler(int sig)
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
377 {
1415
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
378 switch (sig) {
2083
f5659096bcd6 [gaim-migrate @ 2093]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2075
diff changeset
379 case SIGHUP:
f5659096bcd6 [gaim-migrate @ 2093]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2075
diff changeset
380 debug_printf("caught signal %d\n", sig);
f5659096bcd6 [gaim-migrate @ 2093]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2075
diff changeset
381 signoff_all(NULL, NULL);
f5659096bcd6 [gaim-migrate @ 2093]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2075
diff changeset
382 break;
1415
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
383 case SIGSEGV:
2416
61b816a7b467 [gaim-migrate @ 2429]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
384 core_quit();
2755
adbda5d9b50c [gaim-migrate @ 2768]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2591
diff changeset
385 #ifndef DEBUG
1697
23ad4f7b644f [gaim-migrate @ 1707]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1560
diff changeset
386 fprintf(stderr, "Gaim has segfaulted and attempted to dump a core file.\n"
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
387 "This is a bug in the software and has happened through\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
388 "no fault of your own.\n\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
389 "It is possible that this bug is already fixed in CVS.\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
390 "You can get a tarball of CVS from the Gaim website, at\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
391 WEBSITE "gaim-CVS.tar.gz.\n\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
392 "If you are already using CVS, or can reproduce the crash\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
393 "using the CVS version, please notify the gaim maintainers\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
394 "by reporting a bug at\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
395 WEBSITE "bug.php3\n\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
396 "Please make sure to specify what you were doing at the time,\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
397 "and post the backtrace from the core file. If you do not know\n"
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
398 "how to get the backtrace, please get instructions at\n"
2554
7f312efd287f [gaim-migrate @ 2567]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2533
diff changeset
399 WEBSITE "gdb.php. If you need further\n"
2993
7239a392486c [gaim-migrate @ 3006]
Rob Flynn <gaim@robflynn.com>
parents: 2902
diff changeset
400 "assistance, please IM either RobFlynn or SeanEgn and\n"
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
401 "they can help you.\n");
3481
443b3311871d [gaim-migrate @ 3535]
Sean Egan <seanegan@gmail.com>
parents: 3478
diff changeset
402 #else
443b3311871d [gaim-migrate @ 3535]
Sean Egan <seanegan@gmail.com>
parents: 3478
diff changeset
403 fprintf(stderr, "Oh no! Segmentation fault!\n");
3528
aa5bb19435ce [gaim-migrate @ 3601]
Sean Egan <seanegan@gmail.com>
parents: 3525
diff changeset
404 g_on_error_query (g_get_prgname());
3525
1c5d35f767c5 [gaim-migrate @ 3598]
Sean Egan <seanegan@gmail.com>
parents: 3517
diff changeset
405 exit(1);
2755
adbda5d9b50c [gaim-migrate @ 2768]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2591
diff changeset
406 #endif
1415
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
407 abort();
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
408 break;
3076
a7e03c5d2205 [gaim-migrate @ 3090]
Rob Flynn <gaim@robflynn.com>
parents: 2993
diff changeset
409 case SIGCHLD:
a7e03c5d2205 [gaim-migrate @ 3090]
Rob Flynn <gaim@robflynn.com>
parents: 2993
diff changeset
410 clean_pid();
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
411 #if HAVE_SIGNAL_H
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
412 signal(SIGCHLD, sighandler); /* restore signal catching on this one! */
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
413 #endif
3076
a7e03c5d2205 [gaim-migrate @ 3090]
Rob Flynn <gaim@robflynn.com>
parents: 2993
diff changeset
414 break;
1415
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
415 default:
2125
af59d854de29 [gaim-migrate @ 2135]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2121
diff changeset
416 debug_printf("caught signal %d\n", sig);
1820
73bb4244165f [gaim-migrate @ 1830]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1815
diff changeset
417 gtkspell_stop();
2591
b771cbe7e161 [gaim-migrate @ 2604]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2554
diff changeset
418 signoff_all(NULL, NULL);
2140
66a84ff0445a [gaim-migrate @ 2150]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2130
diff changeset
419 #ifdef GAIM_PLUGINS
2125
af59d854de29 [gaim-migrate @ 2135]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2121
diff changeset
420 remove_all_plugins();
2140
66a84ff0445a [gaim-migrate @ 2150]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2130
diff changeset
421 #endif
1792
de88617f542c [gaim-migrate @ 1802]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1774
diff changeset
422 if (gtk_main_level())
de88617f542c [gaim-migrate @ 1802]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1774
diff changeset
423 gtk_main_quit();
2416
61b816a7b467 [gaim-migrate @ 2429]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
424 core_quit();
1415
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
425 exit(0);
3dfd2a83fb5e [gaim-migrate @ 1425]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1409
diff changeset
426 }
614
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
427 }
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
428 #endif
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
429
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
430 static gboolean socket_readable(GIOChannel *source, GIOCondition cond, gpointer ud)
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
431 {
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
432 guchar type;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
433 guchar subtype;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
434 guint32 len;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
435 guchar *data;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
436 guint32 x;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
437
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
438 debug_printf("Core says: ");
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
439 g_io_channel_read(source, &type, sizeof(type), &x);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
440 if (x == 0) {
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
441 debug_printf("CORE IS GONE!\n");
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
442 g_io_channel_close(source);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
443 return FALSE;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
444 }
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
445 debug_printf("%d ", type);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
446 g_io_channel_read(source, &subtype, sizeof(subtype), &x);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
447 if (x == 0) {
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
448 debug_printf("CORE IS GONE!\n");
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
449 g_io_channel_close(source);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
450 return FALSE;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
451 }
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
452 debug_printf("%d ", subtype);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
453 g_io_channel_read(source, (guchar *)&len, sizeof(len), &x);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
454 if (x == 0) {
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
455 debug_printf("CORE IS GONE!\n");
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
456 g_io_channel_close(source);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
457 return FALSE;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
458 }
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
459 debug_printf("(%d bytes)\n", len);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
460
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
461 data = g_malloc(len);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
462 g_io_channel_read(source, data, len, &x);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
463 if (x != len) {
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
464 debug_printf("CORE IS GONE! (read %d/%d bytes)\n", x, len);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
465 g_free(data);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
466 g_io_channel_close(source);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
467 return FALSE;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
468 }
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
469
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
470 g_free(data);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
471 return TRUE;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
472 }
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
473
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
474 static int ui_main()
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
475 {
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
476 GIOChannel *channel;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
477 int UI_fd;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
478 char name[256];
3474
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
479 GList *icons = NULL;
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
480 GdkPixbuf *icon = NULL;
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
481
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
482 /* use the nice PNG icon for all the windows */
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
483 icon = gdk_pixbuf_new_from_file(DATADIR "/pixmaps/gaim.png",NULL);
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
484 if (icon) {
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
485 icons = g_list_append(icons,icon);
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
486 gtk_window_set_default_icon_list(icons);
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
487 g_object_unref(G_OBJECT(icon));
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
488 } else {
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
489 debug_printf("Failed to load icon from %s/pixmaps/gaim.png\n",DATADIR);
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
490 }
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
491
3478
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents: 3477
diff changeset
492 g_snprintf(name, sizeof(name), "%s/gaim_%s.%d", g_get_tmp_dir(), g_get_user_name(), gaim_session);
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
493
3533
6c32036050cf [gaim-migrate @ 3607]
Sean Egan <seanegan@gmail.com>
parents: 3531
diff changeset
494 UI_fd = gaim_connect_to_session(0);
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
495 if (UI_fd < 0)
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
496 return 1;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
497
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
498 channel = g_io_channel_unix_new(UI_fd);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
499 g_io_add_watch(channel, G_IO_IN | G_IO_HUP | G_IO_ERR, socket_readable, NULL);
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
500 return 0;
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
501 }
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
502
2379
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
503 static void set_first_user(char *name)
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
504 {
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
505 struct aim_user *u;
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
506
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
507 u = find_user(name, -1);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
508
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
509 if (!u) { /* new user */
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
510 u = g_new0(struct aim_user, 1);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
511 g_snprintf(u->username, sizeof(u->username), "%s", name);
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
512 u->protocol = DEFAULT_PROTO;
2397
520257562955 [gaim-migrate @ 2410]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2379
diff changeset
513 aim_users = g_slist_prepend(aim_users, u);
2379
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
514 } else { /* user already exists */
2397
520257562955 [gaim-migrate @ 2410]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2379
diff changeset
515 aim_users = g_slist_remove(aim_users, u);
520257562955 [gaim-migrate @ 2410]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2379
diff changeset
516 aim_users = g_slist_prepend(aim_users, u);
2379
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
517 }
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
518 save_prefs();
cacaf7ace3a5 [gaim-migrate @ 2392]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2372
diff changeset
519 }
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
520
2500
1697ecbf1bcc [gaim-migrate @ 2513]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2484
diff changeset
521 /* FUCKING GET ME A TOWEL! */
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
522 int main(int argc, char *argv[])
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
523 {
3360
f06c87748d91 [gaim-migrate @ 3379]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
524 int opt_acct = 0, opt_help = 0, opt_version = 0, opt_login = 0, opt_nologin = 0, do_login_ret = -1;
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
525 char *opt_user_arg = NULL, *opt_login_arg = NULL;
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
526 #if HAVE_SIGNAL_H
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
527 int sig_indx; /* for setting up signal catching */
3138
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
528 sigset_t sigset;
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
529 void (*prev_sig_disp)();
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
530 #endif
2307
64dd9e99884c [gaim-migrate @ 2317]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2257
diff changeset
531 int opt, opt_user = 0;
2068
e38eb507b261 [gaim-migrate @ 2078]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2006
diff changeset
532 int i;
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
533
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
534 struct option long_options[] = {
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
535 {"acct", no_argument, NULL, 'a'},
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
536 /*{"away", optional_argument, NULL, 'w'}, */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
537 {"help", no_argument, NULL, 'h'},
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
538 /*{"login", optional_argument, NULL, 'l'}, */
3360
f06c87748d91 [gaim-migrate @ 3379]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
539 {"loginwin", no_argument, NULL, 'n'},
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
540 {"user", required_argument, NULL, 'u'},
1560
72235e3fcff6 [gaim-migrate @ 1570]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1555
diff changeset
541 {"file", required_argument, NULL, 'f'},
2823
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
542 {"debug", no_argument, NULL, 'd'},
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
543 {"version", no_argument, NULL, 'v'},
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
544 {0, 0, 0, 0}
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
545 };
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
546
2823
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
547 #ifdef DEBUG
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
548 opt_debug = 1;
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
549 #endif
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
550
369
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 357
diff changeset
551 #ifdef ENABLE_NLS
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 357
diff changeset
552 bindtextdomain(PACKAGE, LOCALEDIR);
3531
84d2cd1d0ec9 [gaim-migrate @ 3605]
Sean Egan <seanegan@gmail.com>
parents: 3528
diff changeset
553 bind_textdomain_codeset(PACKAGE, "UTF-8");
369
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 357
diff changeset
554 textdomain(PACKAGE);
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 357
diff changeset
555 #endif
cf895313fc50 [gaim-migrate @ 379]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 357
diff changeset
556
614
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
557 #if HAVE_SIGNAL_H
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
558 /* Let's not violate any PLA's!!!! */
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
559 /* jseymour: whatever the fsck that means */
3138
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
560 /* Robot101: for some reason things like gdm like to block *
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
561 * useful signals like SIGCHLD, so we unblock all the ones we *
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
562 * declare a handler for. thanks JSeymour and Vann. */
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
563 if (sigemptyset(&sigset)) {
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
564 char errmsg[BUFSIZ];
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
565 sprintf(errmsg, "Warning: couldn't initialise empty signal set");
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
566 perror(errmsg);
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
567 }
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
568 for(sig_indx = 0; catch_sig_list[sig_indx] != -1; ++sig_indx) {
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
569 if((prev_sig_disp = signal(catch_sig_list[sig_indx], sighandler)) == SIG_ERR) {
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
570 char errmsg[BUFSIZ];
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
571 sprintf(errmsg, "Warning: couldn't set signal %d for catching",
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
572 catch_sig_list[sig_indx]);
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
573 perror(errmsg);
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
574 }
3138
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
575 if(sigaddset(&sigset, catch_sig_list[sig_indx])) {
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
576 char errmsg[BUFSIZ];
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
577 sprintf(errmsg, "Warning: couldn't include signal %d for unblocking",
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
578 catch_sig_list[sig_indx]);
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
579 perror(errmsg);
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
580 }
3105
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
581 }
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
582 for(sig_indx = 0; ignore_sig_list[sig_indx] != -1; ++sig_indx) {
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
583 if((prev_sig_disp = signal(ignore_sig_list[sig_indx], SIG_IGN)) == SIG_ERR) {
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
584 char errmsg[BUFSIZ];
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
585 sprintf(errmsg, "Warning: couldn't set signal %d to ignore",
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
586 ignore_sig_list[sig_indx]);
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
587 perror(errmsg);
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
588 }
da324fe688b3 [gaim-migrate @ 3119]
Sean Egan <seanegan@gmail.com>
parents: 3076
diff changeset
589 }
3138
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
590
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
591 if (sigprocmask(SIG_UNBLOCK, &sigset, NULL)) {
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
592 char errmsg[BUFSIZ];
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
593 sprintf(errmsg, "Warning: couldn't unblock signals");
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
594 perror(errmsg);
e970fccae757 [gaim-migrate @ 3153]
Rob Flynn <gaim@robflynn.com>
parents: 3105
diff changeset
595 }
614
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
596 #endif
a3e32af35b30 [gaim-migrate @ 624]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 600
diff changeset
597
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
598 for (i = 0; i < argc; i++) {
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
599 /* --login option */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
600 if (strstr(argv[i], "--l") == argv[i]) {
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
601 char *equals;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
602 opt_login = 1;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
603 if ((equals = strchr(argv[i], '=')) != NULL) {
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
604 /* --login=NAME */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
605 opt_login_arg = g_strdup(equals + 1);
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
606 if (strlen(opt_login_arg) == 0) {
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
607 g_free(opt_login_arg);
2068
e38eb507b261 [gaim-migrate @ 2078]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2006
diff changeset
608 opt_login_arg = NULL;
e38eb507b261 [gaim-migrate @ 2078]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2006
diff changeset
609 }
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
610 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
611 /* --login NAME */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
612 opt_login_arg = g_strdup(argv[i + 1]);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
613 strcpy(argv[i + 1], " ");
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
614 }
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
615 strcpy(argv[i], " ");
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
616 }
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
617 /* -l option */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
618 else if (strstr(argv[i], "-l") == argv[i]) {
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
619 opt_login = 1;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
620 if (strlen(argv[i]) > 2) {
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
621 /* -lNAME */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
622 opt_login_arg = g_strdup(argv[i] + 2);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
623 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
624 /* -l NAME */
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
625 opt_login_arg = g_strdup(argv[i + 1]);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
626 strcpy(argv[i + 1], " ");
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
627 }
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
628 strcpy(argv[i], " ");
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
629 }
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
630 /* --away option */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
631 else if (strstr(argv[i], "--aw") == argv[i]) {
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
632 char *equals;
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
633 opt_away = 1;
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
634 if ((equals = strchr(argv[i], '=')) != NULL) {
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
635 /* --away=MESG */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
636 opt_away_arg = g_strdup(equals + 1);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
637 if (strlen(opt_away_arg) == 0) {
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
638 g_free(opt_away_arg);
2068
e38eb507b261 [gaim-migrate @ 2078]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2006
diff changeset
639 opt_away_arg = NULL;
e38eb507b261 [gaim-migrate @ 2078]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2006
diff changeset
640 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
641 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
642 /* --away MESG */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
643 opt_away_arg = g_strdup(argv[i + 1]);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
644 strcpy(argv[i + 1], " ");
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
645 }
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
646 strcpy(argv[i], " ");
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
647 }
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
648 /* -w option */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
649 else if (strstr(argv[i], "-w") == argv[i]) {
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
650 opt_away = 1;
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
651 if (strlen(argv[i]) > 2) {
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
652 /* -wMESG */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
653 opt_away_arg = g_strdup(argv[i] + 2);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
654 } else if (i + 1 < argc && argv[i + 1][0] != '-') {
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
655 /* -w MESG */
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
656 opt_away_arg = g_strdup(argv[i + 1]);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
657 strcpy(argv[i + 1], " ");
1254
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
658 }
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
659 strcpy(argv[i], " ");
9da444224f0e [gaim-migrate @ 1264]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1250
diff changeset
660 }
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
661 }
2068
e38eb507b261 [gaim-migrate @ 2078]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2006
diff changeset
662 /*
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
663 if (opt_login) {
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
664 printf ("--login given with arg %s\n",
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
665 opt_login_arg ? opt_login_arg : "NULL");
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
666 exit(0);
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
667 }
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
668 */
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
669
2075
75c06bcb022e [gaim-migrate @ 2085]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2068
diff changeset
670 gtk_set_locale();
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
671 gtk_init(&argc, &argv);
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
672
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
673 /* scan command-line options */
2120
9e2475cb0010 [gaim-migrate @ 2130]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2119
diff changeset
674 opterr = 1;
3360
f06c87748d91 [gaim-migrate @ 3379]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
675 while ((opt = getopt_long(argc, argv, "adhu:f:vn", long_options, NULL)) != -1) {
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
676 switch (opt) {
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
677 case 'u': /* set user */
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
678 opt_user = 1;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
679 opt_user_arg = g_strdup(optarg);
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
680 break;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
681 case 'a': /* account editor */
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
682 opt_acct = 1;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
683 break;
2823
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
684 case 'd': /* debug */
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
685 opt_debug = 1;
cd23279122ed [gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2755
diff changeset
686 break;
1560
72235e3fcff6 [gaim-migrate @ 1570]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1555
diff changeset
687 case 'f':
2372
2927c2c26fe6 [gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2329
diff changeset
688 opt_rcfile_arg = g_strdup(optarg);
1560
72235e3fcff6 [gaim-migrate @ 1570]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1555
diff changeset
689 break;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
690 case 'v': /* version */
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
691 opt_version = 1;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
692 break;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
693 case 'h': /* help */
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
694 opt_help = 1;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
695 break;
3360
f06c87748d91 [gaim-migrate @ 3379]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
696 case 'n': /* don't autologin */
f06c87748d91 [gaim-migrate @ 3379]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
697 opt_nologin = 1;
f06c87748d91 [gaim-migrate @ 3379]
Sean Egan <seanegan@gmail.com>
parents: 3285
diff changeset
698 break;
2120
9e2475cb0010 [gaim-migrate @ 2130]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2119
diff changeset
699 case '?':
9e2475cb0010 [gaim-migrate @ 2130]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2119
diff changeset
700 default:
2121
388b2d23442a [gaim-migrate @ 2131]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2120
diff changeset
701 show_usage(1, argv[0]);
2120
9e2475cb0010 [gaim-migrate @ 2130]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2119
diff changeset
702 return 0;
9e2475cb0010 [gaim-migrate @ 2130]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2119
diff changeset
703 break;
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
704 }
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
705 }
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
706
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
707 /* show help message */
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
708 if (opt_help) {
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
709 show_usage(0, argv[0]);
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
710 return 0;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
711 }
3474
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
712 /* show version message */
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
713 if (opt_version) {
3474
cfbdfe334975 [gaim-migrate @ 3525]
Sean Egan <seanegan@gmail.com>
parents: 3472
diff changeset
714 printf("Gaim %s\n",VERSION);
546
e312b8b9bee5 [gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 535
diff changeset
715 return 0;
e312b8b9bee5 [gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 535
diff changeset
716 }
3551
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
717
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
718 #if GAIM_PLUGINS || USE_PERL
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
719 gaim_probe_plugins();
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
720 #endif
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
721 load_prefs();
2416
61b816a7b467 [gaim-migrate @ 2429]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
722 core_main();
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
723 ui_main();
2416
61b816a7b467 [gaim-migrate @ 2429]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
724
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
725 /* set the default username */
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
726 if (opt_user_arg != NULL) {
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
727 set_first_user(opt_user_arg);
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
728 g_free(opt_user_arg);
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
729 opt_user_arg = NULL;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
730 }
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
731
2313
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2307
diff changeset
732 if (misc_options & OPT_MISC_DEBUG)
bd9d403fb15b [gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2307
diff changeset
733 show_debug();
3209
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
734 /*If ispell fails to start, try using aspell in ispell compatibitity mode.
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
735 Gabber does this the same way -- lorien420@myrealbox.com*/
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
736 if (convo_options & OPT_CONVO_CHECK_SPELLING){
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
737 if (gtkspell_start(NULL, ispell_cmd)<0){
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
738 debug_printf("gtkspell failed to start when using ispell\n");
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
739 if (gtkspell_start(NULL, aspell_cmd)<0){
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
740 debug_printf("gtkspell failed to start when using aspell\n");
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
741 } else
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
742 debug_printf("gtkspell started with aspell\n");
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
743 } else {
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
744 debug_printf("gtkspell started with ispell\n");
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
745 }
265a3c9d0557 [gaim-migrate @ 3226]
Sean Egan <seanegan@gmail.com>
parents: 3138
diff changeset
746 }
3551
cd938f18f3f8 [gaim-migrate @ 3626]
Sean Egan <seanegan@gmail.com>
parents: 3533
diff changeset
747
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
748 static_proto_init();
784
4c292b3f74ea [gaim-migrate @ 794]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 780
diff changeset
749
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
750 /* deal with --login */
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
751 if (opt_login) {
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
752 do_login_ret = do_auto_login(opt_login_arg);
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
753 if (opt_login_arg != NULL) {
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
754 g_free(opt_login_arg);
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
755 opt_login_arg = NULL;
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
756 }
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
757 }
981
7e231bc0018a [gaim-migrate @ 991]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 975
diff changeset
758
3478
3da42b64304e [gaim-migrate @ 3532]
Sean Egan <seanegan@gmail.com>
parents: 3477
diff changeset
759 if (!opt_acct && !opt_nologin && gaim_session == 0)
1361
5d4464379703 [gaim-migrate @ 1371]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1360
diff changeset
760 auto_login();
5d4464379703 [gaim-migrate @ 1371]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1360
diff changeset
761
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
762 if (opt_acct) {
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
763 account_editor(NULL, NULL);
1361
5d4464379703 [gaim-migrate @ 1371]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1360
diff changeset
764 } else if ((do_login_ret == -1) && !connections)
1009
d496fe2614a6 [gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1002
diff changeset
765 show_login();
1137
5b5d03dfa48a [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1128
diff changeset
766
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
767 gtk_main();
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
768
2460
049822b93239 [gaim-migrate @ 2473]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2416
diff changeset
769 if (convo_options & OPT_CONVO_CHECK_SPELLING)
049822b93239 [gaim-migrate @ 2473]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2416
diff changeset
770 gtkspell_stop();
2416
61b816a7b467 [gaim-migrate @ 2429]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2397
diff changeset
771 core_quit();
2482
7e4757801725 [gaim-migrate @ 2495]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 2460
diff changeset
772 /* don't need ui_quit here because ui doesn't create anything */
1117
f3e0f41beddb [gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1093
diff changeset
773
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
774 return 0;
1250
b5783215b245 [gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents: 1142
diff changeset
775
1
2846a03bda67 [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
776 }