diff options
author | tjr <tjr@FreeBSD.org> | 2002-05-06 04:33:04 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2002-05-06 04:33:04 +0000 |
commit | 2a4292262e25e24b26f8919fa92465eaf087483c (patch) | |
tree | 9afc5ae665ac4d9aa52d78234d6183202b427d49 /usr.bin/mesg | |
parent | 864cb02be27117c8975516a1c4ac29e99604c0ba (diff) | |
download | FreeBSD-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.1 | 29 | ||||
-rw-r--r-- | usr.bin/mesg/mesg.c | 16 |
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); } |