diff options
author | Sami Kerola | 2014-05-18 13:31:16 +0200 |
---|---|---|
committer | Sami Kerola | 2014-05-19 23:45:39 +0200 |
commit | 917465831fd0a2673f4f92a07d2fcf6f0ceea43b (patch) | |
tree | 219449818c58092abe49cb4a6db60c6032317318 /term-utils/setterm.c | |
parent | setterm: remove devfs and /dev/vcsa0 support (diff) | |
download | kernel-qcow2-util-linux-917465831fd0a2673f4f92a07d2fcf6f0ceea43b.tar.gz kernel-qcow2-util-linux-917465831fd0a2673f4f92a07d2fcf6f0ceea43b.tar.xz kernel-qcow2-util-linux-917465831fd0a2673f4f92a07d2fcf6f0ceea43b.zip |
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 <kerolasa@iki.fi>
Diffstat (limited to 'term-utils/setterm.c')
-rw-r--r-- | term-utils/setterm.c | 12 |
1 files changed, 7 insertions, 5 deletions
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 <on|off>\n"), out); - fputs(_(" --msglevel <0-8>\n"), out); /* FIXME: klogctl console_log range is 1-8 */ + fputs(_(" --msglevel <0-8>\n"), out); fputs(_(" --powersave <on|vsync|hsync|powerdown|off>\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) |