aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2012-10-12 18:43:07 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2012-10-12 18:43:07 +0400
commit9c867f8a27255ec15a87675f0bd037fddb30a440 (patch)
tree1d06dfe40fe5eb82c2a5e53c2438eb40572a7797 /src
parentaa7c8f99ba4860a3cbf2153026cb91f6053fc66c (diff)
downloadrspamd-9c867f8a27255ec15a87675f0bd037fddb30a440.tar.gz
rspamd-9c867f8a27255ec15a87675f0bd037fddb30a440.zip
Forgot in previous commit.
Diffstat (limited to 'src')
-rw-r--r--src/diff.h7
-rw-r--r--src/expressions.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/diff.h b/src/diff.h
index e10fe943d..cea5e5d4a 100644
--- a/src/diff.h
+++ b/src/diff.h
@@ -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_ */
diff --git a/src/expressions.c b/src/expressions.c
index f3356a218..6a88514c9 100644
--- a/src/expressions.c
+++ b/src/expressions.c
@@ -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);