diff --git a/src/address_dictionary.c b/src/address_dictionary.c index 0214c83e..b0d5e345 100644 --- a/src/address_dictionary.c +++ b/src/address_dictionary.c @@ -22,6 +22,18 @@ address_expansion_array *address_dictionary_get_expansions(char *key) { return k != kh_end(address_dict->expansions) ? kh_value(address_dict->expansions, k) : NULL; } +inline bool address_expansion_in_dictionary(address_expansion_t expansion, uint16_t dictionary_id) { + for (uint32_t i = 0; i < expansion.num_dictionaries; i++) { + if (expansion.dictionary_ids[i] == dictionary_id) { + return true; + } + } + + return false; +} + + + int32_t address_dictionary_next_canonical_index(void) { if (address_dict == NULL || address_dict->canonical == NULL) { log_error(ADDRESS_DICTIONARY_SETUP_ERROR); diff --git a/src/address_dictionary.h b/src/address_dictionary.h index b7e1fa06..c174b002 100644 --- a/src/address_dictionary.h +++ b/src/address_dictionary.h @@ -67,6 +67,7 @@ phrase_t search_address_dictionaries_prefix(char *str, size_t len, char *lang); phrase_t search_address_dictionaries_suffix(char *str, size_t len, char *lang); address_expansion_array *address_dictionary_get_expansions(char *key); +bool address_expansion_in_dictionary(address_expansion_t expansion, uint16_t dictionary_id); char *address_dictionary_get_canonical(uint32_t index); int32_t address_dictionary_next_canonical_index(void); bool address_dictionary_add_canonical(char *canonical);