Mercurial > pidgin
comparison src/log.c @ 7443:df50bd14e161
[gaim-migrate @ 8048]
whitespace
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Thu, 06 Nov 2003 02:46:07 +0000 |
parents | d42289ecf0ce |
children | 0e7a835e2433 |
comparison
equal
deleted
inserted
replaced
7442:d42289ecf0ce | 7443:df50bd14e161 |
---|---|
255 g_dir_close(dir); | 255 g_dir_close(dir); |
256 return list; | 256 return list; |
257 } | 257 } |
258 | 258 |
259 #if 0 /* Maybe some other time. */ | 259 #if 0 /* Maybe some other time. */ |
260 /**************** | 260 /**************** |
261 ** XML LOGGER ** | 261 ** XML LOGGER ** |
262 ****************/ | 262 ****************/ |
263 | 263 |
264 static const char *str_from_msg_type (GaimMessageFlags type) | 264 static const char *str_from_msg_type (GaimMessageFlags type) |
265 { | 265 { |
266 | 266 |
267 return ""; | 267 return ""; |
268 | 268 |
269 } | 269 } |
270 | 270 |
271 static void xml_logger_write(GaimLog *log, | 271 static void xml_logger_write(GaimLog *log, |
272 GaimMessageFlags type, | 272 GaimMessageFlags type, |
273 const char *from, time_t time, const char *message) | 273 const char *from, time_t time, const char *message) |
274 { | 274 { |
275 char date[64]; | 275 char date[64]; |
276 char *xhtml = NULL; | 276 char *xhtml = NULL; |
277 if (!log->logger_data) { | 277 if (!log->logger_data) { |
285 (gaim_find_prpl(gaim_account_get_protocol(log->account)))->list_icon(log->account, NULL); | 285 (gaim_find_prpl(gaim_account_get_protocol(log->account)))->list_icon(log->account, NULL); |
286 char *dir; | 286 char *dir; |
287 FILE *file; | 287 FILE *file; |
288 | 288 |
289 strftime(date, sizeof(date), "%F.%H%M%S.xml", localtime(&log->time)); | 289 strftime(date, sizeof(date), "%F.%H%M%S.xml", localtime(&log->time)); |
290 | 290 |
291 dir = g_build_filename(ud, "logs", NULL); | 291 dir = g_build_filename(ud, "logs", NULL); |
292 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); | 292 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); |
293 g_free(dir); | 293 g_free(dir); |
294 dir = g_build_filename(ud, "logs", | 294 dir = g_build_filename(ud, "logs", |
295 prpl, NULL); | 295 prpl, NULL); |
296 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); | 296 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); |
297 g_free(dir); | 297 g_free(dir); |
298 dir = g_build_filename(ud, "logs", | 298 dir = g_build_filename(ud, "logs", |
299 prpl, guy, NULL); | 299 prpl, guy, NULL); |
300 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); | 300 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); |
301 g_free(dir); | 301 g_free(dir); |
302 dir = g_build_filename(ud, "logs", | 302 dir = g_build_filename(ud, "logs", |
303 prpl, guy, gaim_normalize(log->account, log->name), NULL); | 303 prpl, guy, gaim_normalize(log->account, log->name), NULL); |
304 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); | 304 mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR); |
305 | 305 |
306 char *filename = g_build_filename(dir, date, NULL); | 306 char *filename = g_build_filename(dir, date, NULL); |
307 g_free(dir); | 307 g_free(dir); |
308 | 308 |
309 file = fopen(dir, "r"); | 309 file = fopen(dir, "r"); |
310 if(!file) | 310 if(!file) |
311 mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR); | 311 mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR); |
312 else | 312 else |
313 fclose(file); | 313 fclose(file); |
314 | 314 |
315 log->logger_data = fopen(filename, "a"); | 315 log->logger_data = fopen(filename, "a"); |
316 if (!log->logger_data) { | 316 if (!log->logger_data) { |
317 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename); | 317 gaim_debug(GAIM_DEBUG_ERROR, "log", "Could not create log file %s\n", filename); |
318 return; | 318 return; |
319 } | 319 } |
320 fprintf(log->logger_data, "<?xml version='1.0' encoding='UTF-8' ?>\n" | 320 fprintf(log->logger_data, "<?xml version='1.0' encoding='UTF-8' ?>\n" |
321 "<?xml-stylesheet href='file:///usr/src/web/htdocs/log-stylesheet.xsl' type='text/xml' ?>\n"); | 321 "<?xml-stylesheet href='file:///usr/src/web/htdocs/log-stylesheet.xsl' type='text/xml' ?>\n"); |
322 | 322 |
323 strftime(date, sizeof(date), "%F %T", localtime(&log->time)); | 323 strftime(date, sizeof(date), "%F %T", localtime(&log->time)); |
324 fprintf(log->logger_data, "<conversation time='%s' screenname='%s' protocol='%s'>\n", | 324 fprintf(log->logger_data, "<conversation time='%s' screenname='%s' protocol='%s'>\n", |
325 date, log->name, prpl); | 325 date, log->name, prpl); |
326 } | 326 } |
327 | 327 |
328 strftime(date, sizeof(date), "%T", localtime(&time)); | 328 strftime(date, sizeof(date), "%T", localtime(&time)); |
329 gaim_markup_html_to_xhtml(message, &xhtml, NULL); | 329 gaim_markup_html_to_xhtml(message, &xhtml, NULL); |
330 if (from) | 330 if (from) |
331 fprintf(log->logger_data, "<message %s %s from='%s' time='%s'>%s</message>\n", | 331 fprintf(log->logger_data, "<message %s %s from='%s' time='%s'>%s</message>\n", |
332 str_from_msg_type(type), | 332 str_from_msg_type(type), |
333 type & GAIM_MESSAGE_SEND ? "direction='sent'" : | 333 type & GAIM_MESSAGE_SEND ? "direction='sent'" : |
334 type & GAIM_MESSAGE_RECV ? "direction='received'" : "", | 334 type & GAIM_MESSAGE_RECV ? "direction='received'" : "", |
335 from, date, xhtml); | 335 from, date, xhtml); |
336 else | 336 else |
337 fprintf(log->logger_data, "<message %s %s time='%s'>%s</message>\n", | 337 fprintf(log->logger_data, "<message %s %s time='%s'>%s</message>\n", |
338 str_from_msg_type(type), | 338 str_from_msg_type(type), |
339 type & GAIM_MESSAGE_SEND ? "direction='sent'" : | 339 type & GAIM_MESSAGE_SEND ? "direction='sent'" : |
340 type & GAIM_MESSAGE_RECV ? "direction='received'" : "", | 340 type & GAIM_MESSAGE_RECV ? "direction='received'" : "", |
341 date, xhtml); | 341 date, xhtml): |
342 fflush(log->logger_data); | 342 fflush(log->logger_data); |
343 g_free(xhtml); | 343 g_free(xhtml); |
344 } | 344 } |
345 | 345 |
346 static void xml_logger_finalize(GaimLog *log) | 346 static void xml_logger_finalize(GaimLog *log) |
347 { | 347 { |
348 if (log->logger_data) { | 348 if (log->logger_data) { |
349 fprintf(log->logger_data, "</conversation>\n"); | 349 fprintf(log->logger_data, "</conversation>\n"); |
350 fclose(log->logger_data); | 350 fclose(log->logger_data); |
351 log->logger_data = NULL; | 351 log->logger_data = NULL; |
352 } | 352 } |
353 } | 353 } |
354 | 354 |
355 static GList *xml_logger_list(const char *sn, GaimAccount *account) | 355 static GList *xml_logger_list(const char *sn, GaimAccount *account) |
356 { | 356 { |
357 return log_lister_common(sn, account, ".xml", &xml_logger); | 357 return log_lister_common(sn, account, ".xml", &xml_logger); |
358 } | 358 } |
359 | 359 |