]> source.dussan.org Git - rspamd.git/commitdiff
Forgot in previous commit.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Fri, 12 Oct 2012 14:43:07 +0000 (18:43 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Fri, 12 Oct 2012 14:43:07 +0000 (18:43 +0400)
src/diff.h
src/expressions.c

index e10fe943d3417f06b5b674601cade2c3c4969c52..cea5e5d4ac11c8912c2ad39588d31bf08793dfc7 100644 (file)
@@ -64,4 +64,11 @@ gint rspamd_diff(const void *a, gint aoff, gint n, const void *b, gint boff, gin
  */
 guint32 compare_diff_distance (f_str_t *s1, f_str_t *s2);
 
+/*
+ * Calculate distance between two strings (in percentage) using diff algorithm. Strings are normalized before:
+ * all spaces are removed and all characters are lowercased.
+ * @return 100 in case of identical strings and 0 in case of totally different strings.
+*/
+guint32 compare_diff_distance_normalized (f_str_t *s1, f_str_t *s2);
+
 #endif /* DIFF_H_ */
index f3356a21897a6a97b21be3a7f371600c09e58c20..6a88514c961522ecdd9b36f929988d831112d16c 100644 (file)
@@ -1051,7 +1051,7 @@ rspamd_parts_distance (struct worker_task * task, GList * args, void *unused)
                }
                if (!p1->is_empty && !p2->is_empty) {
                        if (p1->diff_str != NULL && p2->diff_str != NULL) {
-                               diff = compare_diff_distance (p1->diff_str, p2->diff_str);
+                               diff = compare_diff_distance_normalized (p1->diff_str, p2->diff_str);
                        }
                        else {
                                diff = fuzzy_compare_parts (p1, p2);