src/gaimrc.c

Mon, 30 Sep 2002 01:05:18 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Mon, 30 Sep 2002 01:05:18 +0000
changeset 3572
d07e14aa6f26
parent 3563
ea2789c8077c
child 3630
caa952062dc2
permissions
-rw-r--r--

[gaim-migrate @ 3670]
Phase II. No longer do you have to worry about protocol plugins. When
Gaim probes plugins on load, it will detect protocol plugins and add them
to the list of available protocols. When you try to log an account on with
one of them, Gaim will automatically load the plugin--when no more accounts
need the protocol--Gaim will automatically unload it. Protocol plugins are
no longer available in the plugins ui, and no protocols are compiled statically
by default.

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>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
26 #include <sys/time.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
27
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
28 #include <sys/types.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
29 #include <sys/stat.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
30
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
31 #include <unistd.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
32 #include <stdio.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
33 #include <stdlib.h>
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
34 #include "gaim.h"
1264
80816a51169a [gaim-migrate @ 1274]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1254
diff changeset
35 #include "prpl.h"
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
36 #include "proxy.h"
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
37
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
38 /* 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
39 #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
40 #define MAX_VALUES 10
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
41
2397
432ccc0c7f18 [gaim-migrate @ 2410]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2389
diff changeset
42 GSList *aim_users = NULL;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
43 guint misc_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
44 guint logging_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
45 guint blist_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
46 guint convo_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
47 guint im_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
48 guint chat_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
49 guint font_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
50 guint sound_options;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
51 guint away_options;
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
52 guint away_resend;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
53
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
54 int report_idle, web_browser;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
55 struct save_pos blist_pos;
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
56 struct window_size conv_size, buddy_chat_size;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
57 char web_command[2048];
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
58 char *sound_file[NUM_SOUNDS];
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
59 char sound_cmd[2048];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
60
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
61 struct parse {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
62 char option[256];
2286
bc6384ba314a [gaim-migrate @ 2296]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2199
diff changeset
63 char value[MAX_VALUES][4096];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
64 };
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
65
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
66 static struct parse *parse_line(char *line, struct parse *p)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
67 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
68 char *c = line;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
69 int inopt = 1, inval = 0, curval = -1;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
70 int optlen = 0, vallen = 0;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
71 int x;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
72
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
73 for (x = 0; x < MAX_VALUES; x++) {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
74 p->value[x][0] = 0;
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
75 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
76
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
77
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
78 while (*c) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
79 if (*c == '\t') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
80 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
81 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
82 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
83 if (inopt) {
1976
9fd3356e3a24 [gaim-migrate @ 1986]
Rob Flynn <gaim@robflynn.com>
parents: 1938
diff changeset
84 /* if ((*c < 'a' || *c > 'z') && *c != '_') { */
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
85 if ((*c < 'a' || *c > 'z') && *c != '_' && (*c < 'A' || *c > 'Z')) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
86 inopt = 0;
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
87 p->option[optlen] = 0;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
88 c++;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
89 continue;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
90 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
91
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
92 p->option[optlen] = *c;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
93 optlen++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
94 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
95 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
96 } else if (inval) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
97 if ((*c == '}')) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
98 if (*(c - 1) == '\\') {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
99 p->value[curval][vallen - 1] = *c;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
100 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
101 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
102 } else {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
103 p->value[curval][vallen - 1] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
104 inval = 0;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
105 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
106 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
107 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
108 } else {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
109 p->value[curval][vallen] = *c;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
110 vallen++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
111 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
112 continue;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
113 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
114 } else if (*c == '{') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
115 if (*(c - 1) == '\\') {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
116 p->value[curval][vallen - 1] = *c;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
117 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
118 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
119 } else {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
120 curval++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
121 vallen = 0;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
122 inval = 1;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
123 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
124 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
125 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
126 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
127 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
128 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
129 }
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
130
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
131 return p;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
132 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
133
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
134
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
135 static int gaimrc_parse_tag(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
136 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
137 char buf[2048];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
138 char tag[256];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
139 buf[0] = '#';
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
140
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
141 while (buf[0] == '#' && !feof(f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
142 fgets(buf, sizeof(buf), f);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
143
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
144 if (feof(f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
145 return -1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
146
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
147 sscanf(buf, "%s {", tag);
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
148
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
149 if (!strcmp(tag, "users")) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
150 return 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
151 } else if (!strcmp(tag, "options")) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
152 return 1;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
153 } else if (!strcmp(tag, "away")) {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
154 return 2;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
155 } else if (!strcmp(tag, "plugins")) {
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
156 return 3;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
157 } else if (!strcmp(tag, "pounce")) {
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
158 return 4;
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
159 } else if (!strcmp(tag, "sound_files")) {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
160 return 6;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
161 } else if (!strcmp(tag, "proxy")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
162 return 7;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
163 }
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 return -1;
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
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
168 static void filter_break(char *msg)
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
169 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
170 char *c;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
171 int mc;
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
172 int cc;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
173
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
174 c = g_malloc(strlen(msg) + 1);
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
175 strcpy(c, msg);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
176
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
177 mc = 0;
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
178 cc = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
179 while (c[cc] != '\0') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
180 if (c[cc] == '\\') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
181 cc++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
182 msg[mc] = c[cc];
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
183 } else {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
184 msg[mc] = c[cc];
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
185 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
186 mc++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
187 cc++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
188 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
189 msg[mc] = 0;
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
190 g_free(c);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
191 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
192
2379
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
193 static char *escape_text2(const char *msg)
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
194 {
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
195 char *c, *cpy;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
196 char *woo;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
197 int cnt = 0;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
198 /* 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
199
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
200 woo = malloc(strlen(msg) * 4 + 1);
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
201 cpy = g_strndup(msg, 2048);
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
202 c = cpy;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
203 while (*c) {
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
204 switch (*c) {
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
205 case '\n':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
206 woo[cnt++] = '<';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
207 woo[cnt++] = 'B';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
208 woo[cnt++] = 'R';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
209 woo[cnt++] = '>';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
210 break;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
211 case '{':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
212 case '}':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
213 case '\\':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
214 case '"':
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
215 woo[cnt++] = '\\';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
216 /* Fall through */
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
217 default:
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
218 woo[cnt++] = *c;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
219 }
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
220 c++;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
221 }
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
222 woo[cnt] = '\0';
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
223
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
224 g_free(cpy);
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
225 return woo;
cffc8ebf1bd4 [gaim-migrate @ 2392]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2372
diff changeset
226 }
44
50e0f206088f [gaim-migrate @ 53]
Rob Flynn <gaim@robflynn.com>
parents: 26
diff changeset
227
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
228 static void gaimrc_read_away(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
229 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
230 struct parse parse_buffer;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
231 struct parse *p;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
232 char buf[4096];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
233 struct away_message *a;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
234
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
235 buf[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
236
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
237 while (buf[0] != '}') {
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
238 if (!fgets(buf, sizeof(buf), f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
239 return;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
240
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
241 if (buf[0] == '}')
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
242 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
243
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
244 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
245 if (!strcmp(p->option, "message")) {
15
235e56b2f5ed [gaim-migrate @ 24]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
246 a = g_new0(struct away_message, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
247
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
248 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
249 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
250 filter_break(a->name);
15
235e56b2f5ed [gaim-migrate @ 24]
Rob Flynn <gaim@robflynn.com>
parents: 1
diff changeset
251 filter_break(a->message);
1209
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
252 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
253 }
1109
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
254 /* auto { time } { default message } */
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
255 else if (!strcmp(p->option, "auto")) {
1109
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
256 auto_away = atoi(p->value[0]);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
257 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
258 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
259 }
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
260 if (!away_messages) {
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
261 a = g_new0(struct away_message, 1);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
262 g_snprintf(a->name, sizeof(a->name), "boring default");
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
263 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
264 away_messages = g_slist_append(away_messages, a);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
265 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
266 }
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 static void gaimrc_write_away(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
269 {
940
b3985f53a6c0 [gaim-migrate @ 950]
kylev
parents: 917
diff changeset
270 GSList *awy = away_messages;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
271 struct away_message *a;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
272
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
273 fprintf(f, "away {\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
274
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
275 if (awy) {
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
276 while (awy) {
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
277 char *str1, *str2;
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 15
diff changeset
278
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
279 a = (struct away_message *)awy->data;
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 15
diff changeset
280
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
281 str1 = escape_text2(a->name);
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
282 str2 = escape_text2(a->message);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
283
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
284 fprintf(f, "\tmessage { %s } { %s }\n", str1, str2);
26
755450f228e1 [gaim-migrate @ 35]
Peter Teichman
parents: 15
diff changeset
285
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
286 /* 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
287 free(str1);
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
288 free(str2);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
289
940
b3985f53a6c0 [gaim-migrate @ 950]
kylev
parents: 917
diff changeset
290 awy = g_slist_next(awy);
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
291 }
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
292 fprintf(f, "\tauto { %d } { %d }\n", auto_away,
1254
acb7539010c0 [gaim-migrate @ 1264]
Ben Miller <millebe@cs.earlham.edu>
parents: 1250
diff changeset
293 g_slist_index(away_messages, default_away));
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
294 } else {
230
5afbb3468f11 [gaim-migrate @ 240]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 180
diff changeset
295 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
296 fprintf(f, "\tauto { 0 } { 0 }\n");
c15973749312 [gaim-migrate @ 1119]
Ben Miller <millebe@cs.earlham.edu>
parents: 1088
diff changeset
297 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
298
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
299 fprintf(f, "}\n");
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
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
302 static void gaimrc_read_pounce(FILE *f)
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
303 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
304 struct parse parse_buffer;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
305 struct parse *p;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
306 char buf[4096];
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
307 struct buddy_pounce *b;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
308
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
309 buf[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
310
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
311 while (buf[0] != '}') {
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
312 if (!fgets(buf, sizeof(buf), f))
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
313 return;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
314
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
315 if (buf[0] == '}')
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
316 return;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
317
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
318 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
319 if (!strcmp(p->option, "entry")) {
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
320 b = g_new0(struct buddy_pounce, 1);
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
321
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
322 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
323 filter_break(b->name);
1155
f3b1abf0dcc3 [gaim-migrate @ 1165]
Rob Flynn <gaim@robflynn.com>
parents: 1139
diff changeset
324 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
325 filter_break(b->message);
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
326 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
327 filter_break(b->command);
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
328
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
329 b->options = atoi(p->value[3]);
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
330
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
331 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
332 filter_break(b->pouncer);
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
333 b->protocol = atoi(p->value[5]);
1137
3d04e516f664 [gaim-migrate @ 1147]
Rob Flynn <gaim@robflynn.com>
parents: 1109
diff changeset
334
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
335 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
336 filter_break(b->sound);
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
337
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
338 buddy_pounces = g_list_append(buddy_pounces, b);
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
339 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
340 }
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
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
343 static void gaimrc_write_pounce(FILE *f)
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
344 {
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
345 GList *pnc = buddy_pounces;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
346 struct buddy_pounce *b;
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
347
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
348 fprintf(f, "pounce {\n");
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
349
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
350 while (pnc) {
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
351 char *str1, *str2, *str3, *str4;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
352
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
353 b = (struct buddy_pounce *)pnc->data;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
354
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
355 str1 = escape_text2(b->name);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
356 if (strlen(b->message))
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
357 str2 = escape_text2(b->message);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
358 else {
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
359 str2 = malloc(1);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
360 str2[0] = 0;
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
361 }
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
362 if (strlen(b->command))
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
363 str3 = escape_text2(b->command);
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
364 else {
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
365 str3 = malloc(1);
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
366 str3[0] = 0;
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
367 }
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
368 if (strlen(b->sound))
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
369 str4 = escape_text2(b->sound);
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
370 else {
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
371 str4 = malloc(1);
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
372 str4[0] = 0;
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
373 }
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
374
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
375 fprintf(f, "\tentry { %s } { %s } { %s } { %d } { %s } { %d } { %s }\n",
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
376 str1, str2, str3, b->options, b->pouncer, b->protocol, str4);
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
377
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
378 /* 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
379 free(str1);
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
380 free(str2);
1235
c8d6eef4edce [gaim-migrate @ 1245]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1229
diff changeset
381 free(str3);
1694
e5d98f92deca [gaim-migrate @ 1704]
Rob Flynn <gaim@robflynn.com>
parents: 1560
diff changeset
382 free(str4);
1229
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
383
4d9315989885 [gaim-migrate @ 1239]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1214
diff changeset
384 pnc = pnc->next;
673
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
385 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
386
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
387 fprintf(f, "}\n");
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
388 }
9a745db5af16 [gaim-migrate @ 683]
Rob Flynn <gaim@robflynn.com>
parents: 666
diff changeset
389
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
390 #ifdef GAIM_PLUGINS
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
391 static void gaimrc_write_plugins(FILE *f)
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
392 {
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
393 GList *pl = plugins;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
394 struct gaim_plugin *p;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
395
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
396 fprintf(f, "plugins {\n");
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
397
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
398 while (pl) {
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
399 char *path;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
400
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
401 p = (struct gaim_plugin *)pl->data;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
402
3563
ea2789c8077c [gaim-migrate @ 3658]
Sean Egan <seanegan@pidgin.im>
parents: 3541
diff changeset
403 path = escape_text2(p->path);
ea2789c8077c [gaim-migrate @ 3658]
Sean Egan <seanegan@pidgin.im>
parents: 3541
diff changeset
404
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
405 fprintf(f, "\tplugin { %s }\n", path);
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
406
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
407 free(path);
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
408
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
409 pl = pl->next;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
410 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
411
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
412 fprintf(f, "}\n");
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
413 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
414
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
415 static void gaimrc_read_plugins(FILE *f)
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
416 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
417 struct parse parse_buffer;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
418 struct parse *p;
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
419 char buf[4096];
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
420 GSList *load = NULL;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
421
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
422 buf[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
423
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
424 while (buf[0] != '}') {
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
425 if (!fgets(buf, sizeof(buf), f))
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
426 break;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
427
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
428 if (buf[0] == '}')
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
429 break;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
430
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
431 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
432 if (!strcmp(p->option, "plugin")) {
2095
6bd5ca5e4745 [gaim-migrate @ 2105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2091
diff changeset
433 filter_break(p->value[0]);
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
434 load = g_slist_append(load, g_strdup(p->value[0]));
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
435 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
436 }
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
437 /* 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
438 * 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
439 * which ones to load before loading them. */
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
440 while (load) {
1710
4793276c2510 [gaim-migrate @ 1720]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1694
diff changeset
441 if (load->data)
2095
6bd5ca5e4745 [gaim-migrate @ 2105]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2091
diff changeset
442 load_plugin(load->data);
1236
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
443 g_free(load->data);
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
444 load = g_slist_remove(load, load->data);
59d129db22b4 [gaim-migrate @ 1246]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1235
diff changeset
445 }
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
446 }
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
447 #endif /* GAIM_PLUGINS */
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
448
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
449 static struct aim_user *gaimrc_read_user(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
450 {
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
451 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
452 struct parse *p;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
453 struct aim_user *u;
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
454 int i;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
455 char buf[4096];
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
456
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
457 if (!fgets(buf, sizeof(buf), f))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
458 return NULL;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
459
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
460 p = parse_line(buf, &parse_buffer);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
461
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
462 if (strcmp(p->option, "ident"))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
463 return NULL;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
464
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
465 u = g_new0(struct aim_user, 1);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
466
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
467 strcpy(u->username, p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
468 strcpy(u->password, p->value[1]);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
469
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
470 u->user_info[0] = 0;
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
471 u->options = OPT_USR_REM_PASS;
1878
ffbde9f31c65 [gaim-migrate @ 1888]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1843
diff changeset
472 u->protocol = DEFAULT_PROTO;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
473
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
474 if (!fgets(buf, sizeof(buf), f))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
475 return u;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
476
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
477 if (strcmp(buf, "\t\tuser_info {\n")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
478 return u;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
479 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
480
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
481 if (!fgets(buf, sizeof(buf), f))
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
482 return u;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
483
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
484 while (strncmp(buf, "\t\t}", 3)) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
485 if (strlen(buf) > 3)
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
486 strcat(u->user_info, &buf[3]);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
487
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
488 if (!fgets(buf, sizeof(buf), f)) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
489 return u;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
490 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
491 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
492
1456
c03c929f8139 [gaim-migrate @ 1466]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1441
diff changeset
493 if ((i = strlen(u->user_info))) {
2372
c24942700dfd [gaim-migrate @ 2385]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2369
diff changeset
494 u->user_info[i - 1] = '\0';
1292
82820e0a3748 [gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents: 1264
diff changeset
495 }
82820e0a3748 [gaim-migrate @ 1302]
Decklin Foster <decklin@red-bean.com>
parents: 1264
diff changeset
496
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
497 if (!fgets(buf, sizeof(buf), f)) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
498 return u;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
499 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
500
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
501 if (!strcmp(buf, "\t}")) {
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
502 return u;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
503 }
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
504
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
505 p = parse_line(buf, &parse_buffer);
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
506
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
507 if (strcmp(p->option, "user_opts"))
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
508 return u;
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
509
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
510 u->options = atoi(p->value[0]);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
511 u->protocol = atoi(p->value[1]);
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
512
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
513 if (!fgets(buf, sizeof(buf), f))
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
514 return u;
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
515
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
516 if (!strcmp(buf, "\t}"))
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
517 return u;
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
518
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
519 p = parse_line(buf, &parse_buffer);
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
520
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
521 if (strcmp(p->option, "proto_opts"))
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
522 return u;
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
523
1843
aeeac3ee7ac5 [gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1813
diff changeset
524 for (i = 0; i < 7; i++)
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
525 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
526
2317
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
527 if (!fgets(buf, sizeof(buf), f))
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
528 return u;
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
529
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
530 if (!strcmp(buf, "\t}"))
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
531 return u;
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
532
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
533 p = parse_line(buf, &parse_buffer);
2317
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
534
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
535 if (strcmp(p->option, "iconfile"))
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
536 return u;
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
537
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
538 g_snprintf(u->iconfile, sizeof(u->iconfile), "%s", p->value[0]);
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
539
3205
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
540 if (!fgets(buf, sizeof(buf), f))
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
541 return u;
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
542
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
543 if (!strcmp(buf, "\t}"))
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
544 return u;
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
545
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
546 p = parse_line(buf, &parse_buffer);
3205
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
547
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
548 if (strcmp(p->option, "alias"))
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
549 return u;
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
550
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
551 g_snprintf(u->alias, sizeof(u->alias), "%s", p->value[0]);
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
552
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
553 return u;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
554
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
555 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
556
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
557 static void gaimrc_write_user(FILE *f, struct aim_user *u)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
558 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
559 char *c;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
560 int nl = 1, i;
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
561
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
562 if (u->options & OPT_USR_REM_PASS) {
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
563 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
564 free(c);
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
565 } else {
131
50460674821d [gaim-migrate @ 141]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 84
diff changeset
566 fprintf(f, "\t\tident { %s } { }\n", u->username);
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
567 }
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
568 fprintf(f, "\t\tuser_info {");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
569 c = u->user_info;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
570 while (*c) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
571 /* This is not as silly as it looks. */
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
572 if (*c == '\n') {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
573 nl++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
574 } else {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
575 if (nl) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
576 while (nl) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
577 fprintf(f, "\n\t\t\t");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
578 nl--;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
579 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
580 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
581 fprintf(f, "%c", *c);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
582 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
583 c++;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
584 }
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
585 fprintf(f, "\n\t\t}\n");
960
c4012584334f [gaim-migrate @ 970]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 940
diff changeset
586 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
587 fprintf(f, "\t\tproto_opts");
1843
aeeac3ee7ac5 [gaim-migrate @ 1853]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1813
diff changeset
588 for (i = 0; i < 7; i++)
1051
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
589 fprintf(f, " { %s }", u->proto_opt[i]);
d65ac9e2224f [gaim-migrate @ 1061]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1047
diff changeset
590 fprintf(f, "\n");
2317
2f61c2641be6 [gaim-migrate @ 2327]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2313
diff changeset
591 fprintf(f, "\t\ticonfile { %s }\n", u->iconfile);
3205
d7df8ab0a306 [gaim-migrate @ 3222]
Sean Egan <seanegan@pidgin.im>
parents: 3099
diff changeset
592 fprintf(f, "\t\talias { %s }\n", u->alias);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
593 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
594
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
595 static void gaimrc_read_users(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
596 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
597 char buf[2048];
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
598 struct aim_user *u;
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
599 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
600 struct parse *p;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
601
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
602 buf[0] = 0;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
603
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
604 while (buf[0] != '}') {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
605 if (buf[0] == '#')
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
606 continue;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
607
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
608 if (!fgets(buf, sizeof(buf), f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
609 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
610
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
611
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
612
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
613 p = parse_line(buf, &parse_buffer);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
614
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
615 if (!strcmp(p->option, "current_user")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
616 } else if (strcmp(p->option, "user")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
617 continue;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
618 } else {
159
bd2436428efa [gaim-migrate @ 169]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 158
diff changeset
619 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
620
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
621 u = gaimrc_read_user(f);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
622
2397
432ccc0c7f18 [gaim-migrate @ 2410]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2389
diff changeset
623 aim_users = g_slist_append(aim_users, u);
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
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
627 static void gaimrc_write_users(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
628 {
2397
432ccc0c7f18 [gaim-migrate @ 2410]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2389
diff changeset
629 GSList *usr = aim_users;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
630 struct aim_user *u;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
631
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
632 fprintf(f, "users {\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
633
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
634 while (usr) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
635 u = (struct aim_user *)usr->data;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
636 fprintf(f, "\tuser {\n");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
637 gaimrc_write_user(f, u);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
638
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
639 fprintf(f, "\t}\n");
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
640
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
641 usr = usr->next;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
642 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
643
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
644 fprintf(f, "}\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
645 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
646
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
647 struct replace {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
648 int old;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
649 guint *val;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
650 int new;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
651 };
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
652
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
653 static struct replace gen_replace[] = {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
654 { /* OPT_GEN_ENTER_SENDS */ 0x00000001, &convo_options, OPT_CONVO_ENTER_SENDS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
655 { /* 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
656 { /* OPT_GEN_POPUP_WINDOWS */ 0x00000020, &im_options, OPT_IM_POPUP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
657 { /* OPT_GEN_SEND_LINKS */ 0x00000040, &convo_options, OPT_CONVO_SEND_LINKS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
658 { /* OPT_GEN_DEBUG */ 0x00000100, &misc_options, OPT_MISC_DEBUG },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
659 { /* OPT_GEN_BROWSER_POPUP */ 0x00000800, &misc_options, OPT_MISC_BROWSER_POPUP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
660 { /* OPT_GEN_SAVED_WINDOWS */ 0x00001000, &blist_options, OPT_BLIST_SAVED_WINDOWS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
661 { /* OPT_GEN_DISCARD_WHEN_AWAY */ 0x00002000, &away_options, OPT_AWAY_DISCARD },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
662 { /* OPT_GEN_NEAR_APPLET */ 0x00004000, &blist_options, OPT_BLIST_NEAR_APPLET },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
663 { /* OPT_GEN_CHECK_SPELLING */ 0x00008000, &convo_options, OPT_CONVO_CHECK_SPELLING },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
664 { /* OPT_GEN_POPUP_CHAT */ 0x00010000, &chat_options, OPT_CHAT_POPUP },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
665 { /* 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
666 { /* OPT_GEN_CTL_CHARS */ 0x00080000, &convo_options, OPT_CONVO_CTL_CHARS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
667 { /* OPT_GEN_TIK_HACK */ 0x00100000, &away_options, OPT_AWAY_TIK_HACK },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
668 { /* OPT_GEN_CTL_SMILEYS */ 0x00200000, &convo_options, OPT_CONVO_CTL_SMILEYS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
669 { /* OPT_GEN_AUTO_AWAY */ 0x00800000, &away_options, OPT_AWAY_AUTO },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
670 { /* 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
671 { /* OPT_GEN_CTL_ENTER */ 0x02000000, &convo_options, OPT_CONVO_CTL_ENTER },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
672 { /* OPT_GEN_F2_TOGGLES */ 0x04000000, &convo_options, OPT_CONVO_F2_TOGGLES },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
673 { /* 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
674 { /* OPT_GEN_QUEUE_WHEN_AWAY */ 0x10000000, &away_options, OPT_AWAY_QUEUE },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
675 { 0,NULL,0 }
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
676 };
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
677
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
678 #define OPT_GEN_LOG_ALL 0x00000004
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
679 #define OPT_GEN_STRIP_HTML 0x00000008
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
680
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
681 static struct replace disp_replace[] = {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
682 { /* OPT_DISP_SHOW_TIME */ 0x00000001, &convo_options, OPT_CONVO_SHOW_TIME },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
683 { /* OPT_DISP_SHOW_GRPNUM */ 0x00000002, &blist_options, OPT_BLIST_SHOW_GRPNUM },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
684 { /* OPT_DISP_SHOW_PIXMAPS */ 0x00000004, &blist_options, OPT_BLIST_SHOW_PIXMAPS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
685 { /* OPT_DISP_SHOW_IDLETIME */ 0x00000008, &blist_options, OPT_BLIST_SHOW_IDLETIME },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
686 { /* 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
687 { /* OPT_DISP_IGNORE_COLOUR */ 0x00000020, &convo_options, OPT_CONVO_IGNORE_COLOUR },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
688 { /* OPT_DISP_SHOW_LOGON */ 0x00000040, &im_options, OPT_IM_LOGON },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
689 { /* OPT_DISP_SHOW_SMILEY */ 0x00000100, &convo_options, OPT_CONVO_SHOW_SMILEY },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
690 { /* OPT_DISP_COOL_LOOK */ 0x00000400, &misc_options, OPT_MISC_COOL_LOOK },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
691 { /* OPT_DISP_CHAT_LOGON */ 0x00000800, &chat_options, OPT_CHAT_LOGON },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
692 { /* OPT_DISP_NO_BUTTONS */ 0x00002000, &blist_options, OPT_BLIST_NO_BUTTONS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
693 { /* 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
694 { /* 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
695 { /* 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
696 { /* 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
697 { /* 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
698 { /* OPT_DISP_SHOW_WARN */ 0x00200000, &blist_options, OPT_BLIST_SHOW_WARN },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
699 { /* OPT_DISP_IGNORE_FONTS */ 0x00400000, &convo_options, OPT_CONVO_IGNORE_FONTS },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
700 { /* OPT_DISP_IGNORE_SIZES */ 0x00800000, &convo_options, OPT_CONVO_IGNORE_SIZES },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
701 { /* OPT_DISP_ONE_WINDOW */ 0x01000000, &im_options, OPT_IM_ONE_WINDOW },
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
702 { /* 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
703 { /* 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
704 { /* 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
705 { /* 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
706 { /* 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
707 { 0,NULL,0 }
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
708 };
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
709
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
710 static void gaimrc_read_options(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
711 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
712 char buf[2048];
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
713 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
714 struct parse *p;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
715 gboolean read_logging = FALSE, read_general = FALSE, read_display = FALSE;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
716 int general_options = 0, display_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
717 int i;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
718
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
719 buf[0] = 0;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
720
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
721 while (buf[0] != '}') {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
722 if (buf[0] == '#')
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
723 continue;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
724
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
725 if (!fgets(buf, sizeof(buf), f))
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
726 return;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
727
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
728 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
729
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
730 if (!strcmp(p->option, "general_options")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
731 general_options = atoi(p->value[0]);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
732 read_general = TRUE;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
733 } else if (!strcmp(p->option, "display_options")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
734 display_options = atoi(p->value[0]);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
735 read_display = TRUE;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
736 } else if (!strcmp(p->option, "misc_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
737 misc_options = atoi(p->value[0]);
1525
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
738 } else if (!strcmp(p->option, "logging_options")) {
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
739 logging_options = atoi(p->value[0]);
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
740 read_logging = TRUE;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
741 } else if (!strcmp(p->option, "blist_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
742 blist_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
743 } else if (!strcmp(p->option, "convo_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
744 convo_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
745 } else if (!strcmp(p->option, "im_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
746 im_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
747 } else if (!strcmp(p->option, "chat_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
748 chat_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
749 } else if (!strcmp(p->option, "font_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
750 font_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
751 } else if (!strcmp(p->option, "sound_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
752 sound_options = atoi(p->value[0]);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
753 } else if (!strcmp(p->option, "away_options")) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
754 away_options = atoi(p->value[0]);
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
755 away_resend = atoi(p->value[1]);
666
0a313fec9a15 [gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
756 } else if (!strcmp(p->option, "font_face")) {
2763
18a8e555039b [gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2592
diff changeset
757 g_snprintf(fontface, sizeof(fontface), "%s", p->value[0]);
1441
71e46d36113b [gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents: 1420
diff changeset
758 } else if (!strcmp(p->option, "font_size")) {
71e46d36113b [gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents: 1420
diff changeset
759 fontsize = atoi(p->value[0]);
666
0a313fec9a15 [gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
760 } else if (!strcmp(p->option, "foreground")) {
697
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
761 fgcolor.red = atoi(p->value[0]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
762 fgcolor.green = atoi(p->value[1]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
763 fgcolor.blue = atoi(p->value[2]);
666
0a313fec9a15 [gaim-migrate @ 676]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 570
diff changeset
764 } else if (!strcmp(p->option, "background")) {
697
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
765 bgcolor.red = atoi(p->value[0]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
766 bgcolor.green = atoi(p->value[1]);
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
767 bgcolor.blue = atoi(p->value[2]);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
768 } else if (!strcmp(p->option, "report_idle")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
769 report_idle = atoi(p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
770 } else if (!strcmp(p->option, "web_browser")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
771 web_browser = atoi(p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
772 } else if (!strcmp(p->option, "web_command")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
773 strcpy(web_command, p->value[0]);
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
774 } else if (!strcmp(p->option, "conv_size")) {
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
775 conv_size.width = atoi(p->value[0]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
776 conv_size.height = atoi(p->value[1]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
777 conv_size.entry_height = atoi(p->value[2]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
778 } else if (!strcmp(p->option, "buddy_chat_size")) {
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
779 buddy_chat_size.width = atoi(p->value[0]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
780 buddy_chat_size.height = atoi(p->value[1]);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
781 buddy_chat_size.entry_height = atoi(p->value[2]);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
782 } else if (!strcmp(p->option, "blist_pos")) {
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
783 blist_pos.x = atoi(p->value[0]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
784 blist_pos.y = atoi(p->value[1]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
785 blist_pos.width = atoi(p->value[2]);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
786 blist_pos.height = atoi(p->value[3]);
82
33bc54b6c16a [gaim-migrate @ 92]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 44
diff changeset
787 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
788
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
789 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
790
2592
cbbdd76cd0e4 [gaim-migrate @ 2605]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2580
diff changeset
791 /* this is where we do bugs and compatibility stuff */
3099
ecc623d5638e [gaim-migrate @ 3113]
Robert McQueen <robot101@debian.org>
parents: 2990
diff changeset
792 if (!(sound_options & (OPT_SOUND_BEEP | OPT_SOUND_ESD | OPT_SOUND_NORMAL | OPT_SOUND_NAS | OPT_SOUND_ARTSC | OPT_SOUND_CMD)))
2592
cbbdd76cd0e4 [gaim-migrate @ 2605]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2580
diff changeset
793 sound_options |= OPT_SOUND_ESD | OPT_SOUND_NORMAL | OPT_SOUND_NAS | OPT_SOUND_ARTSC;
cbbdd76cd0e4 [gaim-migrate @ 2605]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2580
diff changeset
794
2352
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
795 if (conv_size.width == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
796 conv_size.height == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
797 conv_size.entry_height == 0) {
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
798 conv_size.width = 320;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
799 conv_size.height = 175;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
800 conv_size.entry_height = 50;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
801 }
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
802
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
803 if (buddy_chat_size.width == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
804 buddy_chat_size.height == 0 &&
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
805 buddy_chat_size.entry_height == 0) {
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
806 buddy_chat_size.width = 320;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
807 buddy_chat_size.height = 160;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
808 buddy_chat_size.entry_height = 50;
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
809 }
926d68fd918f [gaim-migrate @ 2365]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2317
diff changeset
810
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
811 if (read_general) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
812 if (!read_logging) {
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
813 logging_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
814 if (general_options & OPT_GEN_LOG_ALL)
3457
4f3d88cc5b68 [gaim-migrate @ 3505]
Sean Egan <seanegan@pidgin.im>
parents: 3438
diff changeset
815 logging_options |= OPT_LOG_CONVOS | OPT_LOG_CHATS;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
816 if (general_options & OPT_GEN_STRIP_HTML)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
817 logging_options |= OPT_LOG_STRIP_HTML;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
818 }
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
819 for (i = 0; gen_replace[i].val; i++)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
820 if (general_options & gen_replace[i].old)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
821 *gen_replace[i].val |= gen_replace[i].new;
1525
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
822 }
b4ece1a718cd [gaim-migrate @ 1535]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1456
diff changeset
823
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
824 if (read_display)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
825 for (i = 0; disp_replace[i].val; i++)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
826 if (display_options & disp_replace[i].old)
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
827 *disp_replace[i].val |= disp_replace[i].new;
2906
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
828
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
829 if (!away_resend)
6d1a38606840 [gaim-migrate @ 2919]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2777
diff changeset
830 away_resend = 120;
3391
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
831
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
832 if (misc_options & OPT_MISC_BUDDY_TICKER) {
3438
2721aaf63e5a [gaim-migrate @ 3478]
peloverde
parents: 3435
diff changeset
833 #ifdef GAIM_PLUGINS
3393
927b7ce13d03 [gaim-migrate @ 3412]
Sean Egan <seanegan@pidgin.im>
parents: 3391
diff changeset
834 load_plugin(LIBDIR "/ticker.so");
3438
2721aaf63e5a [gaim-migrate @ 3478]
peloverde
parents: 3435
diff changeset
835 #endif
3391
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
836 misc_options &= ~OPT_MISC_BUDDY_TICKER;
80a19cca79da [gaim-migrate @ 3410]
Sean Egan <seanegan@pidgin.im>
parents: 3367
diff changeset
837 }
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
838 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
839
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
840 static void gaimrc_write_options(FILE *f)
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
841 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
842
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
843 fprintf(f, "options {\n");
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
844
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
845 fprintf(f, "\tmisc_options { %u }\n", misc_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
846 fprintf(f, "\tlogging_options { %u }\n", logging_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
847 fprintf(f, "\tblist_options { %u }\n", blist_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
848 fprintf(f, "\tconvo_options { %u }\n", convo_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
849 fprintf(f, "\tim_options { %u }\n", im_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
850 fprintf(f, "\tchat_options { %u }\n", chat_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
851 fprintf(f, "\tfont_options { %u }\n", font_options);
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
852 fprintf(f, "\tsound_options { %u }\n", sound_options);
2908
4e1dc7494fe1 [gaim-migrate @ 2921]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2906
diff changeset
853 fprintf(f, "\taway_options { %u } { %u }\n", away_options, away_resend);
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
854
2763
18a8e555039b [gaim-migrate @ 2776]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2592
diff changeset
855 fprintf(f, "\tfont_face { %s }\n", fontface);
1441
71e46d36113b [gaim-migrate @ 1451]
Decklin Foster <decklin@red-bean.com>
parents: 1420
diff changeset
856 fprintf(f, "\tfont_size { %d }\n", fontsize);
697
6091a4b5c459 [gaim-migrate @ 707]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 690
diff changeset
857 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
858 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
859 fprintf(f, "\treport_idle { %d }\n", report_idle);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
860 fprintf(f, "\tweb_browser { %d }\n", web_browser);
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
861 fprintf(f, "\tweb_command { %s }\n", web_command);
3541
a62a5a4d3eb6 [gaim-migrate @ 3616]
Luke Schierer <lschiere@pidgin.im>
parents: 3493
diff changeset
862 fprintf(f, "\tblist_pos { %d } { %d } { %d } { %d }\n",
a62a5a4d3eb6 [gaim-migrate @ 3616]
Luke Schierer <lschiere@pidgin.im>
parents: 3493
diff changeset
863 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
864 fprintf(f, "\tconv_size { %d } { %d } { %d }\n",
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
865 conv_size.width, conv_size.height, conv_size.entry_height);
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
866 fprintf(f, "\tbuddy_chat_size { %d } { %d } { %d }\n",
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
867 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
868
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
869 fprintf(f, "}\n");
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
870 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
871
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
872
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
873 static void gaimrc_read_sounds(FILE *f)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
874 {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
875 int i;
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
876 char buf[2048];
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
877 struct parse parse_buffer;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
878 struct parse *p;
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
879
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
880 buf[0] = 0;
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
881
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
882 for (i = 0; i < NUM_SOUNDS; i++)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
883 sound_file[i] = NULL;
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
884 sound_cmd[0] = 0;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
885
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
886 while (buf[0] != '}') {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
887 if (buf[0] == '#')
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
888 continue;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
889
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
890 if (!fgets(buf, sizeof(buf), f))
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
891 return;
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
892
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
893 p = parse_line(buf, &parse_buffer);
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
894
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
895 if (!strcmp(p->option, "sound_cmd")) {
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
896 g_snprintf(sound_cmd, sizeof(sound_cmd), "%s", p->value[0]);
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
897 } else if (!strncmp(p->option, "sound", strlen("sound"))) {
2036
4739b7aa2a84 [gaim-migrate @ 2046]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1976
diff changeset
898 i = p->option[strlen("sound")] - 'A';
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
899
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
900 if (p->value[0][0])
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
901 sound_file[i] = g_strdup(p->value[0]);
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
902 }
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
903 }
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
904 }
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
905
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
906 static void gaimrc_write_sounds(FILE *f)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
907 {
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
908 int i;
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
909 fprintf(f, "sound_files {\n");
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
910 for (i = 0; i < NUM_SOUNDS; i++)
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
911 if (sound_file[i])
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
912 fprintf(f, "\tsound%c { %s }\n", i + 'A', sound_file[i]);
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
913 else
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
914 fprintf(f, "\tsound%c { }\n", i + 'A');
1214
dccd13b431d5 [gaim-migrate @ 1224]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1209
diff changeset
915 fprintf(f, "\tsound_cmd { %s }\n", sound_cmd);
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
916 fprintf(f, "}\n");
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
917 }
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
918
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
919 static gboolean gaimrc_parse_proxy_uri(const char *proxy)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
920 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
921 char *c, *d;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
922 char buffer[2048];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
923
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
924 char host[128];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
925 char user[128];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
926 char pass[128];
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
927 int port = 0;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
928 int len = 0;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
929
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
930 if ((c = strchr(proxy, ':')) == NULL)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
931 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
932 /* No URI detected. */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
933 return FALSE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
934 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
935
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
936 len = c - proxy;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
937
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
938 if (!strncmp(proxy, "http", len))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
939 proxytype = PROXY_HTTP;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
940 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
941 return FALSE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
942
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
943 /* Get past "://" */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
944 c += 3;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
945
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
946 for (;;)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
947 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
948 *buffer = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
949 d = buffer;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
950
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
951 while (*c != '\0' && *c != '@' && *c != ':' && *c != '/')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
952 *d++ = *c++;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
953
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
954 *d = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
955
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
956 if (*c == ':')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
957 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
958 /*
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
959 * 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
960 * If not, host.
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
961 */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
962 if (strchr(c, '@') != NULL)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
963 strcmp(user, buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
964 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
965 strcmp(host, buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
966 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
967 else if (*c == '@')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
968 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
969 if (user == NULL)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
970 strcmp(user, buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
971 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
972 strcmp(pass, buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
973 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
974 else if (*c == '/' || *c == '\0')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
975 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
976 if (host == NULL)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
977 strcmp(host, buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
978 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
979 port = atoi(buffer);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
980
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
981 /* Done. */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
982 break;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
983 }
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 c++;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
986 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
987
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
988 /* NOTE: HTTP_PROXY takes precendence. */
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
989 if (host)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
990 strcpy(proxyhost, host);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
991 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
992 *proxyhost = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
993
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
994 if (user)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
995 strcpy(proxyuser, user);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
996 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
997 *proxyuser = '\0';
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
998
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
999 if (pass)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1000 strcpy(proxypass, pass);
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1001 else
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1002 *proxypass = '\0';
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 proxyport = port;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1005
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1006 return TRUE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1007 }
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1008
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1009 static void gaimrc_read_proxy(FILE *f)
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1010 {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1011 char buf[2048];
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
1012 struct parse parse_buffer;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1013 struct parse *p;
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1014
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1015 buf[0] = 0;
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1016 proxyhost[0] = 0;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1017
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1018 while (buf[0] != '}') {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1019 if (buf[0] == '#')
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1020 continue;
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1021
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1022 if (!fgets(buf, sizeof(buf), f))
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1023 return;
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1024
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
1025 p = parse_line(buf, &parse_buffer);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1026
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1027 if (!strcmp(p->option, "host")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1028 g_snprintf(proxyhost, sizeof(proxyhost), "%s", p->value[0]);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1029 } else if (!strcmp(p->option, "port")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1030 proxyport = atoi(p->value[0]);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1031 } else if (!strcmp(p->option, "type")) {
1921
c7c20d352f5a [gaim-migrate @ 1931]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1886
diff changeset
1032 proxytype = atoi(p->value[0]);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1033 } else if (!strcmp(p->option, "user")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1034 g_snprintf(proxyuser, sizeof(proxyuser), "%s", p->value[0]);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1035 } else if (!strcmp(p->option, "pass")) {
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1036 g_snprintf(proxypass, sizeof(proxypass), "%s", p->value[0]);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1037 }
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1038 }
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1039 if (!proxyhost[0]) {
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1040 gboolean getVars = TRUE;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1041
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1042 if (g_getenv("HTTP_PROXY"))
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1043 g_snprintf(proxyhost, sizeof(proxyhost), "%s", g_getenv("HTTP_PROXY"));
1938
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1936
diff changeset
1044 else if (g_getenv("http_proxy"))
93e5b550043b [gaim-migrate @ 1948]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1936
diff changeset
1045 g_snprintf(proxyhost, sizeof(proxyhost), "%s", g_getenv("http_proxy"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1046 else if (g_getenv("HTTPPROXY"))
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1047 g_snprintf(proxyhost, sizeof(proxyhost), "%s", g_getenv("HTTPPROXY"));
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1048
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1049 if (*proxyhost != '\0')
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1050 getVars = !gaimrc_parse_proxy_uri(proxyhost);
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 if (getVars)
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1053 {
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1054 if (g_getenv("HTTP_PROXY_PORT"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1055 proxyport = atoi(g_getenv("HTTP_PROXY_PORT"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1056 else if (g_getenv("http_proxy_port"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1057 proxyport = atoi(g_getenv("http_proxy_port"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1058 else if (g_getenv("HTTPPROXYPORT"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1059 proxyport = atoi(g_getenv("HTTPPROXYPORT"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1060
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1061 if (g_getenv("HTTP_PROXY_USER"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1062 g_snprintf(proxyuser, sizeof(proxyuser), "%s", g_getenv("HTTP_PROXY_USER"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1063 else if (g_getenv("http_proxy_user"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1064 g_snprintf(proxyuser, sizeof(proxyuser), "%s", g_getenv("http_proxy_user"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1065 else if (g_getenv("HTTPPROXYUSER"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1066 g_snprintf(proxyuser, sizeof(proxyuser), "%s", g_getenv("HTTPPROXYUSER"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1067
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1068 if (g_getenv("HTTP_PROXY_PASS"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1069 g_snprintf(proxypass, sizeof(proxypass), "%s", g_getenv("HTTP_PROXY_PASS"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1070 else if (g_getenv("http_proxy_pass"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1071 g_snprintf(proxypass, sizeof(proxypass), "%s", g_getenv("http_proxy_pass"));
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1072 else if (g_getenv("HTTPPROXYPASS"))
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1073 g_snprintf(proxypass, sizeof(proxypass), "%s", g_getenv("HTTPPROXYPASS"));
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1074
3435
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1075
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1076 if (proxyhost[0])
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1077 proxytype = PROXY_HTTP;
4f6fd889bf65 [gaim-migrate @ 3465]
Sean Egan <seanegan@pidgin.im>
parents: 3434
diff changeset
1078 }
1936
d5f4cd8c37e4 [gaim-migrate @ 1946]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1921
diff changeset
1079 }
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1080 }
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1081
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1082 static void gaimrc_write_proxy(FILE *f)
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1083 {
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
1084 char *str;
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
1085
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1086 fprintf(f, "proxy {\n");
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1087 fprintf(f, "\thost { %s }\n", proxyhost);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1088 fprintf(f, "\tport { %d }\n", proxyport);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1089 fprintf(f, "\ttype { %d }\n", proxytype);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1090 fprintf(f, "\tuser { %s }\n", proxyuser);
3309
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
1091 fprintf(f, "\tpass { %s }\n", (str = escape_text2(proxypass)));
b0235333e3e9 [gaim-migrate @ 3327]
Jim Seymour <jseymour@users.sourceforge.net>
parents: 3205
diff changeset
1092 free(str);
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1093 fprintf(f, "}\n");
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1094 }
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1095
1006
fb2f2a403962 [gaim-migrate @ 1016]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1002
diff changeset
1096
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1097 static void set_defaults()
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1098 {
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1099 int i;
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1100 struct away_message *a;
917
47d0d6940f35 [gaim-migrate @ 927]
Rob Flynn <gaim@robflynn.com>
parents: 915
diff changeset
1101
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1102 misc_options = OPT_MISC_COOL_LOOK;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1103
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1104 logging_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1105
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1106 blist_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1107 OPT_BLIST_APP_BUDDY_SHOW |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1108 OPT_BLIST_SAVED_WINDOWS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1109 OPT_BLIST_NEAR_APPLET |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1110 OPT_BLIST_SHOW_GRPNUM |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1111 OPT_BLIST_SHOW_PIXMAPS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1112 OPT_BLIST_SHOW_IDLETIME |
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1113 OPT_BLIST_GREY_IDLERS |
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1114 OPT_BLIST_SHOW_BUTTON_XPM;
870
750d8c8f6aba [gaim-migrate @ 880]
Rob Flynn <gaim@robflynn.com>
parents: 774
diff changeset
1115
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1116 convo_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1117 OPT_CONVO_ENTER_SENDS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1118 OPT_CONVO_SEND_LINKS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1119 OPT_CONVO_CTL_CHARS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1120 OPT_CONVO_CTL_SMILEYS |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1121 OPT_CONVO_SHOW_TIME |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1122 OPT_CONVO_SHOW_SMILEY;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1123
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1124 im_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1125 OPT_IM_POPUP |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1126 OPT_IM_LOGON |
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1127 OPT_IM_BUTTON_XPM |
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1128 OPT_IM_ONE_WINDOW ;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1129
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1130 chat_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1131 OPT_CHAT_LOGON |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1132 OPT_CHAT_POPUP |
2388
daf70f99d89f [gaim-migrate @ 2401]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2383
diff changeset
1133 OPT_CHAT_BUTTON_XPM |
3367
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1134 OPT_CHAT_TAB_COMPLETE |
cb32334700d2 [gaim-migrate @ 3386]
Sean Egan <seanegan@pidgin.im>
parents: 3309
diff changeset
1135 OPT_CHAT_ONE_WINDOW;
870
750d8c8f6aba [gaim-migrate @ 880]
Rob Flynn <gaim@robflynn.com>
parents: 774
diff changeset
1136
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1137 font_options = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1138
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1139 away_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1140 OPT_AWAY_BACK_ON_IM;
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1141
3493
22733759ba51 [gaim-migrate @ 3553]
Luke Schierer <lschiere@pidgin.im>
parents: 3473
diff changeset
1142 for (i = 0; i < NUM_SOUNDS; i++)
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1143 sound_file[i] = NULL;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1144 font_options = 0;
2580
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1145 /* 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
1146 available one will be used. */
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1147 sound_options =
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1148 OPT_SOUND_LOGIN |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1149 OPT_SOUND_LOGOUT |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1150 OPT_SOUND_RECV |
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1151 OPT_SOUND_SEND |
2580
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1152 OPT_SOUND_SILENT_SIGNON |
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1153 OPT_SOUND_NORMAL |
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1154 OPT_SOUND_NAS |
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1155 OPT_SOUND_ARTSC |
b6e87f6ad217 [gaim-migrate @ 2593]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2397
diff changeset
1156 OPT_SOUND_ESD;
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1157
2990
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1158 #ifdef USE_SCREENSAVER
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1159 report_idle = IDLE_SCREENSAVER;
2990
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1160 #else
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1161 report_idle = IDLE_GAIM;
51b59d4a917b [gaim-migrate @ 3003]
Rob Flynn <gaim@robflynn.com>
parents: 2908
diff changeset
1162 #endif
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1163 web_browser = BROWSER_NETSCAPE;
3434
4ddd459d86f3 [gaim-migrate @ 3463]
Sean Egan <seanegan@pidgin.im>
parents: 3427
diff changeset
1164 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
1165
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1166 auto_away = 10;
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1167 a = g_new0(struct away_message, 1);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1168 g_snprintf(a->name, sizeof(a->name), "boring default");
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1169 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
1170 away_messages = g_slist_append(away_messages, a);
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1171 default_away = a;
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1172
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1173 blist_pos.width = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1174 blist_pos.height = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1175 blist_pos.x = 0;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1176 blist_pos.y = 0;
1813
9b174ae83add [gaim-migrate @ 1823]
Decklin Foster <decklin@red-bean.com>
parents: 1710
diff changeset
1177
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1178 conv_size.width = 320;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1179 conv_size.height = 175;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1180 conv_size.entry_height = 50;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1181
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1182 buddy_chat_size.width = 320;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1183 buddy_chat_size.height = 160;
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1184 buddy_chat_size.entry_height = 50;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1185 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1186
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1187 void load_prefs()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1188 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1189 FILE *f;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1190 char buf[1024];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1191 int ver = 0;
570
3450eeb314a1 [gaim-migrate @ 580]
Todd Kulesza <fflewddur@users.sourceforge.net>
parents: 453
diff changeset
1192
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1193 if (opt_rcfile_arg)
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1194 g_snprintf(buf, sizeof(buf), "%s", opt_rcfile_arg);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1195 else if (getenv("HOME"))
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1196 g_snprintf(buf, sizeof(buf), "%s/.gaimrc", getenv("HOME"));
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1197 else {
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1198 set_defaults();
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1199 return;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1200 }
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1201
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1202 if ((f = fopen(buf, "r"))) {
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1203 fgets(buf, sizeof(buf), f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1204 sscanf(buf, "# .gaimrc v%d", &ver);
2389
fa35272e9c1a [gaim-migrate @ 2402]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2388
diff changeset
1205 if ((ver <= 3) || (buf[0] != '#'))
2313
f7f7ff0b8d4a [gaim-migrate @ 2323]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2286
diff changeset
1206 set_defaults();
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1207
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1208 while (!feof(f)) {
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1209 switch (gaimrc_parse_tag(f)) {
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1210 case -1:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1211 /* Let the loop end, EOF */
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1212 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1213 case 0:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1214 gaimrc_read_users(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1215 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1216 case 1:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1217 gaimrc_read_options(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1218 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1219 case 2:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1220 gaimrc_read_away(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1221 break;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1222 #ifdef GAIM_PLUGINS
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1223 case 3:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1224 gaimrc_read_plugins(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1225 break;
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1226 #endif
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1227 case 4:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1228 gaimrc_read_pounce(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1229 break;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1230 case 6:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1231 gaimrc_read_sounds(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1232 break;
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1233 case 7:
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1234 gaimrc_read_proxy(f);
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1235 break;
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1236 default:
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1237 /* NOOP */
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1238 break;
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1239 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1240 }
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1241 fclose(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1242 } else if (opt_rcfile_arg) {
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1243 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
1244 do_error_dialog(buf, NULL, GAIM_ERROR);
2383
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1245 set_defaults();
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1246 } else {
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1247 set_defaults();
712503cc80ba [gaim-migrate @ 2396]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 2379
diff changeset
1248 save_prefs();
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1249 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1250 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1251
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1252 void save_prefs()
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1253 {
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1254 FILE *f;
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1255 char buf[BUF_LONG];
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1256
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1257 if (opt_rcfile_arg)
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1258 g_snprintf(buf, sizeof(buf), "%s", opt_rcfile_arg);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1259 else if (getenv("HOME"))
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1260 g_snprintf(buf, sizeof(buf), "%s/.gaimrc", getenv("HOME"));
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1261 else
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1262 return;
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1263
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1264 if ((f = fopen(buf, "w"))) {
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1265 fprintf(f, "# .gaimrc v%d\n", 4);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1266 gaimrc_write_users(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1267 gaimrc_write_options(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1268 gaimrc_write_sounds(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1269 gaimrc_write_away(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1270 gaimrc_write_pounce(f);
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1271 #ifdef GAIM_PLUGINS
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1272 gaimrc_write_plugins(f);
142
fc9c79676b08 [gaim-migrate @ 152]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 131
diff changeset
1273 #endif
1881
bcd5d457cdbb [gaim-migrate @ 1891]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents: 1878
diff changeset
1274 gaimrc_write_proxy(f);
1560
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1275 fclose(f);
87e637033700 [gaim-migrate @ 1570]
Jason Boerner
parents: 1525
diff changeset
1276 chmod(buf, S_IRUSR | S_IWUSR);
1
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1277 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1278 }
efe077a7e70d [gaim-migrate @ 10]
Rob Flynn <gaim@robflynn.com>
parents:
diff changeset
1279
1209
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1280
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1281
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1282 /* This function is called by g_slist_insert_sorted to compare the item
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1283 * being compared to the rest of the items on the list.
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1284 */
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1285
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1286 gint sort_awaymsg_list(gconstpointer a, gconstpointer b)
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1287 {
1250
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1288 struct away_message *msg_a;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1289 struct away_message *msg_b;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1290
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1291 msg_a = (struct away_message *)a;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1292 msg_b = (struct away_message *)b;
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1293
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1294 return (strcmp(msg_a->name, msg_b->name));
46ac03911ab0 [gaim-migrate @ 1260]
Decklin Foster <decklin@red-bean.com>
parents: 1236
diff changeset
1295
1209
2e5e20b05bee [gaim-migrate @ 1219]
Justin
parents: 1155
diff changeset
1296 }

mercurial