/soc/2015/igor.gajowiak/chatlog: 4d5e7685a967: Fixed date parsin...
Igor Gajowiak
igor.gajowiak at gmail.com
Mon Aug 17 17:52:56 EDT 2015
Changeset: 4d5e7685a9670c24f902b19e24bf8ed638d0933c
Author: Igor Gajowiak <igor.gajowiak at gmail.com>
Date: 2015-08-17 23:52 +0200
Branch: default
URL: https://hg.pidgin.im/soc/2015/igor.gajowiak/chatlog/rev/4d5e7685a967
Description:
Fixed date parsing in the legacy log.
diffstat:
libpurple/plugins/log/legacylog.c | 24 +++++++++++++++++++-----
1 files changed, 19 insertions(+), 5 deletions(-)
diffs (48 lines):
diff --git a/libpurple/plugins/log/legacylog.c b/libpurple/plugins/log/legacylog.c
--- a/libpurple/plugins/log/legacylog.c
+++ b/libpurple/plugins/log/legacylog.c
@@ -336,16 +336,29 @@ parse_timestamp(const gchar *date, const
return FALSE;
}
+ /* If there is a date in time string then probably day changed */
g_match_info_fetch_pos(info, 1, &begin, &end);
+ if (begin != -1) {
+ g_match_info_fetch_pos(info, 2, &begin, &end);
+ month = g_ascii_strtoull(&date[begin], NULL, 10);
+
+ g_match_info_fetch_pos(info, 3, &begin, &end);
+ day = g_ascii_strtoull(&date[begin], NULL, 10);
+
+ g_match_info_fetch_pos(info, 4, &begin, &end);
+ year = g_ascii_strtoull(&date[begin], NULL, 10);
+ }
+
+ g_match_info_fetch_pos(info, 5, &begin, &end);
guint64 hour = g_ascii_strtoull(&time[begin], NULL, 10);
- g_match_info_fetch_pos(info, 2, &begin, &end);
+ g_match_info_fetch_pos(info, 6, &begin, &end);
guint64 min = g_ascii_strtoull(&time[begin], NULL, 10);
- g_match_info_fetch_pos(info, 3, &begin, &end);
+ g_match_info_fetch_pos(info, 7, &begin, &end);
guint64 sec = g_ascii_strtoull(&time[begin], NULL, 10);
- g_match_info_fetch_pos(info, 4, &begin, &end);
+ g_match_info_fetch_pos(info, 8, &begin, &end);
if (g_strcmp0(&time[begin], "PM") == 0)
hour += 12;
@@ -710,8 +723,9 @@ plugin_load(PurplePlugin *plugin, GError
date_regex = g_regex_new("^([\\d]{4})-([\\d]{2})-([\\d]{2})\\.",0, 0, NULL);
g_assert(date_regex);
- time_regex = g_regex_new("^([\\d]{2}):([\\d]{2}):([\\d]{2}) (AM|PM)",
- 0, 0, NULL);
+ time_regex = g_regex_new(
+ "^(([\\d]{2})/([\\d]{2})/([\\d]{4}) )?([\\d]{2}):([\\d]{2}):([\\d]{2}) "
+ "(AM|PM)", 0, 0, NULL);
g_assert(time_regex);
contact_regex = g_regex_new("^(.*)\\.chat$", 0, 0, NULL);
More information about the Commits
mailing list