summaryrefslogtreecommitdiffstats
path: root/usr.bin/mesg
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-05-06 04:33:04 +0000
committertjr <tjr@FreeBSD.org>2002-05-06 04:33:04 +0000
commit2a4292262e25e24b26f8919fa92465eaf087483c (patch)
tree9afc5ae665ac4d9aa52d78234d6183202b427d49 /usr.bin/mesg
parent864cb02be27117c8975516a1c4ac29e99604c0ba (diff)
downloadFreeBSD-src-2a4292262e25e24b26f8919fa92465eaf087483c.zip
FreeBSD-src-2a4292262e25e24b26f8919fa92465eaf087483c.tar.gz
Affect the first of stdin, stdout and stderr that is attached to a terminal.
Write status information to stdout instead of stderr. Exit status when an error occurs musn't be 1, that is reserved for indicating that messages are disabled. These changes bring mesg(1) up to SUSv3 conformance. Reviewed by: mike
Diffstat (limited to 'usr.bin/mesg')
-rw-r--r--usr.bin/mesg/mesg.129
-rw-r--r--usr.bin/mesg/mesg.c16
2 files changed, 28 insertions, 17 deletions
diff --git a/usr.bin/mesg/mesg.1 b/usr.bin/mesg/mesg.1
index 77a29a1..c9f6800 100644
--- a/usr.bin/mesg/mesg.1
+++ b/usr.bin/mesg/mesg.1
@@ -32,7 +32,7 @@
.\" @(#)mesg.1 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
-.Dd June 6, 1993
+.Dd May 5, 2002
.Dt MESG 1
.Os
.Sh NAME
@@ -44,15 +44,17 @@
.Sh DESCRIPTION
The
.Nm
-utility is invoked by a users to control write access others
-have to the terminal device associated with the standard error
-output.
+utility is invoked by a user to control write access others
+have to a terminal device.
Write access is allowed by default, and programs such as
.Xr talk 1
and
.Xr write 1
may display messages on the terminal.
.Pp
+The first terminal device in the sequence of devices associated with standard
+input, standard output and standard error is affected.
+.Pp
Options available:
.Bl -tag -width flag
.It Cm n
@@ -63,8 +65,8 @@ Permits messages to be displayed.
.Pp
If no arguments are given,
.Nm
-displays the present message status to the standard error output.
-.Pp
+displays the present message status to the standard output.
+.Sh DIAGNOSTICS
The
.Nm
utility exits with one of the following values:
@@ -77,15 +79,22 @@ Messages are not allowed.
.It Li ">1"
An error has occurred.
.El
-.Sh FILES
-.Bl -tag -width /dev/[pt]ty[pq]? -compact
-.It Pa /dev/[pt]ty[pq]?
-.El
+.Sh COMPATIBILITY
+Previous versions of the
+.Nm
+utility wrote the message status to the standard error output and
+affected the terminal attached to standard error without first trying the
+standard input or output devices.
.Sh SEE ALSO
.Xr biff 1 ,
.Xr talk 1 ,
.Xr wall 1 ,
.Xr write 1
+.Sh STANDARDS
+The
+.Nm
+utility conforms to
+.St -p1003.1-2001 .
.Sh HISTORY
A
.Nm
diff --git a/usr.bin/mesg/mesg.c b/usr.bin/mesg/mesg.c
index d80acb6..dcd14c3 100644
--- a/usr.bin/mesg/mesg.c
+++ b/usr.bin/mesg/mesg.c
@@ -79,28 +79,30 @@ main(argc, argv)
argc -= optind;
argv += optind;
- if ((tty = ttyname(STDERR_FILENO)) == NULL)
- err(1, "ttyname");
+ if ((tty = ttyname(STDIN_FILENO)) == NULL &&
+ (tty = ttyname(STDOUT_FILENO)) == NULL &&
+ (tty = ttyname(STDERR_FILENO)) == NULL)
+ err(2, "ttyname");
if (stat(tty, &sb) < 0)
- err(1, "%s", tty);
+ err(2, "%s", tty);
if (*argv == NULL) {
if (sb.st_mode & S_IWGRP) {
- (void)fprintf(stderr, "is y\n");
+ (void)puts("is y");
exit(0);
}
- (void)fprintf(stderr, "is n\n");
+ (void)puts("is n");
exit(1);
}
switch (*argv[0]) {
case 'y':
if (chmod(tty, sb.st_mode | S_IWGRP) < 0)
- err(1, "%s", tty);
+ err(2, "%s", tty);
exit(0);
case 'n':
if (chmod(tty, sb.st_mode & ~S_IWGRP) < 0)
- err(1, "%s", tty);
+ err(2, "%s", tty);
exit(1);
}
OpenPOWER on IntegriCloud