[Tracker] Converting to utf8 while parsing Thunderbird TMS files
- From: Michal Pryc <Michal Pryc Sun COM>
- To: tracker-list gnome org
- Cc: biebl debian org
- Subject: [Tracker] Converting to utf8 while parsing Thunderbird TMS files
- Date: Fri, 21 Sep 2007 14:11:34 +0100
Hello,
This patch adds converting to utf8, while parsing TMS files if needed.
Michael Biebl had problem with u "umlaut" ü.
This patch tries to convert to utf8 if it fails, than the TMS is not
indexed.
--
best
Michal Pryc
Index: tracker-email-thunderbird.c
===================================================================
--- tracker-email-thunderbird.c (revision 850)
+++ tracker-email-thunderbird.c (working copy)
@@ -203,6 +203,7 @@
MailMessage *mail_msg;
gsize length;
gchar *contents = NULL;
+ gchar *parse;
GMarkupParseContext *context;
GError *error = NULL;
TmsParserData *parser_data;
@@ -222,25 +223,39 @@
return mail_msg;
}
+ if(g_utf8_validate(contents, -1, NULL) == FALSE) {
+ parse = g_filename_to_utf8(contents, strlen(contents), NULL, NULL, &error);
+ if(!parse) {
+ tracker_log ("Error converting to utf8: %s\nIn file: %s\n", error->message, path);
+ g_error_free(error);
+ g_free(contents);
+ return mail_msg;
+ }
+ g_free(contents);
+ } else {
+ parse = g_strdup(contents);
+ g_free(contents);
+ }
+
context = g_markup_parse_context_new(&tms_file_parser, G_MARKUP_TREAT_CDATA_AS_TEXT,
parser_data, free_parser_data );
-
- if (!g_markup_parse_context_parse(context, contents, length, NULL)) {
+
+ if (!g_markup_parse_context_parse(context, parse, length, NULL)) {
tracker_log ("Error parsing context with length \n");
g_markup_parse_context_free(context);
- g_free(contents);
+ g_free(parse);
return mail_msg;
}
if (!g_markup_parse_context_end_parse(context, NULL)) {
tracker_log ("Error parsing context \n");;
g_markup_parse_context_free(context);
- g_free(contents);
+ g_free(parse);
return mail_msg;
}
g_markup_parse_context_free(context);
- g_free(contents);
+ g_free(parse);
return mail_msg;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]