diff options
author | Mattias Andrée <maandree@kth.se> | 2023-01-10 18:45:42 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2023-01-10 18:45:42 +0100 |
commit | abf2630e7039c53126faf6585769e2abfba657dd (patch) | |
tree | 68a97f64a78472154a1da3fb988022ccf417bc49 /libfonts_do_font_descriptions_match.c | |
parent | m (diff) | |
download | libfonts-abf2630e7039c53126faf6585769e2abfba657dd.tar.gz libfonts-abf2630e7039c53126faf6585769e2abfba657dd.tar.bz2 libfonts-abf2630e7039c53126faf6585769e2abfba657dd.tar.xz |
m + implement libfonts_do_{decoded_,}font_descriptions_match
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'libfonts_do_font_descriptions_match.c')
-rw-r--r-- | libfonts_do_font_descriptions_match.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/libfonts_do_font_descriptions_match.c b/libfonts_do_font_descriptions_match.c new file mode 100644 index 0000000..1bf6069 --- /dev/null +++ b/libfonts_do_font_descriptions_match.c @@ -0,0 +1,43 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" +#ifndef TEST + + +int +libfonts_do_font_descriptions_match(const char *desc, const char *spec) +{ + if (!spec) + return !desc; + if (!desc) + return 0; + + while (*spec && *desc) { + if (spec[0] == '*' && (!spec[1] || spec[1] == '-')) { + spec++; + while (*desc && *desc != '-') + desc++; + } else { + while (*spec && *desc && *spec != '-' && *desc != '-') { + if (*spec != *desc && *spec != '?') + return 0; + } + } + if (*spec != *desc || (*spec && *spec != '-')) + return 0; + } + + return *spec == *desc; +} + + +#else + + +int +main(void) +{ + return 0; /* XXX add test */ +} + + +#endif |