diff --git a/libpostal.def b/libpostal.def index 5db887c2..7deba4f7 100644 --- a/libpostal.def +++ b/libpostal.def @@ -5,6 +5,7 @@ libpostal_expansion_array_destroy libpostal_address_parser_response_destroy libpostal_get_address_parser_default_options libpostal_parse_address +libpostal_parser_print_features libpostal_setup libpostal_setup_datadir libpostal_teardown diff --git a/src/address_parser.c b/src/address_parser.c index 7e6de097..613b619d 100644 --- a/src/address_parser.c +++ b/src/address_parser.c @@ -49,6 +49,13 @@ address_parser_t *get_address_parser(void) { return parser; } +bool address_parser_print_features(bool print_features) { + if (parser == NULL) return false; + + parser->options.print_features = print_features; + return true; +} + bool address_parser_save(address_parser_t *self, char *output_dir) { if (self == NULL || output_dir == NULL) return false; diff --git a/src/address_parser.h b/src/address_parser.h index 2518a9ef..4c5e699f 100644 --- a/src/address_parser.h +++ b/src/address_parser.h @@ -215,6 +215,7 @@ address_parser_t *address_parser_new_options(parser_options_t options); address_parser_t *get_address_parser(void); bool address_parser_load(char *dir); +bool address_parser_print_features(bool print_features); libpostal_address_parser_response_t *address_parser_parse(char *address, char *language, char *country); void address_parser_destroy(address_parser_t *self); diff --git a/src/address_parser_cli.c b/src/address_parser_cli.c index a314f2f1..9c50a8c9 100644 --- a/src/address_parser_cli.c +++ b/src/address_parser_cli.c @@ -73,23 +73,23 @@ int main(int argc, char **argv) { cstring_array_destroy(command); goto next_input; - } /*else if (string_starts_with(input, ".print_features")) { + } else if (string_starts_with(input, ".print_features")) { size_t num_tokens = 0; cstring_array *command = cstring_array_split(input, " ", 1, &num_tokens); if (cstring_array_num_strings(command) > 1) { char *flag = cstring_array_get_string(command, 1); if (string_compare_case_insensitive(flag, "off") == 0) { - parser->options.print_features = false; + libpostal_parser_print_features(false); } else if (string_compare_case_insensitive(flag, "on") == 0) { - parser->options.print_features = true; + libpostal_parser_print_features(true); } } else { - parser->options.print_features = true; + libpostal_parser_print_features(true); } cstring_array_destroy(command); goto next_input; - }*/ else if (strlen(input) == 0) { + } else if (strlen(input) == 0) { goto next_input; } diff --git a/src/libpostal.c b/src/libpostal.c index d226413e..152cf77b 100644 --- a/src/libpostal.c +++ b/src/libpostal.c @@ -1073,6 +1073,10 @@ libpostal_address_parser_response_t *libpostal_parse_address(char *address, libp return parsed; } +bool libpostal_parser_print_features(bool print_features) { + return address_parser_print_features(print_features); +} + bool libpostal_setup_datadir(char *datadir) { char *transliteration_path = NULL; char *numex_path = NULL; diff --git a/src/libpostal.h b/src/libpostal.h index 4e62f745..ce428e62 100644 --- a/src/libpostal.h +++ b/src/libpostal.h @@ -101,6 +101,8 @@ LIBPOSTAL_EXPORT libpostal_address_parser_options_t libpostal_get_address_parser LIBPOSTAL_EXPORT libpostal_address_parser_response_t *libpostal_parse_address(char *address, libpostal_address_parser_options_t options); +LIBPOSTAL_EXPORT bool libpostal_parser_print_features(bool print_features); + // Setup/teardown methods LIBPOSTAL_EXPORT bool libpostal_setup(void);