mirror of
https://github.com/troglobit/finit.git
synced 2026-11-15 19:13:11 +00:00
initctl: refactor runlevel string composition
Related to issue #437 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 file changed
+11
-14
+11
-14
@@ -769,25 +769,23 @@ char *runlevel_string(int currlevel, int levels)
|
|||||||
{
|
{
|
||||||
static char lvl[32];
|
static char lvl[32];
|
||||||
int i = INIT_LEVEL;
|
int i = INIT_LEVEL;
|
||||||
int pos = 1;
|
|
||||||
|
|
||||||
memset(lvl, 0, sizeof(lvl));
|
strlcpy(lvl, "[", sizeof(lvl));
|
||||||
lvl[0] = '[';
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (ISSET(levels, i)) {
|
if (ISSET(levels, i)) {
|
||||||
if (!plain && currlevel == i)
|
char l[2] = { '0' + i, 0 };
|
||||||
pos = strlcat(lvl, "\e[1m", sizeof(lvl));
|
|
||||||
|
|
||||||
if (i == INIT_LEVEL)
|
|
||||||
lvl[pos++] = 'S';
|
|
||||||
else
|
|
||||||
lvl[pos++] = '0' + i;
|
|
||||||
|
|
||||||
if (!plain && currlevel == i)
|
if (!plain && currlevel == i)
|
||||||
pos = strlcat(lvl, "\e[0m", sizeof(lvl));
|
strlcat(lvl, "\e[1m", sizeof(lvl));
|
||||||
|
|
||||||
|
strlcat(lvl, i == INIT_LEVEL ? "S" : l, sizeof(lvl));
|
||||||
|
|
||||||
|
|
||||||
|
if (!plain && currlevel == i)
|
||||||
|
strlcat(lvl, "\e[0m", sizeof(lvl));
|
||||||
} else {
|
} else {
|
||||||
lvl[pos++] = '-';
|
strlcat(lvl, "-", sizeof(lvl));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XXX: ugly hack to get order right: S0123456789 */
|
/* XXX: ugly hack to get order right: S0123456789 */
|
||||||
@@ -798,8 +796,7 @@ char *runlevel_string(int currlevel, int levels)
|
|||||||
} while (i < INIT_LEVEL);
|
} while (i < INIT_LEVEL);
|
||||||
|
|
||||||
|
|
||||||
lvl[pos++] = ']';
|
strlcat(lvl, "]", sizeof(lvl));
|
||||||
lvl[pos] = 0;
|
|
||||||
|
|
||||||
return lvl;
|
return lvl;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user