Mercurial > pidgin.yaz
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 |