summaryrefslogtreecommitdiffstats
path: root/term-utils/setterm.c
diff options
context:
space:
mode:
authorSami Kerola2014-05-18 13:31:16 +0200
committerSami Kerola2014-05-19 23:45:39 +0200
commit917465831fd0a2673f4f92a07d2fcf6f0ceea43b (patch)
tree219449818c58092abe49cb4a6db60c6032317318 /term-utils/setterm.c
parentsetterm: remove devfs and /dev/vcsa0 support (diff)
downloadkernel-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.c12
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)