]> Zhao Yanbai Git Server - minix.git/commitdiff
Importing usr.bin/mesg 68/1068/1
authorThomas Cort <tcort@minix3.org>
Fri, 25 Oct 2013 16:14:32 +0000 (12:14 -0400)
committerThomas Cort <tcort@minix3.org>
Fri, 25 Oct 2013 18:57:39 +0000 (14:57 -0400)
Replaces commands/mesg. No Minix-specific changes needed.

Change-Id: Ief22ad7f050f8083d0b43a4ea90b348c504d99a2

commands/Makefile
commands/mesg/Makefile [deleted file]
commands/mesg/mesg.c [deleted file]
man/man1/Makefile
man/man1/mesg.1 [deleted file]
releasetools/nbsd_ports
usr.bin/Makefile
usr.bin/mesg/Makefile [new file with mode: 0644]
usr.bin/mesg/mesg.1 [new file with mode: 0644]
usr.bin/mesg/mesg.c [new file with mode: 0644]

index 7fd1e3c14cf5d11f4d83f254ee26d39a3d721fa7..45df0a654ea28580111751a6b0c0505afb657879 100644 (file)
@@ -15,7 +15,7 @@ SUBDIR=       add_route arp ash at backup btrace \
        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 \
diff --git a/commands/mesg/Makefile b/commands/mesg/Makefile
deleted file mode 100644 (file)
index c424371..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-PROG=  mesg
-MAN=
-
-.include <bsd.prog.mk>
diff --git a/commands/mesg/mesg.c b/commands/mesg/mesg.c
deleted file mode 100644 (file)
index 2fb3d71..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* 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);
-}
-
index bd7a170f25732494bc224cc206d4e8e58f19c150..da66405a1e2562f6ba49e6e6b463433043eda68a 100644 (file)
@@ -10,7 +10,7 @@ MAN=  ash.1 at.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 \
diff --git a/man/man1/mesg.1 b/man/man1/mesg.1
deleted file mode 100644 (file)
index 7eb7a9d..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-.\"    @(#)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.
index a0a3a17f553f6941f2f196122190dffe191f6407..d0e7a5df1e6e0ef3fe42d71c548849c950a50f29 100644 (file)
 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
index 2ceffd56eae51fb9d4b8b6af565eecf5a9471dee..7655e184133cc48ae3bcf58a0d7387f968c176f9 100644 (file)
@@ -15,7 +15,7 @@ SUBDIR= \
        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 \
diff --git a/usr.bin/mesg/Makefile b/usr.bin/mesg/Makefile
new file mode 100644 (file)
index 0000000..4c5b0dd
--- /dev/null
@@ -0,0 +1,6 @@
+#      $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>
diff --git a/usr.bin/mesg/mesg.1 b/usr.bin/mesg/mesg.1
new file mode 100644 (file)
index 0000000..0dc8afb
--- /dev/null
@@ -0,0 +1,89 @@
+.\"    $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 .
diff --git a/usr.bin/mesg/mesg.c b/usr.bin/mesg/mesg.c
new file mode 100644 (file)
index 0000000..cc54a75
--- /dev/null
@@ -0,0 +1,108 @@
+/*     $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;
+}