]> source.dussan.org Git - rspamd.git/commitdiff
Add lines count calculation to text parts.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 29 Apr 2015 14:33:21 +0000 (15:33 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 29 Apr 2015 14:33:21 +0000 (15:33 +0100)
src/libmime/message.c
src/libmime/message.h

index d29aeb2cd477eb28a61d0e45415d9fbd4f0ae9a1..c7b01a7a04acf49833df84b67a933e50ad870cb9 100644 (file)
@@ -1239,7 +1239,8 @@ process_text_part (struct rspamd_task *task,
        gboolean is_empty)
 {
        struct mime_text_part *text_part;
-       const gchar *cd;
+       const gchar *cd, *p, *c;
+       guint remain;
 
        /* Skip attachements */
 #ifndef GMIME24
@@ -1334,6 +1335,21 @@ process_text_part (struct rspamd_task *task,
                        text_part->content->len, IS_PART_UTF (text_part), task->cfg->min_word_len,
                        text_part->urls_offset, TRUE);
        rspamd_normalize_text_part (task, text_part);
+
+       /* Calculate number of lines */
+       p = text_part->content->data;
+       remain = text_part->content->len;
+       c = p;
+
+       while (p != NULL && remain > 0) {
+               p = memchr (c, '\n', remain);
+
+               if (p != NULL) {
+                       text_part->nlines ++;
+                       remain -= p - c + 1;
+                       c = p + 1;
+               }
+       }
 }
 
 #ifdef GMIME24
index 0f3a0ccb47202ce66d58d7db39d4f48b7f3f7e89..c751fc226acd00d5a43699f5191ab4f76ad13cfc 100644 (file)
@@ -47,6 +47,7 @@ struct mime_text_part {
        rspamd_fstring_t *diff_str;
        GArray *words;
        GArray *normalized_words;
+       guint nlines;
 };
 
 struct received_header {