Importing usr.bin/tty

Replaces commands/tty. No Minix-specific changes needed.

Change-Id: I7ed8589a8cfb0f4fedab6eb760e321876db73502
This commit is contained in:
Thomas Cort 2013-10-28 12:22:56 -04:00
parent ed31a90dd5
commit b828b0feb7
10 changed files with 166 additions and 67 deletions

View file

@ -27,7 +27,7 @@ SUBDIR= add_route arp ash at backup btrace \
stty svclog svrctl swifi synctree sysenv \ stty svclog svrctl swifi synctree sysenv \
syslogd tail tcpd tcpdp tcpstat telnet \ syslogd tail tcpd tcpdp tcpstat telnet \
telnetd term termcap tget time touch \ telnetd term termcap tget time touch \
truncate tty udpstat umount uname \ truncate udpstat umount uname \
unstack update uud uue version vol \ unstack update uud uue version vol \
whereis which writeisofs fetch \ whereis which writeisofs fetch \
zdump zmodem pkgin_cd pkgin_all \ zdump zmodem pkgin_cd pkgin_all \

View file

@ -1,4 +0,0 @@
PROG= tty
MAN=
.include <bsd.prog.mk>

View file

@ -1,30 +0,0 @@
/* tty.c - Return tty name Author: Freeman P. Pascal IV */
/* Minor changes to make tty conform to POSIX1003.2 Draft10
Thomas Brupbacher (tobr@mw.lpc.ethz.ch) */
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char **argv);
int main(argc, argv)
int argc;
char *argv[];
{
char *tty_name;
tty_name = ttyname(STDIN_FILENO);
if ((argc == 2) && (!strcmp(argv[1], "-s")))
/* Do nothing - shhh! we're in silent mode */ ;
else
puts((tty_name != NULL) ? tty_name : "not a tty");
if (isatty(STDIN_FILENO) == 0)
return(1);
else
return(0);
}

View file

@ -19,7 +19,7 @@ MAN= ash.1 at.1 \
stty.1 svc.1 svrctl.1 \ stty.1 svc.1 svrctl.1 \
synctree.1 sysenv.1 sz.1 tail.1 telnet.1 template.1 \ synctree.1 sysenv.1 sz.1 tail.1 telnet.1 template.1 \
term.1 termcap.1 tget.1 time.1 true.1 \ term.1 termcap.1 tget.1 time.1 true.1 \
truncate.1 tty.1 umount.1 uname.1 \ truncate.1 umount.1 uname.1 \
uud.1 uue.1 vol.1 whereis.1 which.1 \ uud.1 uue.1 vol.1 whereis.1 which.1 \
yap.1 linkfarm.1 pkg_view.1 yap.1 linkfarm.1 pkg_view.1

View file

@ -1,30 +0,0 @@
.TH TTY 1
.SH NAME
tty \- print the device name of this tty
.SH SYNOPSIS
\fBtty \fR[\fB\-s\fR]\fR
.br
.de FL
.TP
\\fB\\$1\\fR
\\$2
..
.de EX
.TP 20
\\fB\\$1\\fR
# \\$2
..
.SH OPTIONS
.TP 5
.B \-s
# Silent mode, only the exit status is affected.
.SH EXAMPLES
.TP 20
.B tty
# Print the tty name
.SH DESCRIPTION
.PP
Print the name of the controlling tty. If the flag \fB\-s\fR is given,
\fItty\fR is equivalent to the call \fBtest \-t 0\fR.
.SH "SEE ALSO"
.BR ttyname (3).

View file

@ -215,6 +215,7 @@
2012/10/17 12:00:00,usr.bin/tput 2012/10/17 12:00:00,usr.bin/tput
2012/10/17 12:00:00,usr.bin/tr 2012/10/17 12:00:00,usr.bin/tr
2012/10/17 12:00:00,usr.bin/tsort 2012/10/17 12:00:00,usr.bin/tsort
2012/10/17 12:00:00,usr.bin/tty
2010/10/06 07:59:18,usr.bin/uniq 2010/10/06 07:59:18,usr.bin/uniq
2013/10/23 12:00:00,usr.bin/units 2013/10/23 12:00:00,usr.bin/units
2012/10/17 12:00:00,usr.bin/unvis 2012/10/17 12:00:00,usr.bin/unvis

View file

@ -26,7 +26,7 @@ SUBDIR= asa \
shuffle sed seq \ shuffle sed seq \
sort split stat su \ sort split stat su \
tee tic tput \ tee tic tput \
tr tsort unexpand \ tr tsort tty unexpand \
toproto \ toproto \
uniq units unvis unzip users \ uniq units unvis unzip users \
uuidgen vis \ uuidgen vis \

6
usr.bin/tty/Makefile Normal file
View file

@ -0,0 +1,6 @@
# $NetBSD: Makefile,v 1.3 1994/12/07 00:46:54 jtc Exp $
# @(#)Makefile 8.1 (Berkeley) 6/6/93
PROG= tty
.include <bsd.prog.mk>

75
usr.bin/tty/tty.1 Normal file
View file

@ -0,0 +1,75 @@
.\" $NetBSD: tty.1,v 1.8 2003/08/07 11:16:51 agc Exp $
.\"
.\" Copyright (c) 1990, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" the Institute of Electrical and Electronics Engineers, 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.
.\"
.\" @(#)tty.1 8.1 (Berkeley) 6/6/93
.\"
.Dd June 6, 1993
.Dt TTY 1
.Os
.Sh NAME
.Nm tty
.Nd return user's terminal name
.Sh SYNOPSIS
.Nm
.Op Fl s
.Sh DESCRIPTION
The
.Nm
utility writes the name of the terminal attached to standard input
to standard output.
The name that is written is the string returned by
.Xr ttyname 3 .
If the standard input is not a terminal, the message ``not a tty''
is written.
The options are as follows:
.Bl -tag -width Ds
.It Fl s
Don't write the terminal name; only the exit status is affected
when this option is specified.
The
.Fl s
option is deprecated in favor of the
.Dq Li "test -t 0"
command.
.El
.Pp
.Nm
exits 0 if the standard input is a terminal, 1 if the standard input is
not a terminal, and \*[Gt]1 if an error occurs.
.Sh SEE ALSO
.Xr test 1 ,
.Xr ttyname 3
.Sh STANDARDS
The
.Nm
utility conforms to
.St -p1003.2-92 .

81
usr.bin/tty/tty.c Normal file
View file

@ -0,0 +1,81 @@
/* $NetBSD: tty.c,v 1.8 2011/09/06 18:34:57 joerg Exp $ */
/*
* Copyright (c) 1988, 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.
*/
#include <sys/cdefs.h>
#ifndef lint
__COPYRIGHT("@(#) Copyright (c) 1988, 1993\
The Regents of the University of California. All rights reserved.");
#endif /* not lint */
#ifndef lint
#if 0
static char sccsid[] = "@(#)tty.c 8.1 (Berkeley) 6/6/93";
#endif
__RCSID("$NetBSD: tty.c,v 1.8 2011/09/06 18:34:57 joerg Exp $");
#endif /* not lint */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
__dead static void usage(void);
int
main(int argc, char **argv)
{
int ch, sflag;
char *t;
sflag = 0;
while ((ch = getopt(argc, argv, "s")) != -1) {
switch((char)ch) {
case 's':
sflag = 1;
break;
case '?':
default:
usage();
/* NOTREACHED */
}
}
t = ttyname(STDIN_FILENO);
if (!sflag)
puts(t ? t : "not a tty");
exit(t ? 0 : 1);
}
static void
usage(void)
{
fprintf(stderr, "usage: tty [-s]\n");
exit(2);
}