From 917465831fd0a2673f4f92a07d2fcf6f0ceea43b Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sun, 18 May 2014 12:31:16 +0100 Subject: setterm: make -msglevel 0 to work as is did earlier Commit 3393c136 caused regression. The klogctl() logging range is 1-8, but the value 0 is special according to setterm.1 manual page. It turns on loging, same way as '-msg on' option. Signed-off-by: Sami Kerola --- term-utils/setterm.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'term-utils/setterm.c') diff --git a/term-utils/setterm.c b/term-utils/setterm.c index 0858a7612..01f7ab116 100644 --- a/term-utils/setterm.c +++ b/term-utils/setterm.c @@ -134,7 +134,7 @@ enum { /* Console log levels */ enum { - CONSOLE_LEVEL_MIN = 1, + CONSOLE_LEVEL_MIN = 0, CONSOLE_LEVEL_MAX = 8 }; @@ -437,16 +437,14 @@ usage(FILE *out) { fputs(_(" --append <1-NR_CONSOLES>\n"), out); fputs(_(" --file dumpfilename\n"), out); fputs(_(" --msg \n"), out); - fputs(_(" --msglevel <0-8>\n"), out); /* FIXME: klogctl console_log range is 1-8 */ + fputs(_(" --msglevel <0-8>\n"), out); fputs(_(" --powersave \n"), out); fputs(_(" --powerdown <0-60>\n"), out); fputs(_(" --blength <0-2000>\n"), out); fputs(_(" --bfreq freqnumber\n"), out); fputs(_(" --version\n"), out); fputs(_(" --help\n"), out); - fprintf(out, USAGE_MAN_TAIL("setterm(1)")); - exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS); } @@ -651,6 +649,10 @@ static void parse_option(struct setterm_control *ctl, int argc, char **argv) case OPT_MSGLEVEL: ctl->opt_msglevel = set_opt_flag(ctl->opt_msglevel); ctl->opt_msglevel_num = parse_msglevel(optarg); + if (ctl->opt_msglevel_num == 0) { + ctl->opt_msg = set_opt_flag(ctl->opt_msg); + ctl->opt_msg_on |= 1; + } break; case OPT_POWERSAVE: ctl->opt_powersave = set_opt_flag(ctl->opt_powersave); @@ -1017,7 +1019,7 @@ static void perform_sequence(struct setterm_control *ctl) } /* -msglevel [0-8] */ - if (ctl->opt_msglevel && ctl->vcterm) { + if (ctl->opt_msglevel_num && ctl->vcterm) { /* 8 -- Set level of messages printed to console */ result = klogctl(SYSLOG_ACTION_CONSOLE_LEVEL, NULL, ctl->opt_msglevel_num); if (result != 0) -- cgit v1.2.3-55-g7522