Sat, 05 Jul 2003 21:54:19 +0000
[gaim-migrate @ 6485]
gaim_request_input() now takes a masked bool, which, if enabled, masks the
text on the entry field so that it cannot be seen. Good for password input
requests, and what do you know, that's why this is written!
| 4184 | 1 | /* --------------------------------------------------- |
| 2 | * Function to remove a log file entry | |
| 3 | * --------------------------------------------------- | |
| 4 | */ | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
5 | #include "internal.h" |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
6 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
7 | #include "conversation.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
8 | #include "debug.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
9 | #include "log.h" |
| 4184 | 10 | #include "multi.h" |
|
5872
754c63f29b77
[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
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
14 | #include "util.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
15 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
16 | #include "gtkconv.h" |
| 4184 | 17 | |
|
5872
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
18 | #include "ui.h" |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
19 | |
|
754c63f29b77
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5839
diff
changeset
|
20 | GList *log_conversations = NULL; |
|
4192
fd80a226a2d9
[gaim-migrate @ 4423]
Herman Bloggs <herman@bluedigits.com>
parents:
4184
diff
changeset
|
21 | |
| 4184 | 22 | void rm_log(struct log_conversation *a) |
| 23 | { | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
24 | GaimConversation *cnv = gaim_find_conversation(a->name); |
| 4184 | 25 | |
| 5528 | 26 | /* Added the following if statements for sanity check */ |
| 27 | if (!a) | |
| 28 | { | |
| 29 | gaim_notify_error (NULL, NULL, _("Error in specifying buddy conversation."), NULL); | |
| 30 | return; | |
| 31 | } | |
| 32 | cnv = gaim_find_conversation(a->name); | |
| 33 | if (!cnv) | |
| 34 | { | |
| 35 | gaim_notify_error (NULL, NULL, _("Unable to find conversation log"), NULL); | |
| 36 | return; | |
| 37 | } | |
| 38 | ||
| 4184 | 39 | log_conversations = g_list_remove(log_conversations, a); |
| 40 | } | |
| 41 | ||
| 42 | struct log_conversation *find_log_info(const char *name) | |
| 43 | { | |
| 44 | char *pname = g_malloc(BUF_LEN); | |
| 45 | GList *lc = log_conversations; | |
| 46 | struct log_conversation *l; | |
| 47 | ||
| 48 | ||
| 49 | strcpy(pname, normalize(name)); | |
| 50 | ||
| 51 | while (lc) { | |
| 52 | l = (struct log_conversation *)lc->data; | |
| 4793 | 53 | if (!gaim_utf8_strcasecmp(pname, normalize(l->name))) { |
| 4184 | 54 | g_free(pname); |
| 55 | return l; | |
| 56 | } | |
| 57 | lc = lc->next; | |
| 58 | } | |
| 59 | g_free(pname); | |
| 60 | return NULL; | |
| 61 | } | |
| 62 | ||
| 63 | void update_log_convs() | |
| 64 | { | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
65 | GList *cnv; |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
66 | GaimConversation *c; |
|
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
67 | GaimGtkConversation *gtkconv; |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
68 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
69 | for (cnv = gaim_get_conversations(); cnv != NULL; cnv = cnv->next) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
70 | |
|
5676
d3c2fdaf4821
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5593
diff
changeset
|
71 | c = (GaimConversation *)cnv->data; |
| 4184 | 72 | |
|
4398
ba901bb913e5
[gaim-migrate @ 4667]
Christian Hammond <chipx86@chipx86.com>
parents:
4359
diff
changeset
|
73 | if (!GAIM_IS_GTK_CONVERSATION(c)) |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
74 | continue; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
75 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
76 | gtkconv = GAIM_GTK_CONVERSATION(c); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
77 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
78 | if (gtkconv->toolbar.log) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
79 | if (gaim_conversation_get_type(c) == GAIM_CONV_CHAT) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
80 | gtk_widget_set_sensitive(GTK_WIDGET(gtkconv->toolbar.log), |
| 5548 | 81 | !gaim_prefs_get_bool("/gaim/gtk/logging/log_chats")); |
| 4184 | 82 | else |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
83 | gtk_widget_set_sensitive(GTK_WIDGET(gtkconv->toolbar.log), |
| 5548 | 84 | !gaim_prefs_get_bool("/gaim/gtk/logging/log_ims")); |
| 4184 | 85 | } |
| 86 | } | |
| 87 | } | |
| 88 | ||
| 89 | static FILE *open_gaim_log_file(const char *name, int *flag) | |
| 90 | { | |
| 91 | char *buf; | |
| 92 | char *buf2; | |
| 93 | char log_all_file[256]; | |
| 94 | struct stat st; | |
| 95 | FILE *fd; | |
| 96 | #ifndef _WIN32 | |
| 97 | int res; | |
| 98 | #endif | |
| 99 | gchar *gaim_dir; | |
| 100 | ||
| 101 | buf = g_malloc(BUF_LONG); | |
| 102 | buf2 = g_malloc(BUF_LONG); | |
| 103 | gaim_dir = gaim_user_dir(); | |
| 104 | ||
| 105 | /* Dont log yourself */ | |
| 106 | strncpy(log_all_file, gaim_dir, 256); | |
| 107 | ||
| 108 | #ifndef _WIN32 | |
| 109 | stat(log_all_file, &st); | |
| 110 | if (!S_ISDIR(st.st_mode)) | |
| 111 | unlink(log_all_file); | |
| 112 | ||
| 113 | fd = fopen(log_all_file, "r"); | |
| 114 | ||
| 115 | if (!fd) { | |
| 116 | res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); | |
| 117 | if (res < 0) { | |
| 118 | g_snprintf(buf, BUF_LONG, _("Unable to make directory %s for logging"), | |
| 119 | log_all_file); | |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
120 | gaim_notify_error(NULL, NULL, buf, NULL); |
| 4184 | 121 | g_free(buf); |
| 122 | g_free(buf2); | |
| 123 | return NULL; | |
| 124 | } | |
| 125 | } else | |
| 126 | fclose(fd); | |
| 127 | ||
| 128 | g_snprintf(log_all_file, 256, "%s" G_DIR_SEPARATOR_S "logs", gaim_dir); | |
| 129 | ||
| 130 | if (stat(log_all_file, &st) < 0) | |
| 131 | *flag = 1; | |
| 132 | if (!S_ISDIR(st.st_mode)) | |
| 133 | unlink(log_all_file); | |
| 134 | ||
| 135 | fd = fopen(log_all_file, "r"); | |
| 136 | if (!fd) { | |
| 137 | res = mkdir(log_all_file, S_IRUSR | S_IWUSR | S_IXUSR); | |
| 138 | if (res < 0) { | |
| 139 | g_snprintf(buf, BUF_LONG, _("Unable to make directory %s for logging"), | |
| 140 | log_all_file); | |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
141 | gaim_notify_error(NULL, NULL, buf, NULL); |
| 4184 | 142 | g_free(buf); |
| 143 | g_free(buf2); | |
| 144 | return NULL; | |
| 145 | } | |
| 146 | } else | |
| 147 | fclose(fd); | |
| 148 | #else /* _WIN32 */ | |
| 149 | g_snprintf(log_all_file, 256, "%s" G_DIR_SEPARATOR_S "logs", gaim_dir); | |
| 150 | ||
| 151 | if( _mkdir(log_all_file) < 0 && errno != EEXIST ) { | |
| 152 | g_snprintf(buf, BUF_LONG, _("Unable to make directory %s for logging"), log_all_file); | |
|
5436
a0e0bacaa196
[gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents:
5314
diff
changeset
|
153 | gaim_notify_error(NULL, NULL, buf, NULL); |
| 4184 | 154 | g_free(buf); |
| 155 | g_free(buf2); | |
| 156 | return NULL; | |
| 157 | } | |
| 158 | #endif | |
| 159 | ||
| 160 | g_snprintf(log_all_file, 256, "%s" G_DIR_SEPARATOR_S "logs" G_DIR_SEPARATOR_S "%s", gaim_dir, name); | |
| 161 | if (stat(log_all_file, &st) < 0) | |
| 162 | *flag = 1; | |
| 163 | ||
|
5211
94d9756c381f
[gaim-migrate @ 5581]
Christian Hammond <chipx86@chipx86.com>
parents:
5205
diff
changeset
|
164 | gaim_debug(GAIM_DEBUG_INFO, "log", "Logging to: \"%s\"\n", log_all_file); |
| 4184 | 165 | |
| 166 | fd = fopen(log_all_file, "a"); | |
| 167 | ||
| 168 | g_free(buf); | |
| 169 | g_free(buf2); | |
| 170 | return fd; | |
| 171 | } | |
| 172 | ||
| 173 | static FILE *open_system_log_file(char *name) | |
| 174 | { | |
| 175 | int x; | |
| 176 | ||
| 177 | if (name) | |
| 178 | return open_log_file(name, 2); | |
| 179 | else | |
| 180 | return open_gaim_log_file("system", &x); | |
| 181 | } | |
| 182 | ||
| 183 | FILE *open_log_file(const char *name, int is_chat) | |
| 184 | { | |
| 185 | struct stat st; | |
| 186 | char realname[256]; | |
| 187 | struct log_conversation *l; | |
| 188 | FILE *fd; | |
| 189 | int flag = 0; | |
| 190 | ||
|
5554
a197dfd0d8b3
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
191 | if (((is_chat == 2) && !gaim_prefs_get_bool("/gaim/gtk/logging/individual_logs")) |
| 5548 | 192 | || ((is_chat == 1) && !gaim_prefs_get_bool("/gaim/gtk/logging/log_chats")) |
| 193 | || ((is_chat == 0) && !gaim_prefs_get_bool("/gaim/gtk/logging/log_ims"))) { | |
| 4184 | 194 | |
| 195 | l = find_log_info(name); | |
| 196 | if (!l) | |
| 197 | return NULL; | |
| 198 | ||
| 199 | if (stat(l->filename, &st) < 0) | |
| 200 | flag = 1; | |
| 201 | ||
| 202 | fd = fopen(l->filename, "a"); | |
| 203 | ||
| 204 | if (flag) { /* is a new file */ | |
|
5554
a197dfd0d8b3
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
205 | if (gaim_prefs_get_bool("/gaim/gtk/logging/strip_html")) { |
| 4184 | 206 | fprintf(fd, _("IM Sessions with %s\n"), name); |
| 207 | } else { | |
| 208 | fprintf(fd, "<HTML><HEAD><TITLE>"); | |
| 209 | fprintf(fd, _("IM Sessions with %s"), name); | |
| 5138 | 210 | fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"#ffffff\">\n"); |
| 4184 | 211 | } |
| 212 | } | |
| 213 | ||
| 214 | return fd; | |
| 215 | } | |
| 216 | ||
| 217 | g_snprintf(realname, sizeof(realname), "%s.log", normalize(name)); | |
| 218 | fd = open_gaim_log_file(realname, &flag); | |
| 219 | ||
| 220 | if (fd && flag) { /* is a new file */ | |
|
5554
a197dfd0d8b3
[gaim-migrate @ 5955]
Christian Hammond <chipx86@chipx86.com>
parents:
5548
diff
changeset
|
221 | if (gaim_prefs_get_bool("/gaim/gtk/logging/strip_html")) { |
| 4184 | 222 | fprintf(fd, _("IM Sessions with %s\n"), name); |
| 223 | } else { | |
| 224 | fprintf(fd, "<HTML><HEAD><TITLE>"); | |
| 225 | fprintf(fd, _("IM Sessions with %s"), name); | |
| 5138 | 226 | fprintf(fd, "</TITLE></HEAD><BODY BGCOLOR=\"#ffffff\">\n"); |
| 4184 | 227 | } |
| 228 | } | |
| 229 | ||
| 230 | return fd; | |
| 231 | } | |
| 232 | ||
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
233 | void system_log(enum log_event what, GaimConnection *gc, |
| 4184 | 234 | struct buddy *who, int why) |
| 235 | { | |
|
5896
4856432d47c6
[gaim-migrate @ 6328]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
236 | GaimAccount *account = NULL; |
| 4184 | 237 | FILE *fd; |
| 238 | char text[256], html[256]; | |
| 239 | ||
|
5896
4856432d47c6
[gaim-migrate @ 6328]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
240 | if (gc != NULL) |
|
4856432d47c6
[gaim-migrate @ 6328]
Mark Doliner <markdoliner@pidgin.im>
parents:
5872
diff
changeset
|
241 | account = gaim_connection_get_account(gc); |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
242 | |
| 5839 | 243 | if ((why & OPT_LOG_MY_SIGNON && |
| 244 | !gaim_prefs_get_bool("/gaim/gtk/logging/log_own_states")) || | |
| 245 | (why & OPT_LOG_BUDDY_SIGNON && | |
| 246 | !gaim_prefs_get_bool("/gaim/gtk/logging/log_signon_signoff")) || | |
| 247 | (why & OPT_LOG_BUDDY_IDLE && | |
| 248 | !gaim_prefs_get_bool("/gaim/gtk/logging/log_idle_state")) || | |
| 249 | (why & OPT_LOG_BUDDY_AWAY && | |
| 250 | !gaim_prefs_get_bool("/gaim/gtk/logging/log_away_state"))) { | |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
251 | |
| 4184 | 252 | return; |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
253 | } |
| 4184 | 254 | |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
255 | if (gaim_prefs_get_bool("/gaim/gtk/logging/individual_logs")) { |
| 4184 | 256 | if (why & OPT_LOG_MY_SIGNON) |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
257 | fd = open_system_log_file(gc ? (char *)gaim_account_get_username(account) : NULL); |
| 4184 | 258 | else |
| 259 | fd = open_system_log_file(who->name); | |
| 260 | } else | |
| 261 | fd = open_system_log_file(NULL); | |
| 262 | ||
| 263 | if (!fd) | |
| 264 | return; | |
| 265 | ||
| 266 | if (why & OPT_LOG_MY_SIGNON) { | |
| 267 | switch (what) { | |
| 268 | case log_signon: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
269 | g_snprintf(text, sizeof(text), _("+++ %s (%s) signed on @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
270 | gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
| 4184 | 271 | g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
| 272 | break; | |
| 273 | case log_signoff: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
274 | g_snprintf(text, sizeof(text), _("+++ %s (%s) signed off @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
275 | gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
| 4184 | 276 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
| 277 | break; | |
| 278 | case log_away: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
279 | g_snprintf(text, sizeof(text), _("+++ %s (%s) changed away state @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
280 | gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
| 4184 | 281 | g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
| 282 | break; | |
| 283 | case log_back: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
284 | g_snprintf(text, sizeof(text), _("+++ %s (%s) came back @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
285 | gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
| 4184 | 286 | g_snprintf(html, sizeof(html), "%s", text); |
| 287 | break; | |
| 288 | case log_idle: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
289 | g_snprintf(text, sizeof(text), _("+++ %s (%s) became idle @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
290 | gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
| 4184 | 291 | g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
| 292 | break; | |
| 293 | case log_unidle: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
294 | g_snprintf(text, sizeof(text), _("+++ %s (%s) returned from idle @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
295 | gaim_account_get_username(account), gc->prpl->info->name, full_date()); |
| 4184 | 296 | g_snprintf(html, sizeof(html), "%s", text); |
| 297 | break; | |
| 298 | case log_quit: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
299 | g_snprintf(text, sizeof(text), _("+++ Program exit @ %s"), full_date()); |
| 4184 | 300 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
| 301 | break; | |
| 302 | } | |
| 4687 | 303 | } else if (gaim_get_buddy_alias_only(who)) { |
| 4184 | 304 | switch (what) { |
| 305 | case log_signon: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
306 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) signed on @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
307 | gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
| 4184 | 308 | g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
| 309 | break; | |
| 310 | case log_signoff: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
311 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) signed off @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
312 | gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
| 4184 | 313 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
| 314 | break; | |
| 315 | case log_away: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
316 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) went away @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
317 | gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
| 4184 | 318 | g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
| 319 | break; | |
| 320 | case log_back: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
321 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) came back @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
322 | gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
| 4184 | 323 | g_snprintf(html, sizeof(html), "%s", text); |
| 324 | break; | |
| 325 | case log_idle: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
326 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s (%s) became idle @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
327 | gaim_account_get_username(account), gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
| 4184 | 328 | g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
| 329 | break; | |
| 330 | case log_unidle: | |
| 331 | g_snprintf(text, sizeof(text), | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
332 | _("%s (%s) reported that %s (%s) returned from idle @ %s"), gaim_account_get_username(account), |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5138
diff
changeset
|
333 | gc->prpl->info->name, gaim_get_buddy_alias(who), who->name, full_date()); |
| 4184 | 334 | g_snprintf(html, sizeof(html), "%s", text); |
| 335 | break; | |
| 336 | default: | |
| 337 | fclose(fd); | |
| 338 | return; | |
| 339 | break; | |
| 340 | } | |
| 341 | } else { | |
| 342 | switch (what) { | |
| 343 | case log_signon: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
344 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s signed on @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
345 | gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
| 4184 | 346 | g_snprintf(html, sizeof(html), "<B>%s</B>", text); |
| 347 | break; | |
| 348 | case log_signoff: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
349 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s signed off @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
350 | gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
| 4184 | 351 | g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); |
| 352 | break; | |
| 353 | case log_away: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
354 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s went away @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
355 | gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
| 4184 | 356 | g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); |
| 357 | break; | |
| 358 | case log_back: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
359 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s came back @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
360 | gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
| 4184 | 361 | g_snprintf(html, sizeof(html), "%s", text); |
| 362 | break; | |
| 363 | case log_idle: | |
|
4195
37449660e3d5
[gaim-migrate @ 4426]
Nicolás Lichtmaier <nico@lichtmaier.com.ar>
parents:
4192
diff
changeset
|
364 | g_snprintf(text, sizeof(text), _("%s (%s) reported that %s became idle @ %s"), |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
365 | gaim_account_get_username(account), gc->prpl->info->name, who->name, full_date()); |
| 4184 | 366 | g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); |
| 367 | break; | |
| 368 | case log_unidle: | |
| 369 | g_snprintf(text, sizeof(text), | |
|
5563
d5a7852aa0cb
[gaim-migrate @ 5965]
Christian Hammond <chipx86@chipx86.com>
parents:
5560
diff
changeset
|
370 | _("%s (%s) reported that %s returned from idle @ %s"), gaim_account_get_username(account), |
|
5205
242b8aa81328
[gaim-migrate @ 5573]
Christian Hammond <chipx86@chipx86.com>
parents:
5138
diff
changeset
|
371 | gc->prpl->info->name, who->name, full_date()); |
| 4184 | 372 | g_snprintf(html, sizeof(html), "%s", text); |
| 373 | break; | |
| 374 | default: | |
| 375 | fclose(fd); | |
| 376 | return; | |
| 377 | break; | |
| 378 | } | |
| 379 | } | |
| 380 | ||
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
381 | if (gaim_prefs_get_bool("/gaim/gtk/logging/strip_html")) |
| 4184 | 382 | fprintf(fd, "---- %s ----\n", text); |
|
5560
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
383 | else if (gaim_prefs_get_bool("/gaim/gtk/logging/individual_logs")) |
|
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
384 | fprintf(fd, "<HR>%s<BR><HR><BR>\n", html); |
|
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
385 | else |
|
7cd6678f838b
[gaim-migrate @ 5961]
Christian Hammond <chipx86@chipx86.com>
parents:
5554
diff
changeset
|
386 | fprintf(fd, "%s<BR>\n", html); |
| 4184 | 387 | |
| 388 | fclose(fd); | |
| 389 | } | |
|
4359
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
390 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
391 | char *html_logize(const char *p) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
392 | { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
393 | const char *temp_p; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
394 | char *buffer_p; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
395 | char *buffer_start; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
396 | int num_cr = 0; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
397 | int char_len = 0; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
398 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
399 | for (temp_p = p; *temp_p != '\0'; temp_p++) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
400 | char_len++; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
401 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
402 | if ((*temp_p == '\n') || ((*temp_p == '<') && (*(temp_p + 1) == '!'))) |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
403 | num_cr++; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
404 | } |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
405 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
406 | buffer_p = g_malloc(char_len + (4 * num_cr) + 1); |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
407 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
408 | for (temp_p = p, buffer_start = buffer_p; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
409 | *temp_p != '\0'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
410 | temp_p++) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
411 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
412 | if (*temp_p == '\n') { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
413 | *buffer_p++ = '<'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
414 | *buffer_p++ = 'B'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
415 | *buffer_p++ = 'R'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
416 | *buffer_p++ = '>'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
417 | *buffer_p++ = '\n'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
418 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
419 | } else if ((*temp_p == '<') && (*(temp_p + 1) == '!')) { |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
420 | *buffer_p++ = '&'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
421 | *buffer_p++ = 'l'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
422 | *buffer_p++ = 't'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
423 | *buffer_p++ = ';'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
424 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
425 | } else |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
426 | *buffer_p++ = *temp_p; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
427 | } |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
428 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
429 | *buffer_p = '\0'; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
430 | |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
431 | return buffer_start; |
|
cf899ee07d1d
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4227
diff
changeset
|
432 | } |