Mercurial > pidgin
annotate src/log.c @ 6629:bdc448cf4cb6
[gaim-migrate @ 7153]
Tim Ringenbach (marv_sf) writes:
" This patch makes sending colors in yahoo work. It also
makes a few changing to receiving them, and addresses
most of the problems with that patch (which I think
were all related to the fact it didn't do outgoing colors).
It now handles bold, italic, underline, font face, font
size, and font color in both directions. It disables
the background color button if the prpl is yahoo (in a
generic way), and farthermore strips out any <body>
tags that the user might try to type anyway (the yahoo
server purposely mangles them).
It also adds a line to g_strescape some debug messages
because I got tired them of changing the color of my
terminal.
I think I got all the bugs out. If you run with -d or
open the debug window, it will show you what both
conversion function returned, which should help track
down any problems."
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Tue, 26 Aug 2003 01:34:51 +0000 |
parents | 8f94cce8faa5 |
children | 0c5637b5462e |
rev | line source |
---|---|
4184 | 1 /* --------------------------------------------------- |
2 * Function to remove a log file entry | |
3 * --------------------------------------------------- | |
4 */ | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
5 #include "internal.h" |
4195 | 6 |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
7 #include "conversation.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
8 #include "debug.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
9 #include "log.h" |
4184 | 10 #include "multi.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
11 #include "notify.h" |
5548 | 12 #include "prefs.h" |
4184 | 13 #include "prpl.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
14 #include "util.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
15 |
6371
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
5934
diff
changeset
|
16 /* XXX CORE/UI */ |
8f94cce8faa5
[gaim-migrate @ 6876]
Christian Hammond <chipx86@chipx86.com>
parents:
5934
diff
changeset
|
17 #include "gtkinternal.h" |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
18 #include "gtkconv.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
19 #include "ui.h" |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
20 |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
21 GList *log_conversations = NULL; |
4192
17187504bfc2
[gaim-migrate @ 4423]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4184
diff
changeset
|
22 |
4184 | 23 void rm_log(struct log_conversation *a) |
24 { | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
25 GaimConversation *cnv = gaim_find_conversation(a->name); |
4184 | 26 |
5528 | 27 /* Added the following if statements for sanity check */ |
28 if (!a) | |
29 { | |
30 gaim_notify_error (NULL, NULL, _("Error in specifying buddy conversation."), NULL); | |
31 return; | |
32 } | |
33 cnv = gaim_find_conversation(a->name); | |
34 if (!cnv) | |
35 { | |
36 gaim_notify_error (NULL, NULL, _("Unable to find conversation log"), NULL); | |
37 return; | |
38 } | |
39 | |
4184 | 40 log_conversations = g_list_remove(log_conversations, a); |
41 } | |
42 | |
43 struct log_conversation *find_log_info(const char *name) | |
44 { | |
45 char *pname = g_malloc(BUF_LEN); | |
46 GList *lc = log_conversations; | |
47 struct log_conversation *l; | |
48 | |
49 | |
50 strcpy(pname, normalize(name)); | |
51 | |
52 while (lc) { | |
53 l = (struct log_conversation *)lc->data; | |
4793 | 54 if (!gaim_utf8_strcasecmp(pname, normalize(l->name))) { |
4184 | 55 g_free(pname); |
56 return l; | |
57 } | |
58 lc = lc->next; | |
59 } | |
60 g_free(pname); | |
61 return NULL; | |
62 } | |
63 | |
64 void update_log_convs() | |
65 { | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
66 GList *cnv; |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
67 GaimConversation *c; |
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
68 GaimGtkConversation *gtkconv; |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
69 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
70 for (cnv = gaim_get_conversations(); cnv != NULL; cnv = cnv->next) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
71 |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
72 c = (GaimConversation *)cnv->data; |
4184 | 73 |
4398
a8249a5250b6
[gaim-migrate @ 4667]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
74 if (!GAIM_IS_GTK_CONVERSATION(c)) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
75 continue; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
76 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
77 gtkconv = GAIM_GTK_CONVERSATION(c); |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
78 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
79 if (gtkconv->toolbar.log) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
80 if (gaim_conversation_get_type(c) == GAIM_CONV_CHAT) |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
81 gtk_widget_set_sensitive(GTK_WIDGET(gtkconv->toolbar.log), |
5548 | 82 !gaim_prefs_get_bool("/gaim/gtk/logging/log_chats")); |
4184 | 83 else |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
84 gtk_widget_set_sensitive(GTK_WIDGET(gtkconv->toolbar.log), |
5548 | 85 !gaim_prefs_get_bool("/gaim/gtk/logging/log_ims")); |
4184 | 86 } |
87 } | |
88 } | |
89 | |
90 static FILE *open_gaim_log_file(const char *name, int *flag) | |
91 { | |
92 char *buf; | |
93 char *buf2; | |
94 char log_all_file[256]; | |
95 struct stat st; | |
96 FILE *fd; | |
97 #ifndef _WIN32 | |
98 int res; | |
99 #endif | |
100 gchar *gaim_dir; | |
101 | |
102 buf = g_malloc(BUF_LONG); | |
103 buf2 = g_malloc(BUF_LONG); | |
104 gaim_dir = gaim_user_dir(); | |
105 | |
106 /* Dont log yourself */ | |
107 strncpy(log_all_file, gaim_dir, 256); | |
108 | |
109 #ifndef _WIN32 | |
110 stat(log_all_file, &st); | |
111 if (!S_ISDIR(st.st_mode)) | |
112 unlink(log_all_file); | |
113 | |
114 fd = fopen(log_all_file, "r"); | |
115 | |
116 if (!fd) { | |
117 res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); | |
118 if (res < 0) { | |
119 g_snprintf(buf, BUF_LONG, _("Unable to make directory %s for logging"), | |
120 log_all_file); | |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
121 gaim_notify_error(NULL, NULL, buf, NULL); |
4184 | 122 g_free(buf); |
123 g_free(buf2); | |
124 return NULL; | |
125 } | |
126 } else | |
127 fclose(fd); | |
128 | |
129 g_snprintf(log_all_file, 256, "%s" G_DIR_SEPARATOR_S "logs", gaim_dir); | |
130 | |
131 if (stat(log_all_file, &st) < 0) | |
132 *flag = 1; | |
133 if (!S_ISDIR(st.st_mode)) | |
134 unlink(log_all_file); | |
135 | |
136 fd = fopen(log_all_file, "r"); | |
137 if (!fd) { | |
138 res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); | |
139 if (res < 0) { | |
140 g_snprintf(buf, BUF_LONG, _("Unable to make directory %s for logging"), | |
141 log_all_file); | |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
142 gaim_notify_error(NULL, NULL, buf, NULL); |
4184 | 143 g_free(buf); |
144 g_free(buf2); | |
145 return NULL; | |
146 } | |
147 } else | |
148 fclose(fd); | |
149 #else /* _WIN32 */ | |
150 g_snprintf(log_all_file, 256, "%s" G_DIR_SEPARATOR_S "logs", gaim_dir); | |
151 | |
152 if( _mkdir(log_all_file) < 0 && errno != EEXIST ) { | |
153 g_snprintf(buf, BUF_LONG, _("Unable to make directory %s for logging"), log_all_file); | |
5436
ad445074d239
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
154 gaim_notify_error(NULL, NULL, buf, NULL); |
4184 | 155 g_free(buf); |
156 g_free(buf2); | |
157 return NULL; | |
158 } | |
159 #endif | |
160 | |
161 g_snprintf(log_all_file, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s", gaim_dir, name); | |
162 if (stat(log_all_file, &st) < 0) | |
163 *flag = 1; | |
164 | |
5211
0241d6b6702d
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
165 gaim_debug(GAIM_DEBUG_INFO, "log", "Logging to: \"%s\"\n", log_all_file); |
4184 | 166 |
167 fd = fopen(log_all_file, "a"); | |
168 | |
169 g_free(buf); | |
170 g_free(buf2); | |
171 return fd; | |
172 } | |
173 | |
174 static FILE *open_system_log_file(char *name) | |
175 { | |
176 int x; | |
177 | |
178 if (name) | |
179 return open_log_file(name, 2); | |
180 else | |
181 return open_gaim_log_file("system", &x); | |
182 } | |
183 | |
184 FILE *open_log_file(const char *name, int is_chat) | |
185 { | |
186 struct stat st; | |
187 char realname[256]; | |
188 struct log_conversation *l; | |
189 FILE *fd; | |
190 int flag = 0; | |
191 | |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
192 if (((is_chat == 2) && !gaim_prefs_get_bool("/gaim/gtk/logging/individual_logs")) |
5548 | 193 || ((is_chat == 1) && !gaim_prefs_get_bool("/gaim/gtk/logging/log_chats")) |
194 || ((is_chat == 0) && !gaim_prefs_get_bool("/gaim/gtk/logging/log_ims"))) { | |
4184 | 195 |
196 l = find_log_info(name); | |
197 if (!l) | |
198 return NULL; | |
199 | |
200 if (stat(l->filename, &st) < 0) | |
201 flag = 1; | |
202 | |
203 fd = fopen(l->filename, "a"); | |
204 | |
205 if (flag) { /* is a new file */ | |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
206 if (gaim_prefs_get_bool("/gaim/gtk/logging/strip_html")) { |
4184 | 207 fprintf(fd, _("IM Sessions with %s\n"), name); |
208 } else { | |
209 fprintf(fd, "<HTML><HEAD><TITLE>"); | |
210 fprintf(fd, _("IM Sessions with %s"), name); | |
5138 | 211 fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"#ffffff\">\n"); |
4184 | 212 } |
213 } | |
214 | |
215 return fd; | |
216 } | |
217 | |
218 g_snprintf(realname, sizeof(realname), "%s.log", normalize(name)); | |
219 fd = open_gaim_log_file(realname, &flag); | |
220 | |
221 if (fd && flag) { /* is a new file */ | |
5554
7b36d02031a2
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
222 if (gaim_prefs_get_bool("/gaim/gtk/logging/strip_html")) { |
4184 | 223 fprintf(fd, _("IM Sessions with %s\n"), name); |
224 } else { | |
225 fprintf(fd, "<HTML><HEAD><TITLE>"); | |
226 fprintf(fd, _("IM Sessions with %s"), name); | |
5138 | 227 fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"#ffffff\">\n"); |
4184 | 228 } |
229 } | |
230 | |
231 return fd; | |
232 } | |
233 | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
234 void system_log(enum log_event what, GaimConnection *gc, |
4184 | 235 struct buddy *who, int why) |
236 { | |
5896 | 237 GaimAccount *account = NULL; |
4184 | 238 FILE *fd; |
239 char text[256], html[256]; | |
240 | |
5896 | 241 if (gc != NULL) |
242 account = gaim_connection_get_account(gc); | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
243 |
5839 | 244 if ((why & OPT_LOG_MY_SIGNON && |
245 !gaim_prefs_get_bool("/gaim/gtk/logging/log_own_states")) || | |
246 (why & OPT_LOG_BUDDY_SIGNON && | |
247 !gaim_prefs_get_bool("/gaim/gtk/logging/log_signon_signoff")) || | |
248 (why & OPT_LOG_BUDDY_IDLE && | |
249 !gaim_prefs_get_bool("/gaim/gtk/logging/log_idle_state")) || | |
250 (why & OPT_LOG_BUDDY_AWAY && | |
251 !gaim_prefs_get_bool("/gaim/gtk/logging/log_away_state"))) { | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
252 |
4184 | 253 return; |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
254 } |
4184 | 255 |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
256 if (gaim_prefs_get_bool("/gaim/gtk/logging/individual_logs")) { |
4184 | 257 if (why & OPT_LOG_MY_SIGNON) |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
258 fd = open_system_log_file(gc ? (char *)gaim_account_get_username(account) : NULL); |
4184 | 259 else |
260 fd = open_system_log_file(who->name); | |
261 } else | |
262 fd = open_system_log_file(NULL); | |
263 | |
264 if (!fd) | |
265 return; | |
266 | |
267 if (why & OPT_LOG_MY_SIGNON) { | |
268 switch (what) { | |
269 case log_signon: | |
4195 | 270 g_snprintf(text, sizeof(text), _("+++ %s (%s) signed on @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
271 gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
4184 | 272 g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
273 break; | |
274 case log_signoff: | |
4195 | 275 g_snprintf(text, sizeof(text), _("+++ %s (%s) signed off @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
276 gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
4184 | 277 g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
278 break; | |
279 case log_away: | |
4195 | 280 g_snprintf(text, sizeof(text), _("+++ %s (%s) changed away state @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
281 gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
4184 | 282 g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
283 break; | |
284 case log_back: | |
4195 | 285 g_snprintf(text, sizeof(text), _("+++ %s (%s) came back @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
286 gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
4184 | 287 g_snprintf(html, sizeof(html), "%s", text); |
288 break; | |
289 case log_idle: | |
4195 | 290 g_snprintf(text, sizeof(text), _("+++ %s (%s) became idle @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
291 gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
4184 | 292 g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
293 break; | |
294 case log_unidle: | |
4195 | 295 g_snprintf(text, sizeof(text), _("+++ %s (%s) returned from idle @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
296 gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
4184 | 297 g_snprintf(html, sizeof(html), "%s", text); |
298 break; | |
299 case log_quit: | |
4195 | 300 g_snprintf(text, sizeof(text), _("+++ Program exit @ %s"), full_date()); |
4184 | 301 g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
302 break; | |
303 } | |
4687 | 304 } else if (gaim_get_buddy_alias_only(who)) { |
4184 | 305 switch (what) { |
306 case log_signon: | |
4195 | 307 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) signed on @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
308 gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
4184 | 309 g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
310 break; | |
311 case log_signoff: | |
4195 | 312 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) signed off @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
313 gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
4184 | 314 g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
315 break; | |
316 case log_away: | |
4195 | 317 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) went away @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
318 gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
4184 | 319 g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
320 break; | |
321 case log_back: | |
4195 | 322 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) came back @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
323 gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
4184 | 324 g_snprintf(html, sizeof(html), "%s", text); |
325 break; | |
326 case log_idle: | |
4195 | 327 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) became idle @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
328 gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
4184 | 329 g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
330 break; | |
331 case log_unidle: | |
332 g_snprintf(text, sizeof(text), | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
333 _("%s (%s) reported that %s (%s) returned from idle @ %s"), gaim_account_get_username(account), |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5138
diff
changeset
|
334 gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
4184 | 335 g_snprintf(html, sizeof(html), "%s", text); |
336 break; | |
337 default: | |
338 fclose(fd); | |
339 return; | |
340 break; | |
341 } | |
342 } else { | |
343 switch (what) { | |
344 case log_signon: | |
4195 | 345 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s signed on @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
346 gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
4184 | 347 g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
348 break; | |
349 case log_signoff: | |
4195 | 350 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s signed off @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
351 gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
4184 | 352 g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
353 break; | |
354 case log_away: | |
4195 | 355 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s went away @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
356 gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
4184 | 357 g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
358 break; | |
359 case log_back: | |
4195 | 360 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s came back @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
361 gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
4184 | 362 g_snprintf(html, sizeof(html), "%s", text); |
363 break; | |
364 case log_idle: | |
4195 | 365 g_snprintf(text, sizeof(text), _("%s (%s) reported that %s became idle @ %s"), |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
366 gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
4184 | 367 g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
368 break; | |
369 case log_unidle: | |
370 g_snprintf(text, sizeof(text), | |
5563
9eb5b13fd412
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
371 _("%s (%s) reported that %s returned from idle @ %s"), gaim_account_get_username(account), |
5205
fefad67de2c7
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5138
diff
changeset
|
372 gc->prpl->info->name, who->name, full_date()); |
4184 | 373 g_snprintf(html, sizeof(html), "%s", text); |
374 break; | |
375 default: | |
376 fclose(fd); | |
377 return; | |
378 break; | |
379 } | |
380 } | |
381 | |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
382 if (gaim_prefs_get_bool("/gaim/gtk/logging/strip_html")) |
4184 | 383 fprintf(fd, "---- %s ----\n", text); |
5560
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
384 else if (gaim_prefs_get_bool("/gaim/gtk/logging/individual_logs")) |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
385 fprintf(fd, "<HR>%s<BR><HR><BR>\n", html); |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
386 else |
b7319c094153
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
387 fprintf(fd, "%s<BR>\n", html); |
4184 | 388 |
389 fclose(fd); | |
390 } | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
391 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
392 char *html_logize(const char *p) |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
393 { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
394 const char *temp_p; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
395 char *buffer_p; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
396 char *buffer_start; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
397 int num_cr = 0; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
398 int char_len = 0; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
399 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
400 for (temp_p = p; *temp_p != '\0'; temp_p++) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
401 char_len++; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
402 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
403 if ((*temp_p == '\n') || ((*temp_p == '<') && (*(temp_p + 1) == '!'))) |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
404 num_cr++; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
405 } |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
406 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
407 buffer_p = g_malloc(char_len + (4 * num_cr) + 1); |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
408 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
409 for (temp_p = p, buffer_start = buffer_p; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
410 *temp_p != '\0'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
411 temp_p++) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
412 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
413 if (*temp_p == '\n') { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
414 *buffer_p++ = '<'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
415 *buffer_p++ = 'B'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
416 *buffer_p++ = 'R'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
417 *buffer_p++ = '>'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
418 *buffer_p++ = '\n'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
419 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
420 } else if ((*temp_p == '<') && (*(temp_p + 1) == '!')) { |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
421 *buffer_p++ = '&'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
422 *buffer_p++ = 'l'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
423 *buffer_p++ = 't'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
424 *buffer_p++ = ';'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
425 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
426 } else |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
427 *buffer_p++ = *temp_p; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
428 } |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
429 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
430 *buffer_p = '\0'; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
431 |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
432 return buffer_start; |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
433 } |