From: Lennart Poettering Date: Thu, 8 Apr 2021 21:01:25 +0000 (+0200) Subject: core: rework unit_active_state_to_glyph() to use a translation table X-Git-Tag: v249-rc1~454^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F19255%2Fhead;p=thirdparty%2Fsystemd.git core: rework unit_active_state_to_glyph() to use a translation table Let's make this a bit more readable by implementing this via a translation table, indexed by the state. --- diff --git a/src/basic/unit-def.c b/src/basic/unit-def.c index 6fbb947f096..5cfabca83fb 100644 --- a/src/basic/unit-def.c +++ b/src/basic/unit-def.c @@ -296,22 +296,19 @@ static const char* const notify_access_table[_NOTIFY_ACCESS_MAX] = { DEFINE_STRING_TABLE_LOOKUP(notify_access, NotifyAccess); SpecialGlyph unit_active_state_to_glyph(UnitActiveState state) { - switch (state) { - case UNIT_ACTIVE: - return SPECIAL_GLYPH_BLACK_CIRCLE; - case UNIT_RELOADING: - return SPECIAL_GLYPH_CIRCLE_ARROW; - case UNIT_INACTIVE: - return SPECIAL_GLYPH_WHITE_CIRCLE; - case UNIT_FAILED: - return SPECIAL_GLYPH_MULTIPLICATION_SIGN; - case UNIT_ACTIVATING: - case UNIT_DEACTIVATING: - return SPECIAL_GLYPH_BLACK_CIRCLE; - case UNIT_MAINTENANCE: - return SPECIAL_GLYPH_WHITE_CIRCLE; - - default: - return SPECIAL_GLYPH_BLACK_CIRCLE; - } + static const SpecialGlyph map[_UNIT_ACTIVE_STATE_MAX] = { + [UNIT_ACTIVE] = SPECIAL_GLYPH_BLACK_CIRCLE, + [UNIT_RELOADING] = SPECIAL_GLYPH_CIRCLE_ARROW, + [UNIT_INACTIVE] = SPECIAL_GLYPH_WHITE_CIRCLE, + [UNIT_FAILED] = SPECIAL_GLYPH_MULTIPLICATION_SIGN, + [UNIT_ACTIVATING] = SPECIAL_GLYPH_BLACK_CIRCLE, + [UNIT_DEACTIVATING] = SPECIAL_GLYPH_BLACK_CIRCLE, + [UNIT_MAINTENANCE] = SPECIAL_GLYPH_WHITE_CIRCLE, + }; + + if (state < 0) + return _SPECIAL_GLYPH_INVALID; + + assert(state < _UNIT_ACTIVE_STATE_MAX); + return map[state]; }