summaryrefslogtreecommitdiff
path: root/src/desktop_vec.h
diff options
context:
space:
mode:
authorPhil Jones <philj56@gmail.com>2022-07-26 22:57:09 +0100
committerPhil Jones <philj56@gmail.com>2022-07-26 23:28:58 +0100
commitbb80769bfdf2efcbf000bf838feaee0c1b31183d (patch)
tree7ad91906bfee433bc5cb891fd65ab7a1d048150f /src/desktop_vec.h
parent508c90ba3ff7b0e25779452a3633c0e09f413adc (diff)
Add keyword matching for drun searches.
There's starting to be a fair amount of duplicated code between the drun and normal run modes. At some point in the future, it's likely to be worth combining them, such that there's only a single `struct search_item` or similar, and just handle the different modes at the start and end of execution.
Diffstat (limited to 'src/desktop_vec.h')
-rw-r--r--src/desktop_vec.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/desktop_vec.h b/src/desktop_vec.h
index 9c15ad9..85c885e 100644
--- a/src/desktop_vec.h
+++ b/src/desktop_vec.h
@@ -3,11 +3,15 @@
#include <stddef.h>
#include <stdio.h>
+#include <stdint.h>
struct desktop_entry {
char *id;
char *name;
char *path;
+ char *keywords;
+ uint32_t search_score;
+ uint32_t history_score;
};
struct desktop_vec {
@@ -23,11 +27,15 @@ void desktop_vec_add(
struct desktop_vec *restrict vec,
const char *restrict id,
const char *restrict name,
- const char *restrict path);
+ const char *restrict path,
+ const char *restrict keywords);
void desktop_vec_add_file(struct desktop_vec *desktop, const char *id, const char *path);
void desktop_vec_sort(struct desktop_vec *restrict vec);
struct desktop_entry *desktop_vec_find(struct desktop_vec *restrict vec, const char *name);
+struct string_vec desktop_vec_filter(
+ const struct desktop_vec *restrict vec,
+ const char *restrict substr);
struct desktop_vec desktop_vec_load(FILE *file);
void desktop_vec_save(struct desktop_vec *restrict vec, FILE *restrict file);