From: Lennart Poettering Date: Thu, 8 Apr 2021 20:59:43 +0000 (+0200) Subject: locale-util: make SpecialGlyph more like our usual enums X-Git-Tag: v249-rc1~454^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=eff60d8ceaba1a34b75f9dbfd3b362024530314a;p=thirdparty%2Fsystemd.git locale-util: make SpecialGlyph more like our usual enums Let's define both an enum and a typedef named SpecialGlyph, the way we usually do it. Also, introduce an "invalid" special glyph, assigned to -EINVAL, also like we always do it. (And handle it somewhat sanely in special_glyph() --- diff --git a/src/basic/locale-util.c b/src/basic/locale-util.c index 93261e675e2..b818078158b 100644 --- a/src/basic/locale-util.c +++ b/src/basic/locale-util.c @@ -427,8 +427,10 @@ const char *special_glyph(SpecialGlyph code) { }, }; - assert(code < _SPECIAL_GLYPH_MAX); + if (code < 0) + return NULL; + assert(code < _SPECIAL_GLYPH_MAX); return draw_table[code >= _SPECIAL_GLYPH_FIRST_EMOJI ? emoji_enabled() : is_locale_utf8()][code]; } diff --git a/src/basic/locale-util.h b/src/basic/locale-util.h index 558c5a898bb..df259d1bbd9 100644 --- a/src/basic/locale-util.h +++ b/src/basic/locale-util.h @@ -39,7 +39,7 @@ void init_gettext(void); bool is_locale_utf8(void); -typedef enum { +typedef enum SpecialGlyph { SPECIAL_GLYPH_TREE_VERTICAL, SPECIAL_GLYPH_TREE_BRANCH, SPECIAL_GLYPH_TREE_RIGHT, @@ -70,6 +70,7 @@ typedef enum { SPECIAL_GLYPH_LOCK_AND_KEY, SPECIAL_GLYPH_TOUCH, _SPECIAL_GLYPH_MAX, + _SPECIAL_GLYPH_INVALID = -EINVAL, } SpecialGlyph; const char *special_glyph(SpecialGlyph code) _const_;