From 557ff9418ff811829c5f7f410c56cd552b605d10 Mon Sep 17 00:00:00 2001 From: Patrick McDermott Date: Thu, 18 Jul 2019 14:07:58 -0400 Subject: font_default(): New function And make font_find() return NULL if a font can't be found. --- diff --git a/src/font.c b/src/font.c index fb54604..30d51c9 100644 --- a/src/font.c +++ b/src/font.c @@ -48,12 +48,30 @@ static const struct font_desc *fonts[] = { }; struct font * +font_default(void) +{ + struct font *font; + int pref; + size_t i; + + font = NULL; + pref = -10000; + for (i = 0; i < *(&fonts + 1) - fonts; ++i) { + if (fonts[i]->pref > pref) { + font = (struct font *) fonts[i]; + pref = fonts[i]->pref; + } + } + return font; +} + +struct font * font_find(const char *name) { size_t i; if (!name) { - return (struct font *) fonts[0]; + return NULL; } for (i = 0; i < *(&fonts + 1) - fonts; ++i) { @@ -61,7 +79,7 @@ font_find(const char *name) return (struct font *) fonts[i]; } } - return (struct font *) fonts[0]; + return NULL; } int diff --git a/src/font.h b/src/font.h index 27cc08e..c1abe26 100644 --- a/src/font.h +++ b/src/font.h @@ -27,6 +27,9 @@ #include struct font * +font_default(void) __attribute__((pure)); + +struct font * font_find(const char *name) __attribute__((pure)); int -- cgit v0.9.1