From b4a8a69226be390056a1dfcd9223ad5f65948d05 Mon Sep 17 00:00:00 2001 From: Al Date: Fri, 18 Dec 2015 20:28:59 -0500 Subject: [PATCH] [expansion] Fixing extra space on prefix/suffix expansions --- src/libpostal.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libpostal.c b/src/libpostal.c index cfc33360..59fb9985 100644 --- a/src/libpostal.c +++ b/src/libpostal.c @@ -539,7 +539,7 @@ void add_affix_expansions(string_tree_t *tree, char *str, char *lang, token_t to key->n = root_end; suffix_expansion = suffix_expansions->a[k]; - add_space = suffix_expansion.separable; + add_space = suffix_expansion.separable && suffix.len < token.len; suffix_start = key->n; for (int spaces = 0; spaces <= add_space; spaces++) { @@ -586,7 +586,7 @@ void add_affix_expansions(string_tree_t *tree, char *str, char *lang, token_t to cat_affix_expansion(key, str, prefix_expansion, token, prefix); prefix_end = key->n - 1; - add_space = prefix_expansion.separable; + add_space = prefix_expansion.separable && prefix.len < token.len; for (int spaces = 0; spaces <= add_space; spaces++) { key->n = prefix_end; if (spaces) { @@ -617,7 +617,7 @@ inline bool expand_affixes(string_tree_t *tree, char *str, char *lang, token_t t phrase_t prefix = search_address_dictionaries_prefix(str + token.offset, token.len, lang); - if ((suffix.len == 0 && prefix.len == 0) || suffix.len == token.len || prefix.len == token.len) return false; + if ((suffix.len == 0 && prefix.len == 0)) return false; add_affix_expansions(tree, str, lang, token, prefix, suffix, options);