Replaces commands/mesg. No Minix-specific changes needed.
Change-Id: Ief22ad7f050f8083d0b43a4ea90b348c504d99a2
intr ipcrm ipcs irdpd isoread last \
less loadkeys loadramdisk logger look lp \
lpd lspci mail MAKEDEV \
- mesg mined mkfifo \
+ mined mkfifo \
mount mt netconf \
nonamed od paste patch \
ping postinstall poweroff prep printroot \
+++ /dev/null
-PROG= mesg
-MAN=
-
-.include <bsd.prog.mk>
+++ /dev/null
-/* mesg - enable or disable communications. Author: John J. Ribera */
-
-/*
- * mesg - enable or disable communications.
- *
- * Usage: mesg [ y | n ]
- *
- * 'mesg n' will turn off group and world permissions of the
- * user's terminal.
- * 'mesg y' will enable group and world to write to the user's
- * tty.
- * mesg with no parameters will put the writeable status
- * onto stdout.
- *
- * Author: John J. Ribera, Jr. 09/09/90
- */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int main(int argc, char *argv []);
-
-int main(argc, argv)
-int argc;
-char *argv[];
-{
- struct stat statb;
- char *tty_name;
-
- if ((tty_name = ttyname(0)) == NULL) exit(2);
- if (stat(tty_name, &statb) == -1) exit(2);
- if (--argc) {
- if (*argv[1] == 'n') statb.st_mode = 0600;
- else if (*argv[1] == 'y') statb.st_mode = 0620;
- else {
- fprintf(stderr, "mesg: usage: mesg [n|y]\n");
- exit(2);
- }
- if (chmod(tty_name, statb.st_mode) == -1) exit(2);
- } else printf((statb.st_mode & 020) ? "is y\n" : "is n\n");
-
- if (statb.st_mode & 020) exit(0);
-
- exit(1);
-}
-
isodir.1 isoinfo.1 isoread.1 \
last.1 loadfont.1 loadkeys.1 logger.1 \
look.1 lp.1 lspci.1 mail.1 \
- mesg.1 mixer.1 \
+ mixer.1 \
mkproto.1 mount.1 mt.1 od.1 \
paste.1 ping.1 playwave.1 prep.1 \
profile.1 ps.1 rcp.1 recwave.1 \
+++ /dev/null
-.\" @(#)mesg.1 6.1 (Berkeley) 4/29/85
-.\"
-.TH MESG 1 "April 29, 1985"
-.AT 3
-.SH NAME
-mesg \- permit or deny messages
-.SH SYNOPSIS
-.B mesg
-[
-.B n
-] [
-.B y
-]
-.SH DESCRIPTION
-.B Mesg
-with argument
-.B n
-forbids messages via
-.B write
-and
-.BR talk (1)
-by revoking non-user
-write permission on the user's terminal.
-.B Mesg
-with argument
-.B y
-reinstates permission.
-All by itself,
-.B mesg
-reports the current state without changing it.
-.SH FILES
-/dev/tty*
-.SH "SEE ALSO"
-.BR write (1),
-.BR talk (1).
-.SH DIAGNOSTICS
-Exit status is 0 if messages are receivable,
-1 if not, 2 on error.
2012/10/17 12:00:00,usr.bin/Makefile
2012/10/17 12:00:00,usr.bin/Makefile.inc
2010/07/07 21:24:34,usr.bin/man
+2013/10/25 12:00:00,usr.bin/mesg
2010/10/15 05:46:48,usr.bin/mkdep
2009/08/15 20:44:56,usr.bin/mktemp
2012/10/17 12:00:00,usr.bin/nbperf
head indent infocmp join \
ldd leave \
login logname lorder m4 \
- machine make man \
+ machine make man mesg \
mkdep mktemp \
\
nbperf newgrp nice nl nohup nvi \
--- /dev/null
+# $NetBSD: Makefile,v 1.7 2009/04/14 22:15:23 lukem Exp $
+# @(#)Makefile 8.1 (Berkeley) 6/6/93
+
+PROG= mesg
+
+.include <bsd.prog.mk>
--- /dev/null
+.\" $NetBSD: mesg.1,v 1.9 2009/03/11 13:54:05 joerg Exp $
+.\"
+.\" Copyright (c) 1987, 1990, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)mesg.1 8.1 (Berkeley) 6/6/93
+.\"
+.Dd June 6, 1993
+.Dt MESG 1
+.Os
+.Sh NAME
+.Nm mesg
+.Nd display (do not display) messages from other users
+.Sh SYNOPSIS
+.Nm
+.Op Cm n | Cm y
+.Sh DESCRIPTION
+The
+.Nm
+utility is invoked by a user to control write access others
+have to the terminal device associated with the standard error
+output.
+Write access is allowed by default, and programs such as
+.Xr talk 1
+and
+.Xr write 1
+may display messages on the terminal.
+.Pp
+Options available:
+.Bl -tag -width flag
+.It Cm n
+Disallows messages.
+.It Cm y
+Permits messages to be displayed.
+.El
+.Pp
+If no arguments are given,
+.Nm
+displays the present message status to the standard error output.
+.Pp
+The
+.Nm
+utility exits with one of the following values:
+.Pp
+.Bl -tag -width flag -compact -offset indent
+.It Li "\ 0"
+Messages are allowed.
+.It Li "\ 1"
+Messages are not allowed.
+.It Li "\*[Gt]1"
+An error has occurred.
+.El
+.Sh FILES
+.Bl -tag -width /dev/[pt]ty[pq]? -compact
+.It Pa /dev/[pt]ty[pq]?
+.El
+.Sh SEE ALSO
+.Xr biff 1 ,
+.Xr talk 1 ,
+.Xr write 1
+.Sh HISTORY
+A
+.Nm
+command appeared in
+.At v6 .
--- /dev/null
+/* $NetBSD: mesg.c,v 1.8 2008/07/21 14:19:24 lukem Exp $ */
+
+/*
+ * Copyright (c) 1987, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+
+#ifndef lint
+__COPYRIGHT("@(#) Copyright (c) 1987, 1993\
+ The Regents of the University of California. All rights reserved.");
+#endif /* not lint */
+
+#ifndef lint
+#if 0
+static char sccsid[] = "@(#)mesg.c 8.2 (Berkeley) 1/21/94";
+#endif
+__RCSID("$NetBSD: mesg.c,v 1.8 2008/07/21 14:19:24 lukem Exp $");
+#endif /* not lint */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <err.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+int
+main(int argc, char *argv[])
+{
+ struct stat sb;
+ char *tty;
+ int ch;
+
+ setprogname(*argv);
+
+ while ((ch = getopt(argc, argv, "")) != -1)
+ switch (ch) {
+ case '?':
+ default:
+ goto usage;
+ }
+ argc -= optind;
+ argv += optind;
+
+ if ((tty = ttyname(STDIN_FILENO)) == NULL &&
+ (tty = ttyname(STDOUT_FILENO)) == NULL &&
+ (tty = ttyname(STDERR_FILENO)) == NULL)
+ err(2, "ttyname");
+ if (stat(tty, &sb) == -1)
+ err(2, "%s", tty);
+
+ if (*argv == NULL) {
+ if (sb.st_mode & S_IWGRP) {
+ (void)fprintf(stderr, "is y\n");
+ return 0;
+ }
+ (void)fprintf(stderr, "is n\n");
+ return 1;
+ }
+
+ switch (*argv[0]) {
+ case 'y':
+ if (chmod(tty, sb.st_mode | S_IWGRP) == -1)
+ err(2, "%s", tty);
+ return 0;
+ case 'n':
+ if (chmod(tty, sb.st_mode & ~S_IWGRP) == -1)
+ err(2, "%s", tty);
+ return 1;
+ }
+
+usage: (void)fprintf(stderr, "Usage: %s [y | n]\n", getprogname());
+ return 2;
+}