Changed "conscontrol unset" to accept an existing virtual
console device as an argument. Unsetting virtual console using /dev/console seems to have never worked. MFC after: 3 days
This commit is contained in:
parent
ca47294ddf
commit
576f40089b
@ -25,7 +25,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd October 23, 2001
|
||||
.Dd April 14, 2011
|
||||
.Dt CONSCONTROL 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -40,7 +40,7 @@
|
||||
.Cm add | delete
|
||||
.Ar console
|
||||
.Nm
|
||||
.Cm set Ar console | Cm unset
|
||||
.Cm set | unset Ar console
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
@ -91,7 +91,7 @@ the name of the directory may be omitted.
|
||||
Change the state of console muting.
|
||||
All console output is suppressed when console muting is
|
||||
.Cm on .
|
||||
.It Cm set Ar console | Cm unset
|
||||
.It Cm set | unset Ar console
|
||||
Set or unset the virtual console.
|
||||
When unset, output from the system, such as the kernel
|
||||
.Xr printf 9 ,
|
||||
|
@ -50,7 +50,7 @@ usage(void)
|
||||
"usage: conscontrol [list]",
|
||||
" conscontrol mute on | off",
|
||||
" conscontrol add | delete console",
|
||||
" conscontrol set console | unset");
|
||||
" conscontrol set | unset console");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -153,28 +153,16 @@ consdel(char *devnam)
|
||||
}
|
||||
|
||||
static void
|
||||
consset(char *devnam)
|
||||
consset(char *devnam, int flag)
|
||||
{
|
||||
int ttyfd, flag = 1;
|
||||
int ttyfd;
|
||||
|
||||
ttyfd = open(devnam, O_RDONLY);
|
||||
if (ttyfd == -1)
|
||||
err(1, "opening %s", devnam);
|
||||
if (ioctl(ttyfd, TIOCCONS, &flag) == -1)
|
||||
err(1, "could not set %s as virtual console", devnam);
|
||||
close(ttyfd);
|
||||
}
|
||||
|
||||
static void
|
||||
consunset(void)
|
||||
{
|
||||
int ttyfd, flag = 0;
|
||||
|
||||
ttyfd = open(DEVDIR "console", O_RDONLY);
|
||||
if (ttyfd == -1)
|
||||
err(1, "opening virtual console");
|
||||
if (ioctl(ttyfd, TIOCCONS, &flag) == -1)
|
||||
err(1, "could not unset virtual console");
|
||||
err(1, "could not %s %s as virtual console",
|
||||
flag ? "set" : "unset", devnam);
|
||||
close(ttyfd);
|
||||
}
|
||||
|
||||
@ -188,9 +176,7 @@ main(int argc, char **argv)
|
||||
argv += optind;
|
||||
|
||||
if (argc > 0 && strcmp(argv[0], "list") != 0) {
|
||||
if (argc == 1 && strcmp(argv[0], "unset") == 0)
|
||||
consunset();
|
||||
else if (argc != 2)
|
||||
if (argc != 2)
|
||||
usage();
|
||||
else if (strcmp(argv[0], "mute") == 0)
|
||||
consmute(argv[1]);
|
||||
@ -199,7 +185,9 @@ main(int argc, char **argv)
|
||||
else if (strcmp(argv[0], "delete") == 0)
|
||||
consdel(argv[1]);
|
||||
else if (strcmp(argv[0], "set") == 0)
|
||||
consset(argv[1]);
|
||||
consset(argv[1], 1);
|
||||
else if (strcmp(argv[0], "unset") == 0)
|
||||
consset(argv[1], 0);
|
||||
else
|
||||
usage();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user