comparison src/log.c @ 7556:219903d29401

[gaim-migrate @ 8170] And good night. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Tue, 18 Nov 2003 06:26:01 +0000
parents 450b25d8d953
children 54b370f7d9bf
comparison
equal deleted inserted replaced
7555:450b25d8d953 7556:219903d29401
79 gaim_str_strip_cr(ret); 79 gaim_str_strip_cr(ret);
80 return ret; 80 return ret;
81 } 81 }
82 return (_("<b><font color=\"red\">The logger has no read function</font></b>")); 82 return (_("<b><font color=\"red\">The logger has no read function</font></b>"));
83 } 83 }
84
85 int gaim_log_get_size(GaimLog *log)
86 {
87 g_return_val_if_fail(log && log->logger, 0);
88 if (log->logger->size)
89 return log->logger->size(log);
90 return 0;
91 }
92
93 int gaim_log_get_total_size(const char *name, GaimAccount *account)
94 {
95 GList *logs = gaim_log_get_logs(name, account);
96 int size = 0;
97
98 while (logs) {
99 GList *logs2 = logs->next;
100 GaimLog *log = (GaimLog*)(logs->data);
101 size += gaim_log_get_size(log);
102 g_free(log->name);
103 g_free(log);
104 g_list_free_1(logs);
105 logs = logs2;
106 }
107 return size;
108 }
84 109
85 /**************************************************************************** 110 /****************************************************************************
86 * LOGGER FUNCTIONS ********************************************************* 111 * LOGGER FUNCTIONS *********************************************************
87 ****************************************************************************/ 112 ****************************************************************************/
88 113
108 133
109 GaimLogLogger *gaim_log_logger_new(void(*create)(GaimLog *), 134 GaimLogLogger *gaim_log_logger_new(void(*create)(GaimLog *),
110 void(*write)(GaimLog *, GaimMessageFlags, const char *, 135 void(*write)(GaimLog *, GaimMessageFlags, const char *,
111 time_t, const char *), 136 time_t, const char *),
112 void(*finalize)(GaimLog *), GList*(*list)(const char*, GaimAccount*), 137 void(*finalize)(GaimLog *), GList*(*list)(const char*, GaimAccount*),
113 char*(*read)(GaimLog*, GaimLogReadFlags*)) 138 char*(*read)(GaimLog*, GaimLogReadFlags*),
139 int(*size)(GaimLog*))
114 { 140 {
115 GaimLogLogger *logger = g_new0(GaimLogLogger, 1); 141 GaimLogLogger *logger = g_new0(GaimLogLogger, 1);
116 logger->create = create; 142 logger->create = create;
117 logger->write = write; 143 logger->write = write;
118 logger->finalize = finalize; 144 logger->finalize = finalize;
119 logger->list = list; 145 logger->list = list;
120 logger->read = read; 146 logger->read = read;
147 logger->size = size;
121 return logger; 148 return logger;
122 } 149 }
123 150
124 void gaim_log_logger_free(GaimLogLogger *logger) 151 void gaim_log_logger_free(GaimLogLogger *logger)
125 { 152 {
265 } 292 }
266 } 293 }
267 g_dir_close(dir); 294 g_dir_close(dir);
268 g_free(path); 295 g_free(path);
269 return list; 296 return list;
297 }
298
299 /* Only to be used with logs listed from log_lister_common */
300 int log_sizer_common(GaimLog *log)
301 {
302 struct stat st;
303
304 if (stat((char*)(log->logger_data), &st))
305 st.st_size = 0;
306
307 return st.st_size;
270 } 308 }
271 309
272 #if 0 /* Maybe some other time. */ 310 #if 0 /* Maybe some other time. */
273 /**************** 311 /****************
274 ** XML LOGGER ** 312 ** XML LOGGER **
504 N_("HTML"), "html", 542 N_("HTML"), "html",
505 NULL, 543 NULL,
506 html_logger_write, 544 html_logger_write,
507 html_logger_finalize, 545 html_logger_finalize,
508 html_logger_list, 546 html_logger_list,
509 html_logger_read 547 html_logger_read,
548 log_sizer_common
510 }; 549 };
511 550
512 551
513 552
514 553
635 N_("Plain text"), "txt", 674 N_("Plain text"), "txt",
636 NULL, 675 NULL,
637 txt_logger_write, 676 txt_logger_write,
638 txt_logger_finalize, 677 txt_logger_finalize,
639 txt_logger_list, 678 txt_logger_list,
640 txt_logger_read 679 txt_logger_read,
680 log_sizer_common
641 }; 681 };
642 682
643 /**************** 683 /****************
644 * OLD LOGGER *** 684 * OLD LOGGER ***
645 ****************/ 685 ****************/
750 if(strstr(read, "<BR>")) 790 if(strstr(read, "<BR>"))
751 *flags |= GAIM_LOG_READ_NO_NEWLINE; 791 *flags |= GAIM_LOG_READ_NO_NEWLINE;
752 return read; 792 return read;
753 } 793 }
754 794
795 int old_logger_size (GaimLog *log)
796 {
797 struct old_logger_data *data = log->logger_data;
798 return data->length;
799 }
800
755 static GaimLogLogger old_logger = { 801 static GaimLogLogger old_logger = {
756 "old logger", "old", 802 "old logger", "old",
757 NULL, NULL, NULL, 803 NULL, NULL, NULL,
758 old_logger_list, 804 old_logger_list,
759 old_logger_read 805 old_logger_read