diff options
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 |