diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2012-10-12 18:43:07 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2012-10-12 18:43:07 +0400 |
commit | 9c867f8a27255ec15a87675f0bd037fddb30a440 (patch) | |
tree | 1d06dfe40fe5eb82c2a5e53c2438eb40572a7797 /src | |
parent | aa7c8f99ba4860a3cbf2153026cb91f6053fc66c (diff) | |
download | rspamd-9c867f8a27255ec15a87675f0bd037fddb30a440.tar.gz rspamd-9c867f8a27255ec15a87675f0bd037fddb30a440.zip |
Forgot in previous commit.
Diffstat (limited to 'src')
-rw-r--r-- | src/diff.h | 7 | ||||
-rw-r--r-- | src/expressions.c | 2 |
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); |