diff options
author | Carl Worth <cworth@cworth.org> | 2010-01-05 19:14:07 -0800 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-01-06 10:32:06 -0800 |
commit | 6ef6ddba80116e6c1cbaca494f42a63d924b741b (patch) | |
tree | 0982e97df672de82cfba9184df62f21e26a63265 /lib/index.cc | |
parent | 3fa2385f7cc367725ea74a08237158bd5a4163d7 (diff) |
Index content from citations and signatures.
In the presentation we often omit citations and signatures, but this
is not content that should be omitted from the index, (especially
when the citation detection is wrong---see cases where a line
beginning with "From" is corrupted to ">From" by mail processing
tools).
Diffstat (limited to 'lib/index.cc')
-rw-r--r-- | lib/index.cc | 60 |
1 files changed, 4 insertions, 56 deletions
diff --git a/lib/index.cc b/lib/index.cc index e58bc87..7e2da08 100644 --- a/lib/index.cc +++ b/lib/index.cc @@ -123,60 +123,6 @@ skip_re_in_subject (const char *subject) return s; } -/* Given a string representing the body of a message, generate terms - * for it, (skipping quoted portions and signatures). - * - * This function is evil in that it modifies the string passed to it, - * (changing some newlines into '\0'). - */ -static void -_index_body_text (notmuch_message_t *message, char *body) -{ - char *line, *line_end, *next_line; - - if (body == NULL) - return; - - next_line = body; - - while (1) { - line = next_line; - if (*line == '\0') - break; - - next_line = strchr (line, '\n'); - if (next_line == NULL) { - next_line = line + strlen (line); - } - line_end = next_line - 1; - - /* Get to the next non-blank line. */ - while (*next_line == '\n') - next_line++; - - /* Skip blank lines. */ - if (line_end < line) - continue; - - /* Skip lines that are quotes. */ - if (*line == '>') - continue; - - /* Also skip lines introducing a quote on the next line. */ - if (*line_end == ':' && *next_line == '>') - continue; - - /* Finally, bail as soon as we see a signature. */ - /* XXX: Should only do this if "near" the end of the message. */ - if (strncmp (line, "-- ", 3) == 0) - break; - - *(line_end + 1) = '\0'; - - _notmuch_message_gen_terms (message, NULL, line); - } -} - /* Callback to generate terms for each mime part of a message. */ static void _index_mime_part (notmuch_message_t *message, @@ -249,9 +195,11 @@ _index_mime_part (notmuch_message_t *message, g_byte_array_append (byte_array, (guint8 *) "\0", 1); body = (char *) g_byte_array_free (byte_array, FALSE); - _index_body_text (message, body); + if (body) { + _notmuch_message_gen_terms (message, NULL, body); - free (body); + free (body); + } } notmuch_status_t |