diff options
author | Phil Jones <philj56@gmail.com> | 2022-10-18 19:33:41 +0100 |
---|---|---|
committer | Phil Jones <philj56@gmail.com> | 2022-10-18 19:33:41 +0100 |
commit | 5482f0be746a98bdd6b2c54183b54dd2ff2a0192 (patch) | |
tree | dc58c6a1c486432f853bd3a5f9f7c78767c7292a /src/desktop_vec.c | |
parent | 8872f664671711b97e02fe97f31746b5e158e627 (diff) |
Improve UTF-8 handling.
This should allow case-insensitive matching for non-Latin characters,
and fix matching for characters with diacritics.
Diffstat (limited to 'src/desktop_vec.c')
-rw-r--r-- | src/desktop_vec.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/desktop_vec.c b/src/desktop_vec.c index df4218b..f559551 100644 --- a/src/desktop_vec.c +++ b/src/desktop_vec.c @@ -4,6 +4,7 @@ #include "fuzzy_match.h" #include "log.h" #include "string_vec.h" +#include "utf8.h" #include "xmalloc.h" static bool match_current_desktop(char * const *desktop_list, gsize length); @@ -42,7 +43,10 @@ void desktop_vec_add( vec->buf = xrealloc(vec->buf, vec->size * sizeof(vec->buf[0])); } vec->buf[vec->count].id = xstrdup(id); - vec->buf[vec->count].name = xstrdup(name); + vec->buf[vec->count].name = utf8_normalize(name); + if (vec->buf[vec->count].name == NULL) { + vec->buf[vec->count].name = xstrdup(name); + } vec->buf[vec->count].path = xstrdup(path); vec->buf[vec->count].keywords = xstrdup(keywords); vec->buf[vec->count].search_score = 0; |