src/gaimrc.c

Thu, 30 Jan 2003 09:22:15 +0000

author
Christian Hammond <chipx86@chipx86.com>
date
Thu, 30 Jan 2003 09:22:15 +0000
changeset 4469
ef60c820b884
parent 4430
95df701e8cdf
child 4480
d8c7bc322801
permissions
-rw-r--r--

[gaim-migrate @ 4744]
Phase 2 of the conversation rewrite! Did you think I was done?

Okay everybody, the prefs page was slightly redesigned. Not much, though.
It needs an overhaul, and still, not everything works.. What we have now
is:

Conversations
|
|- IMs
|- Chats
`- Tabs

But that's not the good part of this patch. Oh no, not close. You see, in
Conversations, we now have a "Placement" drop-down box. Though this prefs
page is ugly and will eventually be redesigned, this gives you the
opportunity to set one of a number of different types of conversation
placement options.

The defaults are:
- Last created window: Adds the new conversation to the last created
window, like how things have been lately.

- New window: Adds the new conversation to a brand new window, every
time. Tabs are still there, so you can drag them between windows if you
want to manually group them.

- By group: This is my new favorite. This will put the new conversation
in whatever window it finds first that has another member from that
same group on your buddy list. If it doesn't find one, it creates a new
window. If the person you IM'd or the person who IM'd you is not on your
list, it gets put in a window with other people not on your list.

These are the only ones implemented, but don't think you're limited to
that. You see, we have new API functions for registering these
Conversation Placement functions. All a plugin would need to do is to write
a function, take into account OPT_CONVO_COMBINE (oh yeah, "Show IMs and
chats in same tabbed window" works again), make sure the conversation is
added _somewhere_, and then just register that function. If the plugin is
loaded, the user can select it from the existing drop-down box.

Cool, huh? Make sure to unregister the function when the plugin is
unloaded.

Have fun.

1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1 /*
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
2 * gaim
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
3 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
5 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
efe077a7e70d [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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
9 * (at your option) any later version.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
10 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
14 * GNU General Public License for more details.
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
15 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
19 *
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
20 */
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
21
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 340
diff changeset
22 #ifdef HAVE_CONFIG_H
2090
bab8b7e309db [gaim-migrate @ 2100]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2036
diff changeset
23 #include <config.h>
349
6f7d28b0f98d [gaim-migrate @ 359]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 340
diff changeset
24 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
25 #include <string.h>
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
26
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
27 #ifndef _WIN32
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <sys/time.h>
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
29 #include <unistd.h>
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
30 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
32 #include <sys/types.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33 #include <sys/stat.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34
4201
547da94c5a14 [gaim-migrate @ 4432]
Christian Hammond <chipx86@chipx86.com>
parents: 4189
diff changeset
35 #include <ctype.h>
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
36 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37 #include <stdlib.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
38 #include "gaim.h"
1264
80816a51169a [gaim-migrate @ 1274]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1254
diff changeset
39 #include "prpl.h"
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
40 #include "proxy.h"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
42 #ifdef _WIN32
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
43 #include "win32dep.h"
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
44 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
45
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
46 /* for people like myself, who are too lazy to add an away msg :) */
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
47 #define BORING_DEFAULT_AWAY_MSG "sorry, i ran out for a while. bbl"
1139
09a066d6d706 [gaim-migrate @ 1149]
Rob Flynn <gaim@robflynn.com>
parents: 1137
diff changeset
48 #define MAX_VALUES 10
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
49
2397
432ccc0c7f18 [gaim-migrate @ 2410]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2389
diff changeset
50 GSList *aim_users = NULL;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
51 guint misc_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
52 guint logging_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
53 guint blist_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
54 guint convo_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
55 guint im_options;
4469
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
56 guint conv_placement_option;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
57 guint chat_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
58 guint font_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
59 guint sound_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
60 guint away_options;
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
61 guint away_resend;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
62 static guint is_loading_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
63 static guint request_save_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
64 static guint is_saving_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
65 static guint request_load_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
66 guint proxy_info_is_from_gaimrc = 1; /* Only save proxy info if it
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
67 * was loaded from the file
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
68 * or otherwise explicitly requested */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
69
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
70 int report_idle;
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
71 int web_browser;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
72 struct save_pos blist_pos;
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
73 struct window_size conv_size, buddy_chat_size;
4189
9af38873a2af [gaim-migrate @ 4420]
Luke Schierer <lschiere@pidgin.im>
parents: 4188
diff changeset
74 char web_command[2048] = "";
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
75 char *sound_file[NUM_SOUNDS];
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
76 #ifndef _WIN32
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
77 char sound_cmd[2048];
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
78 #endif
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
79
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
80 struct parse {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
81 char option[256];
2286
bc6384ba314a [gaim-migrate @ 2296]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
82 char value[MAX_VALUES][4096];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
83 };
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
84
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
85 static struct parse *parse_line(char *line, struct parse *p)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
86 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
87 char *c = line;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
88 int inopt = 1, inval = 0, curval = -1;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
89 int optlen = 0, vallen = 0, last_non_space = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
90 int x;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
91
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
92 for (x = 0; x < MAX_VALUES; x++) {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
93 p->value[x][0] = 0;
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
94 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
95
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
96 while (*c) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
97 if (*c == '\t') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
98 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
99 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
100 }
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
101
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
102 if (inopt) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
103 if ((*c < 'a' || *c > 'z') && *c != '_' && (*c < 'A' || *c > 'Z')) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
104 inopt = 0;
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
105 p->option[optlen] = 0;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
106 c++;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
107 continue;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
108 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
109
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
110 p->option[optlen] = *c;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
111 optlen++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
112 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
113 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
114 } else if (inval) {
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
115 if (*c == '\\') {
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
116 /* if we have a \ take the char after it literally.. */
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
117 c++;
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
118 p->value[curval][vallen] = *c;
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
119
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
120 vallen++;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
121 last_non_space = vallen;
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
122 c++;
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
123 continue;
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
124 } else if (*c == '}') {
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
125 /* } that isn't escaped should end this chunk of data, and
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
126 * should have a space before it.. */
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
127 p->value[curval][last_non_space] = 0;
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
128 inval = 0;
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
129 c++;
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
130 continue;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
131 } else {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
132 p->value[curval][vallen] = *c;
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
133
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
134 vallen++;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
135 if (! isspace(*c))
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
136 last_non_space = vallen;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
137 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
138 continue;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
139 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
140 } else if (*c == '{') {
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
141 /* i really don't think this if ever succeeds, but i'm
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
142 * not brave enough to take it out... */
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
143 if (*(c - 1) == '\\') {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
144 p->value[curval][vallen] = *c;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
145 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
146 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
147 } else {
4049
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
148 /* { that isn't escaped should signify the start of a
29cf029df01f [gaim-migrate @ 4258]
Eric Timme
parents: 4042
diff changeset
149 * piece of data and should have a space after it.. */
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
150 curval++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
151 vallen = 0;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
152 last_non_space = vallen;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
153 inval = 1;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
154 c++;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
155 while (*c && isspace(*c))
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
156 c++;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
157 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
158 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
159 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
160 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
161 }
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
162
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
163 return p;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
164 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
165
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
166
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
167 static int gaimrc_parse_tag(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
168 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
169 char buf[2048];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
170 char tag[256];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
171 buf[0] = '#';
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
172
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
173 while (buf[0] == '#' && !feof(f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
174 fgets(buf, sizeof(buf), f);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
175
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
176 if (feof(f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
177 return -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
178
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
179 sscanf(buf, "%s {", tag);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
180
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
181 if (!strcmp(tag, "users")) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
182 return 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
183 } else if (!strcmp(tag, "options")) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
184 return 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
185 } else if (!strcmp(tag, "away")) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
186 return 2;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
187 } else if (!strcmp(tag, "plugins")) {
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
188 return 3;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
189 } else if (!strcmp(tag, "pounce")) {
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
190 return 4;
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
191 } else if (!strcmp(tag, "sound_files")) {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
192 return 6;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
193 } else if (!strcmp(tag, "proxy")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
194 return 7;
4026
4ec5559caae9 [gaim-migrate @ 4230]
Herman Bloggs <herman@bluedigits.com>
parents: 3924
diff changeset
195 } else if (!strcmp(tag, "wgaim")) {
4ec5559caae9 [gaim-migrate @ 4230]
Herman Bloggs <herman@bluedigits.com>
parents: 3924
diff changeset
196 return 8;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
197 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
198 return -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
199 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
200
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
201 static void filter_break(char *msg)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
202 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
203 char *c;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
204 int mc;
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
205 int cc;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
206
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
207 c = g_malloc(strlen(msg) + 1);
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
208 strcpy(c, msg);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
209
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
210 mc = 0;
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
211 cc = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
212 while (c[cc] != '\0') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
213 if (c[cc] == '\\') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
214 cc++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
215 msg[mc] = c[cc];
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
216 } else {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
217 msg[mc] = c[cc];
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
218 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
219 mc++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
220 cc++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
221 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
222 msg[mc] = 0;
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
223 g_free(c);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
224 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
225
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
226 static char *escape_text2(const char *msg)
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
227 {
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
228 char *c, *cpy;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
229 char *woo;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
230 int cnt = 0;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
231 /* Assumes you have a buffer able to cary at least BUF_LEN * 2 bytes */
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
232
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
233 woo = malloc(strlen(msg) * 4 + 1);
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
234 cpy = g_strndup(msg, 2048);
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
235 c = cpy;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
236 while (*c) {
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
237 switch (*c) {
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
238 case '\n':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
239 woo[cnt++] = '<';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
240 woo[cnt++] = 'B';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
241 woo[cnt++] = 'R';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
242 woo[cnt++] = '>';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
243 break;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
244 case '{':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
245 case '}':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
246 case '\\':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
247 case '"':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
248 woo[cnt++] = '\\';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
249 /* Fall through */
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
250 default:
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
251 woo[cnt++] = *c;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
252 }
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
253 c++;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
254 }
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
255 woo[cnt] = '\0';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
256
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
257 g_free(cpy);
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
258 return woo;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
259 }
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
260
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
261 static void gaimrc_read_away(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
262 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
263 struct parse parse_buffer;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
264 struct parse *p;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
265 char buf[4096];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
266 struct away_message *a;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
267
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
268 buf[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
269
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
270 while (buf[0] != '}') {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
271 if (!fgets(buf, sizeof(buf), f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
272 return;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
273
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
274 if (buf[0] == '}')
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
275 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
276
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
277 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
278 if (!strcmp(p->option, "message")) {
15
235e56b2f5ed [gaim-migrate @ 24]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
279 a = g_new0(struct away_message, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
280
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
281 g_snprintf(a->name, sizeof(a->name), "%s", p->value[0]);
15
235e56b2f5ed [gaim-migrate @ 24]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
282 g_snprintf(a->message, sizeof(a->message), "%s", p->value[1]);
2091
7cefef97a2fc [gaim-migrate @ 2101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
283 filter_break(a->name);
15
235e56b2f5ed [gaim-migrate @ 24]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
284 filter_break(a->message);
1209
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
285 away_messages = g_slist_insert_sorted(away_messages, a, sort_awaymsg_list);
15
235e56b2f5ed [gaim-migrate @ 24]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
286 }
1109
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
287 /* auto { time } { default message } */
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
288 else if (!strcmp(p->option, "auto")) {
1109
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
289 auto_away = atoi(p->value[0]);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
290 default_away = g_slist_nth_data(away_messages, atoi(p->value[1]));
1109
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
291 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
292 }
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
293 if (!away_messages) {
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
294 a = g_new0(struct away_message, 1);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
295 g_snprintf(a->name, sizeof(a->name), "boring default");
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
296 g_snprintf(a->message, sizeof(a->message), "%s", BORING_DEFAULT_AWAY_MSG);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
297 away_messages = g_slist_append(away_messages, a);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
298 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
300
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
301 static void gaimrc_write_away(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
302 {
940
b3985f53a6c0 [gaim-migrate @ 950]
kylev
parents: 917
diff changeset
303 GSList *awy = away_messages;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
304 struct away_message *a;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
305
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
306 fprintf(f, "away {\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
307
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
308 if (awy) {
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
309 while (awy) {
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
310 char *str1, *str2;
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 15
diff changeset
311
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
312 a = (struct away_message *)awy->data;
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 15
diff changeset
313
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
314 str1 = escape_text2(a->name);
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
315 str2 = escape_text2(a->message);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
316
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
317 fprintf(f, "\tmessage { %s } { %s }\n", str1, str2);
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 15
diff changeset
318
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
319 /* escape_text2 uses malloc(), so we don't want to g_free these */
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
320 free(str1);
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
321 free(str2);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
322
940
b3985f53a6c0 [gaim-migrate @ 950]
kylev
parents: 917
diff changeset
323 awy = g_slist_next(awy);
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
324 }
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
325 fprintf(f, "\tauto { %d } { %d }\n", auto_away,
1254
acb7539010c0 [gaim-migrate @ 1264]
Ben Miller <millebe@cs.earlham.edu>
parents: 1250
diff changeset
326 g_slist_index(away_messages, default_away));
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
327 } else {
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
328 fprintf(f, "\tmessage { boring default } { %s }\n", BORING_DEFAULT_AWAY_MSG);
1109
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
329 fprintf(f, "\tauto { 0 } { 0 }\n");
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
330 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
331
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
332 fprintf(f, "}\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
333 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
334
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
335 static void gaimrc_read_pounce(FILE *f)
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
336 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
337 struct parse parse_buffer;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
338 struct parse *p;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
339 char buf[4096];
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
340 struct buddy_pounce *b;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
341
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
342 buf[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
343
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
344 while (buf[0] != '}') {
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
345 if (!fgets(buf, sizeof(buf), f))
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
346 return;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
347
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
348 if (buf[0] == '}')
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
349 return;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
350
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
351 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
352 if (!strcmp(p->option, "entry")) {
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
353 b = g_new0(struct buddy_pounce, 1);
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
354
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
355 g_snprintf(b->name, sizeof(b->name), "%s", p->value[0]);
2091
7cefef97a2fc [gaim-migrate @ 2101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
356 filter_break(b->name);
1155
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1139
diff changeset
357 g_snprintf(b->message, sizeof(b->message), "%s", p->value[1]);
2091
7cefef97a2fc [gaim-migrate @ 2101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
358 filter_break(b->message);
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
359 g_snprintf(b->command, sizeof(b->command), "%s", p->value[2]);
2091
7cefef97a2fc [gaim-migrate @ 2101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
360 filter_break(b->command);
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
361
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
362 b->options = atoi(p->value[3]);
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
363
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
364 g_snprintf(b->pouncer, sizeof(b->pouncer), "%s", p->value[4]);
2091
7cefef97a2fc [gaim-migrate @ 2101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
365 filter_break(b->pouncer);
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
366 b->protocol = atoi(p->value[5]);
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
367
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
368 g_snprintf(b->sound, sizeof(b->sound), "%s", p->value[6]);
2091
7cefef97a2fc [gaim-migrate @ 2101]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2090
diff changeset
369 filter_break(b->sound);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
370
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
371 buddy_pounces = g_list_append(buddy_pounces, b);
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
372 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
373 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
374 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
375
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
376 static void gaimrc_write_pounce(FILE *f)
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
377 {
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
378 GList *pnc = buddy_pounces;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
379 struct buddy_pounce *b;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
380
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
381 fprintf(f, "pounce {\n");
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
382
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
383 while (pnc) {
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
384 char *str1, *str2, *str3, *str4;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
385
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
386 b = (struct buddy_pounce *)pnc->data;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
387
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
388 str1 = escape_text2(b->name);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
389 if (strlen(b->message))
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
390 str2 = escape_text2(b->message);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
391 else {
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
392 str2 = malloc(1);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
393 str2[0] = 0;
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
394 }
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
395 if (strlen(b->command))
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
396 str3 = escape_text2(b->command);
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
397 else {
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
398 str3 = malloc(1);
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
399 str3[0] = 0;
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
400 }
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
401 if (strlen(b->sound))
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
402 str4 = escape_text2(b->sound);
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
403 else {
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
404 str4 = malloc(1);
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
405 str4[0] = 0;
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
406 }
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
407
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
408 fprintf(f, "\tentry { %s } { %s } { %s } { %d } { %s } { %d } { %s }\n",
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
409 str1, str2, str3, b->options, b->pouncer, b->protocol, str4);
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
410
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
411 /* escape_text2 uses malloc(), so we don't want to g_free these */
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
412 free(str1);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
413 free(str2);
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
414 free(str3);
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
415 free(str4);
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
416
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
417 pnc = pnc->next;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
418 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
419
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
420 fprintf(f, "}\n");
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
421 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
422
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
423 #ifdef GAIM_PLUGINS
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
424 static void gaimrc_write_plugins(FILE *f)
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
425 {
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
426 GList *pl = plugins;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
427 struct gaim_plugin *p;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
428
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
429 fprintf(f, "plugins {\n");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
430
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
431 while (pl) {
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
432 char *path;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
433
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
434 p = (struct gaim_plugin *)pl->data;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
435
3563
ea2789c8077c [gaim-migrate @ 3658]
Sean Egan <seanegan@pidgin.im>
parents: 3541
diff changeset
436 path = escape_text2(p->path);
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
437 fprintf(f, "\tplugin { %s }\n", path);
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
438 free(path);
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
439
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
440 pl = pl->next;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
441 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
442
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
443 fprintf(f, "}\n");
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
444 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
445
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
446 static void gaimrc_read_plugins(FILE *f)
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
447 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
448 struct parse parse_buffer;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
449 struct parse *p;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
450 char buf[4096];
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
451 GSList *load = NULL;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
452
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
453 buf[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
454
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
455 while (buf[0] != '}') {
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
456 if (!fgets(buf, sizeof(buf), f))
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
457 break;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
458
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
459 if (buf[0] == '}')
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
460 break;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
461
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
462 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
463 if (!strcmp(p->option, "plugin")) {
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
464 load = g_slist_append(load, g_strdup(p->value[0]));
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
465 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
466 }
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
467 /* this is such a fucked up hack. the reason we do this is because after
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
468 * we load a plugin the gaimrc file gets rewrit. so we have to remember
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
469 * which ones to load before loading them. */
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
470 while (load) {
1710
4793276c2510 [gaim-migrate @ 1720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
471 if (load->data)
2095
6bd5ca5e4745 [gaim-migrate @ 2105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2091
diff changeset
472 load_plugin(load->data);
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
473 g_free(load->data);
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
474 load = g_slist_remove(load, load->data);
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
475 }
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
476 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
477 #endif /* GAIM_PLUGINS */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
478
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
479 static struct aim_user *gaimrc_read_user(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
480 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
481 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
482 struct parse *p;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
483 struct aim_user *u;
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
484 int i;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
485 char buf[4096];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
486
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
487 if (!fgets(buf, sizeof(buf), f))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
488 return NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
489
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
490 p = parse_line(buf, &parse_buffer);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
491
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
492 if (strcmp(p->option, "ident"))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
493 return NULL;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
494
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
495 u = g_new0(struct aim_user, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
496
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
497 strcpy(u->username, p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
498 strcpy(u->password, p->value[1]);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
499
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
500 u->user_info[0] = 0;
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
501 u->options = OPT_USR_REM_PASS;
1878
ffbde9f31c65 [gaim-migrate @ 1888]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1843
diff changeset
502 u->protocol = DEFAULT_PROTO;
4349
a65175463a31 [gaim-migrate @ 4614]
Nathan Walp <nwalp@pidgin.im>
parents: 4288
diff changeset
503 u->permit = u->deny = NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
504
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
505 if (!fgets(buf, sizeof(buf), f))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
506 return u;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
507
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
508 if (strcmp(buf, "\t\tuser_info {\n")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
509 return u;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
510 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
511
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
512 if (!fgets(buf, sizeof(buf), f))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
513 return u;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
514
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
515 while (strncmp(buf, "\t\t}", 3)) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
516 if (strlen(buf) > 3)
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
517 strcat(u->user_info, buf + 3);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
518
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
519 if (!fgets(buf, sizeof(buf), f)) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
520 return u;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
521 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
522 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
523
1456
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
524 if ((i = strlen(u->user_info))) {
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
525 u->user_info[i - 1] = '\0';
1292
82820e0a3748 [gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents: 1264
diff changeset
526 }
82820e0a3748 [gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents: 1264
diff changeset
527
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
528 if (!fgets(buf, sizeof(buf), f)) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
529 return u;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
530 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
531
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
532 if (!strcmp(buf, "\t}")) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
533 return u;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
534 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
535
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
536 p = parse_line(buf, &parse_buffer);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
537
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
538 if (strcmp(p->option, "user_opts"))
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
539 return u;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
540
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
541 u->options = atoi(p->value[0]);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
542 u->protocol = atoi(p->value[1]);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
543
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
544 if (!fgets(buf, sizeof(buf), f))
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
545 return u;
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
546
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
547 if (!strcmp(buf, "\t}"))
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
548 return u;
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
549
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
550 p = parse_line(buf, &parse_buffer);
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
551
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
552 if (strcmp(p->option, "proto_opts"))
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
553 return u;
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
554
1843
aeeac3ee7ac5 [gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1813
diff changeset
555 for (i = 0; i < 7; i++)
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
556 g_snprintf(u->proto_opt[i], sizeof u->proto_opt[i], "%s", p->value[i]);
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
557
2317
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
558 if (!fgets(buf, sizeof(buf), f))
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
559 return u;
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
560
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
561 if (!strcmp(buf, "\t}"))
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
562 return u;
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
563
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
564 p = parse_line(buf, &parse_buffer);
2317
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
565
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
566 if (strcmp(p->option, "iconfile"))
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
567 return u;
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
568
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
569 g_snprintf(u->iconfile, sizeof(u->iconfile), "%s", p->value[0]);
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
570
3205
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
571 if (!fgets(buf, sizeof(buf), f))
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
572 return u;
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
573
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
574 if (!strcmp(buf, "\t}"))
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
575 return u;
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
576
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
577 p = parse_line(buf, &parse_buffer);
3205
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
578
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
579 if (strcmp(p->option, "alias"))
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
580 return u;
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
581
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
582 g_snprintf(u->alias, sizeof(u->alias), "%s", p->value[0]);
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
583
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
584 return u;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
585
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
586 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
587
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
588 static void gaimrc_write_user(FILE *f, struct aim_user *u)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
589 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
590 char *c;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
591 int nl = 1, i;
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
592
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
593 if (u->options & OPT_USR_REM_PASS) {
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
594 fprintf(f, "\t\tident { %s } { %s }\n", u->username, (c = escape_text2(u->password)));
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
595 free(c);
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
596 } else {
131
50460674821d [gaim-migrate @ 141]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 84
diff changeset
597 fprintf(f, "\t\tident { %s } { }\n", u->username);
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
598 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
599 fprintf(f, "\t\tuser_info {");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
600 c = u->user_info;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
601 while (*c) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
602 /* This is not as silly as it looks. */
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
603 if (*c == '\n') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
604 nl++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
605 } else {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
606 if (nl) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
607 while (nl) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
608 fprintf(f, "\n\t\t\t");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
609 nl--;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
610 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
611 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
612 fprintf(f, "%c", *c);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
613 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
614 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
615 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
616 fprintf(f, "\n\t\t}\n");
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
617 fprintf(f, "\t\tuser_opts { %d } { %d }\n", u->options, u->protocol);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
618 fprintf(f, "\t\tproto_opts");
1843
aeeac3ee7ac5 [gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1813
diff changeset
619 for (i = 0; i < 7; i++)
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
620 fprintf(f, " { %s }", u->proto_opt[i]);
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
621 fprintf(f, "\n");
2317
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
622 fprintf(f, "\t\ticonfile { %s }\n", u->iconfile);
3205
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
623 fprintf(f, "\t\talias { %s }\n", u->alias);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
624 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
625
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
626 static void gaimrc_read_users(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
627 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
628 char buf[2048];
4410
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
629 struct aim_user *u=NULL;
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
630 struct parse parse_buffer;
4410
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
631 struct parse *p=NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
632
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
633 buf[0] = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
634
4410
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
635 while (fgets(buf, sizeof(buf), f)) {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
636 if (buf[0] == '#')
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
637 continue;
4410
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
638 else if(buf[0] == '}')
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
639 break;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
640
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
641 p = parse_line(buf, &parse_buffer);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
642
4410
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
643 if (strcmp(p->option, "user")==0 ||
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
644 strcmp(p->option, "current_user")==0) {
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
645 if((u=gaimrc_read_user(f))!=NULL)
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
646 aim_users = g_slist_append(aim_users, u);
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
647 else {
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
648 debug_printf("Error reading in users from .gaimrc\n");
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
649 return;
9e593f7acd2e [gaim-migrate @ 4683]
Herman Bloggs <herman@bluedigits.com>
parents: 4405
diff changeset
650 }
159
bd2436428efa [gaim-migrate @ 169]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 158
diff changeset
651 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
652 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
653 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
654
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
655 static void gaimrc_write_users(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
656 {
2397
432ccc0c7f18 [gaim-migrate @ 2410]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2389
diff changeset
657 GSList *usr = aim_users;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
658 struct aim_user *u;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
659
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
660 fprintf(f, "users {\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
661
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
662 while (usr) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
663 u = (struct aim_user *)usr->data;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
664 fprintf(f, "\tuser {\n");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
665 gaimrc_write_user(f, u);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
666
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
667 fprintf(f, "\t}\n");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
668
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
669 usr = usr->next;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
670 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
671
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
672 fprintf(f, "}\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
673 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
674
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
675 struct replace {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
676 int old;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
677 guint *val;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
678 int new;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
679 };
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
680
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
681 static struct replace gen_replace[] = {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
682 { /* OPT_GEN_ENTER_SENDS */ 0x00000001, &convo_options, OPT_CONVO_ENTER_SENDS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
683 { /* OPT_GEN_APP_BUDDY_SHOW */ 0x00000010, &blist_options, OPT_BLIST_APP_BUDDY_SHOW },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
684 { /* OPT_GEN_POPUP_WINDOWS */ 0x00000020, &im_options, OPT_IM_POPUP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
685 { /* OPT_GEN_SEND_LINKS */ 0x00000040, &convo_options, OPT_CONVO_SEND_LINKS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
686 { /* OPT_GEN_DEBUG */ 0x00000100, &misc_options, OPT_MISC_DEBUG },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
687 { /* OPT_GEN_BROWSER_POPUP */ 0x00000800, &misc_options, OPT_MISC_BROWSER_POPUP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
688 { /* OPT_GEN_SAVED_WINDOWS */ 0x00001000, &blist_options, OPT_BLIST_SAVED_WINDOWS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
689 { /* OPT_GEN_DISCARD_WHEN_AWAY */ 0x00002000, &away_options, OPT_AWAY_DISCARD },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
690 { /* OPT_GEN_NEAR_APPLET */ 0x00004000, &blist_options, OPT_BLIST_NEAR_APPLET },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
691 { /* OPT_GEN_CHECK_SPELLING */ 0x00008000, &convo_options, OPT_CONVO_CHECK_SPELLING },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
692 { /* OPT_GEN_POPUP_CHAT */ 0x00010000, &chat_options, OPT_CHAT_POPUP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
693 { /* OPT_GEN_BACK_ON_IM */ 0x00020000, &away_options, OPT_AWAY_BACK_ON_IM },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
694 { /* OPT_GEN_CTL_CHARS */ 0x00080000, &convo_options, OPT_CONVO_CTL_CHARS },
3792
f169950a58d1 [gaim-migrate @ 3932]
Rob Flynn <gaim@robflynn.com>
parents: 3717
diff changeset
695 #if 0
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
696 { /* OPT_GEN_TIK_HACK */ 0x00100000, &away_options, OPT_AWAY_TIK_HACK },
3792
f169950a58d1 [gaim-migrate @ 3932]
Rob Flynn <gaim@robflynn.com>
parents: 3717
diff changeset
697 #endif
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
698 { /* OPT_GEN_CTL_SMILEYS */ 0x00200000, &convo_options, OPT_CONVO_CTL_SMILEYS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
699 { /* OPT_GEN_AUTO_AWAY */ 0x00800000, &away_options, OPT_AWAY_AUTO },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
700 { /* OPT_GEN_ESC_CAN_CLOSE */ 0x01000000, &convo_options, OPT_CONVO_ESC_CAN_CLOSE },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
701 { /* OPT_GEN_CTL_ENTER */ 0x02000000, &convo_options, OPT_CONVO_CTL_ENTER },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
702 { /* OPT_GEN_F2_TOGGLES */ 0x04000000, &convo_options, OPT_CONVO_F2_TOGGLES },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
703 { /* OPT_GEN_NO_AUTO_RESP */ 0x08000000, &away_options, OPT_AWAY_NO_AUTO_RESP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
704 { /* OPT_GEN_QUEUE_WHEN_AWAY */ 0x10000000, &away_options, OPT_AWAY_QUEUE },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
705 { 0,NULL,0 }
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
706 };
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
707
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
708 #define OPT_GEN_LOG_ALL 0x00000004
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
709 #define OPT_GEN_STRIP_HTML 0x00000008
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
710
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
711 static struct replace disp_replace[] = {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
712 { /* OPT_DISP_SHOW_TIME */ 0x00000001, &convo_options, OPT_CONVO_SHOW_TIME },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
713 { /* OPT_DISP_SHOW_GRPNUM */ 0x00000002, &blist_options, OPT_BLIST_SHOW_GRPNUM },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
714 { /* OPT_DISP_SHOW_PIXMAPS */ 0x00000004, &blist_options, OPT_BLIST_SHOW_PIXMAPS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
715 { /* OPT_DISP_SHOW_IDLETIME */ 0x00000008, &blist_options, OPT_BLIST_SHOW_IDLETIME },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
716 { /* OPT_DISP_SHOW_BUTTON_XPM */ 0x00000010, &blist_options, OPT_BLIST_SHOW_BUTTON_XPM },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
717 { /* OPT_DISP_IGNORE_COLOUR */ 0x00000020, &convo_options, OPT_CONVO_IGNORE_COLOUR },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
718 { /* OPT_DISP_SHOW_LOGON */ 0x00000040, &im_options, OPT_IM_LOGON },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
719 { /* OPT_DISP_SHOW_SMILEY */ 0x00000100, &convo_options, OPT_CONVO_SHOW_SMILEY },
3903
5f5b1be2a363 [gaim-migrate @ 4056]
Rob Flynn <gaim@robflynn.com>
parents: 3902
diff changeset
720 { /* OPT_DISP_COOL_LOOK */ 0x00000400, &misc_options, 0},
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
721 { /* OPT_DISP_CHAT_LOGON */ 0x00000800, &chat_options, OPT_CHAT_LOGON },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
722 { /* OPT_DISP_NO_BUTTONS */ 0x00002000, &blist_options, OPT_BLIST_NO_BUTTONS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
723 { /* OPT_DISP_CONV_BUTTON_TEXT */ 0x00004000, &im_options, OPT_IM_BUTTON_TEXT },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
724 { /* OPT_DISP_CHAT_BUTTON_TEXT */ 0x00008000, &chat_options, OPT_CHAT_BUTTON_TEXT },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
725 { /* OPT_DISP_NO_MT_GRP */ 0x00040000, &blist_options, OPT_BLIST_NO_MT_GRP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
726 { /* OPT_DISP_CONV_BUTTON_XPM */ 0x00080000, &im_options, OPT_IM_BUTTON_XPM },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
727 { /* OPT_DISP_CHAT_BUTTON_XPM */ 0x00100000, &chat_options, OPT_CHAT_BUTTON_XPM },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
728 { /* OPT_DISP_SHOW_WARN */ 0x00200000, &blist_options, OPT_BLIST_SHOW_WARN },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
729 { /* OPT_DISP_IGNORE_FONTS */ 0x00400000, &convo_options, OPT_CONVO_IGNORE_FONTS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
730 { /* OPT_DISP_IGNORE_SIZES */ 0x00800000, &convo_options, OPT_CONVO_IGNORE_SIZES },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
731 { /* OPT_DISP_ONE_WINDOW */ 0x01000000, &im_options, OPT_IM_ONE_WINDOW },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
732 { /* OPT_DISP_ONE_CHAT_WINDOW */ 0x02000000, &chat_options, OPT_CHAT_ONE_WINDOW },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
733 { /* OPT_DISP_CONV_SIDE_TAB */ 0x04000000, &im_options, OPT_IM_SIDE_TAB },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
734 { /* OPT_DISP_CONV_BR_TAB */ 0x08000000, &im_options, OPT_IM_BR_TAB },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
735 { /* OPT_DISP_CHAT_SIDE_TAB */ 0x10000000, &chat_options, OPT_CHAT_SIDE_TAB },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
736 { /* OPT_DISP_CHAT_BR_TAB */ 0x20000000, &chat_options, OPT_CHAT_BR_TAB },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
737 { 0,NULL,0 }
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
738 };
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
739
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
740 static void gaimrc_read_options(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
741 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
742 char buf[2048];
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
743 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
744 struct parse *p;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
745 gboolean read_logging = FALSE, read_general = FALSE, read_display = FALSE;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
746 int general_options = 0, display_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
747 int i;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
748
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
749 buf[0] = 0;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
750
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
751 while (buf[0] != '}') {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
752 if (buf[0] == '#')
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
753 continue;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
754
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
755 if (!fgets(buf, sizeof(buf), f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
756 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
757
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
758 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
759
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
760 if (!strcmp(p->option, "general_options")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
761 general_options = atoi(p->value[0]);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
762 read_general = TRUE;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
763 } else if (!strcmp(p->option, "display_options")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
764 display_options = atoi(p->value[0]);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
765 read_display = TRUE;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
766 } else if (!strcmp(p->option, "misc_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
767 misc_options = atoi(p->value[0]);
1525
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
768 } else if (!strcmp(p->option, "logging_options")) {
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
769 logging_options = atoi(p->value[0]);
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
770 read_logging = TRUE;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
771 } else if (!strcmp(p->option, "blist_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
772 blist_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
773 } else if (!strcmp(p->option, "convo_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
774 convo_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
775 } else if (!strcmp(p->option, "im_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
776 im_options = atoi(p->value[0]);
4469
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
777 } else if (!strcmp(p->option, "conv_placement")) {
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
778 conv_placement_option = atoi(p->value[0]);
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
779 gaim_conv_placement_set_active(conv_placement_option);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
780 } else if (!strcmp(p->option, "chat_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
781 chat_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
782 } else if (!strcmp(p->option, "font_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
783 font_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
784 } else if (!strcmp(p->option, "sound_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
785 sound_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
786 } else if (!strcmp(p->option, "away_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
787 away_options = atoi(p->value[0]);
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
788 away_resend = atoi(p->value[1]);
666
0a313fec9a15 [gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
789 } else if (!strcmp(p->option, "font_face")) {
2763
18a8e555039b [gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2592
diff changeset
790 g_snprintf(fontface, sizeof(fontface), "%s", p->value[0]);
1441
71e46d36113b [gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents: 1420
diff changeset
791 } else if (!strcmp(p->option, "font_size")) {
71e46d36113b [gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents: 1420
diff changeset
792 fontsize = atoi(p->value[0]);
666
0a313fec9a15 [gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
793 } else if (!strcmp(p->option, "foreground")) {
697
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
794 fgcolor.red = atoi(p->value[0]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
795 fgcolor.green = atoi(p->value[1]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
796 fgcolor.blue = atoi(p->value[2]);
666
0a313fec9a15 [gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
797 } else if (!strcmp(p->option, "background")) {
697
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
798 bgcolor.red = atoi(p->value[0]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
799 bgcolor.green = atoi(p->value[1]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
800 bgcolor.blue = atoi(p->value[2]);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
801 } else if (!strcmp(p->option, "report_idle")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
802 report_idle = atoi(p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
803 } else if (!strcmp(p->option, "web_browser")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
804 web_browser = atoi(p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
805 } else if (!strcmp(p->option, "web_command")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
806 strcpy(web_command, p->value[0]);
4288
a93533dc8be2 [gaim-migrate @ 4541]
Sean Egan <seanegan@pidgin.im>
parents: 4227
diff changeset
807 } else if (!strcmp(p->option, "smiley_theme")) {
a93533dc8be2 [gaim-migrate @ 4541]
Sean Egan <seanegan@pidgin.im>
parents: 4227
diff changeset
808 load_smiley_theme(p->value[0], TRUE);
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
809 } else if (!strcmp(p->option, "conv_size")) {
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
810 conv_size.width = atoi(p->value[0]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
811 conv_size.height = atoi(p->value[1]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
812 conv_size.entry_height = atoi(p->value[2]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
813 } else if (!strcmp(p->option, "buddy_chat_size")) {
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
814 buddy_chat_size.width = atoi(p->value[0]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
815 buddy_chat_size.height = atoi(p->value[1]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
816 buddy_chat_size.entry_height = atoi(p->value[2]);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
817 } else if (!strcmp(p->option, "blist_pos")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
818 blist_pos.x = atoi(p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
819 blist_pos.y = atoi(p->value[1]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
820 blist_pos.width = atoi(p->value[2]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
821 blist_pos.height = atoi(p->value[3]);
82
33bc54b6c16a [gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 44
diff changeset
822 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
823
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
824 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
825
2592
cbbdd76cd0e4 [gaim-migrate @ 2605]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2580
diff changeset
826 /* this is where we do bugs and compatibility stuff */
4430
95df701e8cdf [gaim-migrate @ 4705]
Robert McQueen <robot101@debian.org>
parents: 4429
diff changeset
827 if (!(sound_options & (OPT_SOUND_BEEP | OPT_SOUND_ESD | OPT_SOUND_NORMAL | OPT_SOUND_NAS | OPT_SOUND_ARTSC | OPT_SOUND_CMD)))
95df701e8cdf [gaim-migrate @ 4705]
Robert McQueen <robot101@debian.org>
parents: 4429
diff changeset
828 sound_options |= OPT_SOUND_ESD | OPT_SOUND_NORMAL | OPT_SOUND_NAS | OPT_SOUND_ARTSC;
2592
cbbdd76cd0e4 [gaim-migrate @ 2605]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2580
diff changeset
829
2352
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
830 if (conv_size.width == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
831 conv_size.height == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
832 conv_size.entry_height == 0) {
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
833 conv_size.width = 410;
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
834 conv_size.height = 160;
2352
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
835 conv_size.entry_height = 50;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
836 }
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
837
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
838 if (buddy_chat_size.width == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
839 buddy_chat_size.height == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
840 buddy_chat_size.entry_height == 0) {
3671
b954d3ac08c5 [gaim-migrate @ 3801]
Rob Flynn <gaim@robflynn.com>
parents: 3630
diff changeset
841 buddy_chat_size.width = 410;
2352
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
842 buddy_chat_size.height = 160;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
843 buddy_chat_size.entry_height = 50;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
844 }
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
845
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
846 if (read_general) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
847 if (!read_logging) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
848 logging_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
849 if (general_options & OPT_GEN_LOG_ALL)
3457
4f3d88cc5b68 [gaim-migrate @ 3505]
Sean Egan <seanegan@pidgin.im>
parents: 3438
diff changeset
850 logging_options |= OPT_LOG_CONVOS | OPT_LOG_CHATS;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
851 if (general_options & OPT_GEN_STRIP_HTML)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
852 logging_options |= OPT_LOG_STRIP_HTML;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
853 }
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
854 for (i = 0; gen_replace[i].val; i++)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
855 if (general_options & gen_replace[i].old)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
856 *gen_replace[i].val |= gen_replace[i].new;
1525
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
857 }
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
858
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
859 if (read_display)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
860 for (i = 0; disp_replace[i].val; i++)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
861 if (display_options & disp_replace[i].old)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
862 *disp_replace[i].val |= disp_replace[i].new;
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
863
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
864 if (!away_resend)
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
865 away_resend = 120;
3391
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
866
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
867 if (misc_options & OPT_MISC_BUDDY_TICKER) {
3438
2721aaf63e5a [gaim-migrate @ 3478]
peloverde
parents: 3435
diff changeset
868 #ifdef GAIM_PLUGINS
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
869 gchar* buf;
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
870
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
871 buf = g_strconcat(LIBDIR, G_DIR_SEPARATOR_S,
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
872 #ifndef _WIN32
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
873 "ticker.so",
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
874 #else
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
875 "ticker.dll",
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
876 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
877 NULL);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
878 load_plugin(buf);
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
879 g_free(buf);
3438
2721aaf63e5a [gaim-migrate @ 3478]
peloverde
parents: 3435
diff changeset
880 #endif
3391
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
881 misc_options &= ~OPT_MISC_BUDDY_TICKER;
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
882 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
883 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
884
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
885 static void gaimrc_write_options(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
886 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
887
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
888 fprintf(f, "options {\n");
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
889
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
890 fprintf(f, "\tmisc_options { %u }\n", misc_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
891 fprintf(f, "\tlogging_options { %u }\n", logging_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
892 fprintf(f, "\tblist_options { %u }\n", blist_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
893 fprintf(f, "\tconvo_options { %u }\n", convo_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
894 fprintf(f, "\tim_options { %u }\n", im_options);
4469
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
895 fprintf(f, "\tconv_placement { %u }\n", conv_placement_option);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
896 fprintf(f, "\tchat_options { %u }\n", chat_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
897 fprintf(f, "\tfont_options { %u }\n", font_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
898 fprintf(f, "\tsound_options { %u }\n", sound_options);
2908
4e1dc7494fe1 [gaim-migrate @ 2921]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2906
diff changeset
899 fprintf(f, "\taway_options { %u } { %u }\n", away_options, away_resend);
2763
18a8e555039b [gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2592
diff changeset
900 fprintf(f, "\tfont_face { %s }\n", fontface);
1441
71e46d36113b [gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents: 1420
diff changeset
901 fprintf(f, "\tfont_size { %d }\n", fontsize);
697
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
902 fprintf(f, "\tforeground { %d } { %d } { %d }\n", fgcolor.red, fgcolor.green, fgcolor.blue);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
903 fprintf(f, "\tbackground { %d } { %d } { %d }\n", bgcolor.red, bgcolor.green, bgcolor.blue);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
904 fprintf(f, "\treport_idle { %d }\n", report_idle);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
905 fprintf(f, "\tweb_browser { %d }\n", web_browser);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
906 fprintf(f, "\tweb_command { %s }\n", web_command);
4288
a93533dc8be2 [gaim-migrate @ 4541]
Sean Egan <seanegan@pidgin.im>
parents: 4227
diff changeset
907 if (current_smiley_theme)
a93533dc8be2 [gaim-migrate @ 4541]
Sean Egan <seanegan@pidgin.im>
parents: 4227
diff changeset
908 fprintf(f, "\tsmiley_theme { %s }\n", current_smiley_theme->path);
3541
a62a5a4d3eb6 [gaim-migrate @ 3616]
Luke Schierer <lschiere@pidgin.im>
parents: 3493
diff changeset
909 fprintf(f, "\tblist_pos { %d } { %d } { %d } { %d }\n",
a62a5a4d3eb6 [gaim-migrate @ 3616]
Luke Schierer <lschiere@pidgin.im>
parents: 3493
diff changeset
910 blist_pos.x, blist_pos.y, blist_pos.width, blist_pos.height);
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
911 fprintf(f, "\tconv_size { %d } { %d } { %d }\n",
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
912 conv_size.width, conv_size.height, conv_size.entry_height);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
913 fprintf(f, "\tbuddy_chat_size { %d } { %d } { %d }\n",
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
914 buddy_chat_size.width, buddy_chat_size.height, buddy_chat_size.entry_height);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
915
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
916 fprintf(f, "}\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
917 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
918
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
919
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
920 static void gaimrc_read_sounds(FILE *f)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
921 {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
922 int i;
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
923 char buf[2048];
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
924 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
925 struct parse *p;
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
926
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
927 buf[0] = 0;
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
928
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
929 for (i = 0; i < NUM_SOUNDS; i++)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
930 sound_file[i] = NULL;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
931 #ifndef _WIN32
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
932 sound_cmd[0] = 0;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
933 #endif
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
934 while (buf[0] != '}') {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
935 if (buf[0] == '#')
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
936 continue;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
937
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
938 if (!fgets(buf, sizeof(buf), f))
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
939 return;
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
940
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
941 p = parse_line(buf, &parse_buffer);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
942 #ifndef _WIN32
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
943 if (!strcmp(p->option, "sound_cmd")) {
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
944 g_snprintf(sound_cmd, sizeof(sound_cmd), "%s", p->value[0]);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
945 } else
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
946 #endif
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
947 if (!strncmp(p->option, "sound", strlen("sound"))) {
2036
4739b7aa2a84 [gaim-migrate @ 2046]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
948 i = p->option[strlen("sound")] - 'A';
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
949
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
950 if (p->value[0][0])
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
951 sound_file[i] = g_strdup(p->value[0]);
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
952 }
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
953 }
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
954 }
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
955
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
956 static void gaimrc_write_sounds(FILE *f)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
957 {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
958 int i;
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
959 fprintf(f, "sound_files {\n");
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
960 for (i = 0; i < NUM_SOUNDS; i++)
4405
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
961 if (sound_file[i]) {
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
962 #ifndef _WIN32
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
963 fprintf(f, "\tsound%c { %s }\n", i + 'A', sound_file[i]);
4405
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
964 #else
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
965 /* Make sure windows dir speparators arn't swallowed up when
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
966 path is read back in from resource file */
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
967 char* tmp=wgaim_escape_dirsep(sound_file[i]);
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
968 fprintf(f, "\tsound%c { %s }\n", i + 'A', tmp);
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
969 g_free(tmp);
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
970 #endif
1ba4190b83eb [gaim-migrate @ 4674]
Herman Bloggs <herman@bluedigits.com>
parents: 4393
diff changeset
971 }
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
972 else
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
973 fprintf(f, "\tsound%c { }\n", i + 'A');
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
974 #ifndef _WIN32
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
975 fprintf(f, "\tsound_cmd { %s }\n", sound_cmd);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
976 #endif
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
977 fprintf(f, "}\n");
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
978 }
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
979
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
980 static gboolean gaimrc_parse_proxy_uri(const char *proxy)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
981 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
982 char *c, *d;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
983 char buffer[2048];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
984
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
985 char host[128];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
986 char user[128];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
987 char pass[128];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
988 int port = 0;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
989 int len = 0;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
990
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
991 host[0] = '\0';
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
992 user[0] = '\0';
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
993 pass[0] = '\0';
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
994
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
995 debug_printf("gaimrc_parse_proxy_uri(%s)\n", proxy);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
996
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
997 if ((c = strchr(proxy, ':')) == NULL)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
998 {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
999 debug_printf("no uri detected\n");
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1000 /* No URI detected. */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1001 return FALSE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1002 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1003
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1004 len = c - proxy;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1005
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1006 if (!strncmp(proxy, "http://", len + 3))
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1007 proxytype = PROXY_HTTP;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1008 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1009 return FALSE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1010
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1011 debug_printf("found http proxy\n");
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1012 /* Get past "://" */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1013 c += 3;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1014
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1015 debug_printf("looking at %s\n", c);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1016
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1017 for (;;)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1018 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1019 *buffer = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1020 d = buffer;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1021
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1022 while (*c != '\0' && *c != '@' && *c != ':' && *c != '/')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1023 *d++ = *c++;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1024
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1025 *d = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1026
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1027 if (*c == ':')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1028 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1029 /*
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1030 * If there is a '@' in there somewhere, we are in the auth part.
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1031 * If not, host.
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1032 */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1033 if (strchr(c, '@') != NULL)
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1034 strcpy(user, buffer);
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1035 else
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1036 strcpy(host, buffer);
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1037 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1038 else if (*c == '@')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1039 {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1040 if (user[0] == '\0')
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1041 strcpy(user, buffer);
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1042 else
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1043 strcpy(pass, buffer);
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1044 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1045 else if (*c == '/' || *c == '\0')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1046 {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1047 if (host[0] == '\0')
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1048 strcpy(host, buffer);
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1049 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1050 port = atoi(buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1051
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1052 /* Done. */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1053 break;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1054 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1055
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1056 c++;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1057 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1058
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1059 /* NOTE: HTTP_PROXY takes precendence. */
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1060 if (host[0])
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1061 strcpy(proxyhost, host);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1062 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1063 *proxyhost = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1064
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1065 if (user[0])
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1066 strcpy(proxyuser, user);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1067 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1068 *proxyuser = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1069
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1070 if (pass[0])
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1071 strcpy(proxypass, pass);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1072 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1073 *proxypass = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1074
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1075 proxyport = port;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1076
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1077 debug_printf("host '%s'\nuser '%s'\npassword '%s'\nport %d\n",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1078 proxyhost, proxyuser, proxypass, proxyport);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1079
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1080 return TRUE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1081 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1082
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1083 static void gaimrc_read_proxy(FILE *f)
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1084 {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1085 char buf[2048];
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
1086 struct parse parse_buffer;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1087 struct parse *p;
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1088
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1089 buf[0] = 0;
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1090 proxyhost[0] = 0;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1091 debug_printf("gaimrc_read_proxy\n");
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1092
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1093 while (buf[0] != '}') {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1094 if (buf[0] == '#')
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1095 continue;
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1096
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1097 if (!fgets(buf, sizeof(buf), f))
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1098 return;
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1099
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
1100 p = parse_line(buf, &parse_buffer);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1101
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1102 if (!strcmp(p->option, "host")) {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1103 g_snprintf(proxyhost, sizeof(proxyhost), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1104 p->value[0]);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1105 debug_printf("set proxyhost %s\n", proxyhost);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1106 } else if (!strcmp(p->option, "port")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1107 proxyport = atoi(p->value[0]);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1108 } else if (!strcmp(p->option, "type")) {
1921
c7c20d352f5a [gaim-migrate @ 1931]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1886
diff changeset
1109 proxytype = atoi(p->value[0]);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1110 } else if (!strcmp(p->option, "user")) {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1111 g_snprintf(proxyuser, sizeof(proxyuser), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1112 p->value[0]);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1113 } else if (!strcmp(p->option, "pass")) {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1114 g_snprintf(proxypass, sizeof(proxypass), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1115 p->value[0]);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1116 }
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1117 }
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1118 if (proxyhost[0])
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1119 proxy_info_is_from_gaimrc = 1;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1120 else if (!proxyhost[0]) {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1121
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1122 gboolean getVars = TRUE;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1123 proxy_info_is_from_gaimrc = 0;
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1124
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1125 if (g_getenv("HTTP_PROXY"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1126 g_snprintf(proxyhost, sizeof(proxyhost), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1127 g_getenv("HTTP_PROXY"));
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1936
diff changeset
1128 else if (g_getenv("http_proxy"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1129 g_snprintf(proxyhost, sizeof(proxyhost), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1130 g_getenv("http_proxy"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1131 else if (g_getenv("HTTPPROXY"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1132 g_snprintf(proxyhost, sizeof(proxyhost), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1133 g_getenv("HTTPPROXY"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1134
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1135 if (*proxyhost != '\0')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1136 getVars = !gaimrc_parse_proxy_uri(proxyhost);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1137
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1138 if (getVars)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1139 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1140 if (g_getenv("HTTP_PROXY_PORT"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1141 proxyport = atoi(g_getenv("HTTP_PROXY_PORT"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1142 else if (g_getenv("http_proxy_port"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1143 proxyport = atoi(g_getenv("http_proxy_port"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1144 else if (g_getenv("HTTPPROXYPORT"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1145 proxyport = atoi(g_getenv("HTTPPROXYPORT"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1146
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1147 if (g_getenv("HTTP_PROXY_USER"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1148 g_snprintf(proxyuser, sizeof(proxyuser), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1149 g_getenv("HTTP_PROXY_USER"));
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1150 else if (g_getenv("http_proxy_user"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1151 g_snprintf(proxyuser, sizeof(proxyuser), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1152 g_getenv("http_proxy_user"));
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1153 else if (g_getenv("HTTPPROXYUSER"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1154 g_snprintf(proxyuser, sizeof(proxyuser), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1155 g_getenv("HTTPPROXYUSER"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1156
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1157 if (g_getenv("HTTP_PROXY_PASS"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1158 g_snprintf(proxypass, sizeof(proxypass), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1159 g_getenv("HTTP_PROXY_PASS"));
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1160 else if (g_getenv("http_proxy_pass"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1161 g_snprintf(proxypass, sizeof(proxypass), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1162 g_getenv("http_proxy_pass"));
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1163 else if (g_getenv("HTTPPROXYPASS"))
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1164 g_snprintf(proxypass, sizeof(proxypass), "%s",
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1165 g_getenv("HTTPPROXYPASS"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1166
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1167
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1168 if (proxyhost[0])
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1169 proxytype = PROXY_HTTP;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1170 }
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1171 }
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1172 }
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1173
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1174 static void gaimrc_write_proxy(FILE *f)
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1175 {
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
1176 char *str;
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
1177
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1178 fprintf(f, "proxy {\n");
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1179 if (proxy_info_is_from_gaimrc) {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1180 fprintf(f, "\thost { %s }\n", proxyhost);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1181 fprintf(f, "\tport { %d }\n", proxyport);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1182 fprintf(f, "\ttype { %d }\n", proxytype);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1183 fprintf(f, "\tuser { %s }\n", proxyuser);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1184 fprintf(f, "\tpass { %s }\n", (str = escape_text2(proxypass)));
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1185 free(str);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1186 } else {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1187 fprintf(f, "\thost { %s }\n", "");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1188 fprintf(f, "\tport { %d }\n", 0);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1189 fprintf(f, "\ttype { %d }\n", 0);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1190 fprintf(f, "\tuser { %s }\n", "");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1191 fprintf(f, "\tpass { %s }\n", "");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1192 }
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1193 fprintf(f, "}\n");
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1194 }
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1195
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1196 static void set_defaults()
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1197 {
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1198 int i;
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1199 struct away_message *a;
917
47d0d6940f35 [gaim-migrate @ 927]
Rob Flynn <gaim@robflynn.com>
parents: 915
diff changeset
1200
4227
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
1201 misc_options =
5f98b16ed21c [gaim-migrate @ 4471]
Nathan Walp <nwalp@pidgin.im>
parents: 4201
diff changeset
1202 OPT_MISC_USE_SERVER_ALIAS;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1203
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1204 logging_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1205
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1206 blist_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1207 OPT_BLIST_APP_BUDDY_SHOW |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1208 OPT_BLIST_SAVED_WINDOWS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1209 OPT_BLIST_NEAR_APPLET |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1210 OPT_BLIST_SHOW_GRPNUM |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1211 OPT_BLIST_SHOW_PIXMAPS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1212 OPT_BLIST_SHOW_IDLETIME |
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1213 OPT_BLIST_GREY_IDLERS |
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1214 OPT_BLIST_SHOW_BUTTON_XPM;
870
750d8c8f6aba [gaim-migrate @ 880]
Rob Flynn <gaim@robflynn.com>
parents: 774
diff changeset
1215
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1216 convo_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1217 OPT_CONVO_ENTER_SENDS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1218 OPT_CONVO_SEND_LINKS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1219 OPT_CONVO_CTL_CHARS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1220 OPT_CONVO_CTL_SMILEYS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1221 OPT_CONVO_SHOW_TIME |
3919
c3d47b09cb16 [gaim-migrate @ 4082]
Sean Egan <seanegan@pidgin.im>
parents: 3903
diff changeset
1222 OPT_CONVO_SHOW_SMILEY |
c3d47b09cb16 [gaim-migrate @ 4082]
Sean Egan <seanegan@pidgin.im>
parents: 3903
diff changeset
1223 OPT_CONVO_CHECK_SPELLING;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1224
4469
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
1225 conv_placement_option = 0;
ef60c820b884 [gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents: 4430
diff changeset
1226
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1227 im_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1228 OPT_IM_LOGON |
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1229 OPT_IM_BUTTON_XPM |
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1230 OPT_IM_ONE_WINDOW ;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1231
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1232 chat_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1233 OPT_CHAT_LOGON |
2388
daf70f99d89f [gaim-migrate @ 2401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2383
diff changeset
1234 OPT_CHAT_BUTTON_XPM |
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1235 OPT_CHAT_TAB_COMPLETE |
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1236 OPT_CHAT_ONE_WINDOW;
870
750d8c8f6aba [gaim-migrate @ 880]
Rob Flynn <gaim@robflynn.com>
parents: 774
diff changeset
1237
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1238 font_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1239
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1240 away_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1241 OPT_AWAY_BACK_ON_IM;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1242
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
1243 for (i = 0; i < NUM_SOUNDS; i++)
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1244 sound_file[i] = NULL;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1245 font_options = 0;
2580
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1246 /* Enable all of the sound players that might be available. The first
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1247 available one will be used. */
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1248 sound_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1249 OPT_SOUND_LOGIN |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1250 OPT_SOUND_LOGOUT |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1251 OPT_SOUND_RECV |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1252 OPT_SOUND_SEND |
2580
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1253 OPT_SOUND_SILENT_SIGNON |
4430
95df701e8cdf [gaim-migrate @ 4705]
Robert McQueen <robot101@debian.org>
parents: 4429
diff changeset
1254 OPT_SOUND_NORMAL |
95df701e8cdf [gaim-migrate @ 4705]
Robert McQueen <robot101@debian.org>
parents: 4429
diff changeset
1255 OPT_SOUND_NAS |
95df701e8cdf [gaim-migrate @ 4705]
Robert McQueen <robot101@debian.org>
parents: 4429
diff changeset
1256 OPT_SOUND_ARTSC |
95df701e8cdf [gaim-migrate @ 4705]
Robert McQueen <robot101@debian.org>
parents: 4429
diff changeset
1257 OPT_SOUND_ESD;
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1258
2990
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1259 #ifdef USE_SCREENSAVER
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1260 report_idle = IDLE_SCREENSAVER;
2990
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1261 #else
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1262 report_idle = IDLE_GAIM;
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1263 #endif
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1264 web_browser = BROWSER_NETSCAPE;
3434
4ddd459d86f3 [gaim-migrate @ 3463]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
1265 g_snprintf(web_command, sizeof(web_command), "xterm -e lynx %%s");
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1266
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1267 auto_away = 10;
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1268 a = g_new0(struct away_message, 1);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1269 g_snprintf(a->name, sizeof(a->name), "boring default");
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1270 g_snprintf(a->message, sizeof(a->message), "%s", BORING_DEFAULT_AWAY_MSG);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1271 away_messages = g_slist_append(away_messages, a);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1272 default_away = a;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1273
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1274 blist_pos.width = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1275 blist_pos.height = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1276 blist_pos.x = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1277 blist_pos.y = 0;
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
1278
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1279 conv_size.width = 320;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1280 conv_size.height = 175;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1281 conv_size.entry_height = 50;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1282
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1283 buddy_chat_size.width = 320;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1284 buddy_chat_size.height = 160;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1285 buddy_chat_size.entry_height = 50;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1286 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1287
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1288 void load_prefs()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1289 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1290 FILE *f;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1291 char buf[1024];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1292 int ver = 0;
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1293 debug_printf("load_prefs\n");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1294 if (is_saving_prefs) {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1295 request_load_prefs = 1;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1296 debug_printf("currently saving, will request load\n");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1297 return;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1298 }
570
3450eeb314a1 [gaim-migrate @ 580]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 453
diff changeset
1299
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1300 if (opt_rcfile_arg)
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1301 g_snprintf(buf, sizeof(buf), "%s", opt_rcfile_arg);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1302 else if (gaim_home_dir())
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1303 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S ".gaimrc", gaim_home_dir());
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1304 else {
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1305 set_defaults();
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1306 return;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1307 }
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1308
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1309 if ((f = fopen(buf, "r"))) {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1310 is_loading_prefs = 1;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1311 debug_printf("start load_prefs\n");
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1312 fgets(buf, sizeof(buf), f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1313 sscanf(buf, "# .gaimrc v%d", &ver);
2389
fa35272e9c1a [gaim-migrate @ 2402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2388
diff changeset
1314 if ((ver <= 3) || (buf[0] != '#'))
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1315 set_defaults();
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1316
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1317 while (!feof(f)) {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1318 int tag = gaimrc_parse_tag(f);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1319 debug_printf("starting read tag %d\n", tag);
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1320 switch (tag) {
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1321 case -1:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1322 /* Let the loop end, EOF */
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1323 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1324 case 0:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1325 gaimrc_read_users(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1326 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1327 case 1:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1328 gaimrc_read_options(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1329 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1330 case 2:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1331 gaimrc_read_away(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1332 break;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1333 #ifdef GAIM_PLUGINS
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1334 case 3:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1335 gaimrc_read_plugins(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1336 break;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1337 #endif
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1338 case 4:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1339 gaimrc_read_pounce(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1340 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1341 case 6:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1342 gaimrc_read_sounds(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1343 break;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1344 case 7:
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1345 gaimrc_read_proxy(f);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1346 break;
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1347 default:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1348 /* NOOP */
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1349 break;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1350 }
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1351 debug_printf("ending read tag %d\n", tag);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1352 }
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1353 fclose(f);
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1354 is_loading_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1355 debug_printf("end load_prefs\n");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1356 if (request_save_prefs) {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1357 debug_printf("saving prefs on request\n");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1358 save_prefs();
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1359 request_save_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1360 }
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1361 } else if (opt_rcfile_arg) {
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1362 g_snprintf(buf, sizeof(buf), _("Could not open config file %s."), opt_rcfile_arg);
3427
75387df65a9b [gaim-migrate @ 3453]
Sean Egan <seanegan@pidgin.im>
parents: 3393
diff changeset
1363 do_error_dialog(buf, NULL, GAIM_ERROR);
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1364 set_defaults();
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1365 } else {
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1366 set_defaults();
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1367 save_prefs();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1368 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1369 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1370
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1371 void save_prefs()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1372 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1373 FILE *f;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1374 char buf[BUF_LONG];
4393
910390e881e3 [gaim-migrate @ 4659]
Herman Bloggs <herman@bluedigits.com>
parents: 4381
diff changeset
1375
4381
30b888717b77 [gaim-migrate @ 4647]
Herman Bloggs <herman@bluedigits.com>
parents: 4349
diff changeset
1376 debug_printf("enter save_prefs\n");
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1377 if (is_loading_prefs) {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1378 request_save_prefs = 1;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1379 debug_printf("currently loading, will request save\n");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1380 return;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1381 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1382
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1383 if (opt_rcfile_arg) {
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1384 g_snprintf(buf, sizeof(buf), "%s", opt_rcfile_arg);
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1385 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1386 else if (gaim_home_dir()) {
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1387 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S ".gaimrc", gaim_home_dir());
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1388 }
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1389 else {
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1390 return;
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1391 }
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1392 if ((f = fopen(buf, "w"))) {
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1393 is_saving_prefs = 1;
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1394 fprintf(f, "# .gaimrc v%d\n", 4);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1395 gaimrc_write_users(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1396 gaimrc_write_options(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1397 gaimrc_write_sounds(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1398 gaimrc_write_away(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1399 gaimrc_write_pounce(f);
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1400 #ifdef GAIM_PLUGINS
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1401 gaimrc_write_plugins(f);
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1402 #endif
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1403 gaimrc_write_proxy(f);
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1404 fclose(f);
3717
2fc0789e04e8 [gaim-migrate @ 3850]
Herman Bloggs <herman@bluedigits.com>
parents: 3671
diff changeset
1405
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1406 chmod(buf, S_IRUSR | S_IWUSR);
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1407 is_saving_prefs = 0;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1408 }
3630
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1409 else
caa952062dc2 [gaim-migrate @ 3753]
Rob Flynn <gaim@robflynn.com>
parents: 3563
diff changeset
1410 debug_printf("Error opening .gaimrc\n");
4137
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1411 if (request_load_prefs) {
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1412 debug_printf("loading prefs on request\n");
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1413 load_prefs();
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1414 request_load_prefs = 0;
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1415 }
ada0d6d4f200 [gaim-migrate @ 4355]
Robert Krawitz
parents: 4122
diff changeset
1416 debug_printf("exit save_prefs\n");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1417 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1418
1209
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1419
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1420
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1421 /* This function is called by g_slist_insert_sorted to compare the item
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1422 * being compared to the rest of the items on the list.
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1423 */
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1424
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1425 gint sort_awaymsg_list(gconstpointer a, gconstpointer b)
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1426 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1427 struct away_message *msg_a;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1428 struct away_message *msg_b;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1429
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1430 msg_a = (struct away_message *)a;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1431 msg_b = (struct away_message *)b;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1432
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1433 return (strcmp(msg_a->name, msg_b->name));
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1434
1209
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1435 }

mercurial