From f59d5d1b62b1c2b2f505acc535c798e7c47974df Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 24 Nov 2020 11:33:20 +0100 Subject: Add support for restricting search/output to specific fields. --- src/choices.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/choices.h') diff --git a/src/choices.h b/src/choices.h index 925478e..70ef13f 100644 --- a/src/choices.h +++ b/src/choices.h @@ -8,9 +8,16 @@ struct scored_result { score_t score; - const char *str; + size_t idx; }; +typedef struct InputItem { + const char *input_line; + const char *search_buf; + + char *allocated; +} InputItem; + typedef struct { char *buffer; size_t buffer_size; @@ -18,13 +25,17 @@ typedef struct { size_t capacity; size_t size; - const char **strings; + InputItem *input_items; struct scored_result *results; size_t available; size_t selection; unsigned int worker_count; + + const char *delimiters; + const FieldSelector *search_fields; + const FieldSelector *output_fields; } choices_t; void choices_init(choices_t *c, options_t *options); @@ -33,7 +44,8 @@ void choices_destroy(choices_t *c); void choices_add(choices_t *c, const char *choice); size_t choices_available(choices_t *c); void choices_search(choices_t *c, const char *search); -const char *choices_get(choices_t *c, size_t n); +const char *choices_get_search(choices_t *c, size_t n); +char *choices_get_output(choices_t *c, size_t n); score_t choices_getscore(choices_t *c, size_t n); void choices_prev(choices_t *c); void choices_next(choices_t *c); -- cgit v1.2.3