Importing usr.bin/asa

No Minix-specific changes needed

Change-Id: Ib83606334a487ab2e35c475dd591e29d0ebef7a5
This commit is contained in:
Thomas Cort 2013-10-25 20:00:29 -04:00
parent 6a60dd0a19
commit 539d1e306a
6 changed files with 214 additions and 1 deletions

View file

@ -218,6 +218,7 @@
./usr/bin/arch minix-sys ./usr/bin/arch minix-sys
./usr/bin/arp minix-sys ./usr/bin/arp minix-sys
./usr/bin/as minix-sys binutils ./usr/bin/as minix-sys binutils
./usr/bin/asa minix-sys
./usr/bin/at minix-sys ./usr/bin/at minix-sys
./usr/bin/atf2kyua minix-sys kyua ./usr/bin/atf2kyua minix-sys kyua
./usr/bin/atf-config minix-sys atf,!kyua ./usr/bin/atf-config minix-sys atf,!kyua
@ -1788,6 +1789,7 @@
./usr/man/man1/apropos.1 minix-sys ./usr/man/man1/apropos.1 minix-sys
./usr/man/man1/ar.1 minix-sys binutils ./usr/man/man1/ar.1 minix-sys binutils
./usr/man/man1/as.1 minix-sys binutils ./usr/man/man1/as.1 minix-sys binutils
./usr/man/man1/asa.1 minix-sys
./usr/man/man1/ash.1 minix-sys ./usr/man/man1/ash.1 minix-sys
./usr/man/man1/at.1 minix-sys ./usr/man/man1/at.1 minix-sys
./usr/man/man1/atf2kyua.1 minix-sys kyua ./usr/man/man1/atf2kyua.1 minix-sys kyua

View file

@ -143,6 +143,7 @@
2012/10/17 12:00:00,tools/tic 2012/10/17 12:00:00,tools/tic
2012/10/17 12:00:00,tools/tsort 2012/10/17 12:00:00,tools/tsort
2009/05/08 12:48:43,usr.bin/apropos 2009/05/08 12:48:43,usr.bin/apropos
2012/10/17 12:00:00,usr.bin/asa
2012/10/17 12:00:00,usr.bin/banner 2012/10/17 12:00:00,usr.bin/banner
2012/10/17 12:00:00,usr.bin/basename 2012/10/17 12:00:00,usr.bin/basename
2013/05/31 12:00:00,usr.bin/bdes 2013/05/31 12:00:00,usr.bin/bdes

View file

@ -3,7 +3,7 @@
.include <bsd.own.mk> .include <bsd.own.mk>
SUBDIR= \ SUBDIR= asa \
banner basename bdes \ banner basename bdes \
bzip2 bzip2recover \ bzip2 bzip2recover \
cal chpass cksum \ cal chpass cksum \

5
usr.bin/asa/Makefile Normal file
View file

@ -0,0 +1,5 @@
# $NetBSD: Makefile,v 1.5 2009/04/14 22:15:17 lukem Exp $
PROG= asa
.include <bsd.prog.mk>

88
usr.bin/asa/asa.1 Normal file
View file

@ -0,0 +1,88 @@
.\" $NetBSD: asa.1,v 1.11 2002/02/08 01:36:18 ross Exp $
.\"
.\" Copyright (c) 1993 Winning Strategies, Inc.
.\" 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. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by Winning Strategies, Inc.
.\" 4. The name of the author may not be used to endorse or promote products
.\" derived from this software without specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
.\"
.Dd September 23, 1993
.Dt ASA 1
.Os
.Sh NAME
.Nm asa
.Nd interpret carriage-control characters
.Sh SYNOPSIS
.Nm
.Op Ar
.Sh DESCRIPTION
The
.Nm
utility reads files sequentially, mapping
.Tn FORTRAN
carriage-control characters to line-printer control sequences,
and writes them to the standard output.
.Pp
The first character of each line is interpreted as a carriage-control
character. The following characters are interpreted as follows:
.Bl -tag -width "\*[Lt]space\*[Gt]"
.It \*[Lt]space\*[Gt]
Output the rest of the line without change.
.It 0
Output a \*[Lt]newline\*[Gt] character before printing the rest of the line.
.It 1
Output a \*[Lt]formfeed\*[Gt] character before printing the rest of the line.
.It +
The trailing \*[Lt]newline\*[Gt] of the previous line is replaced by a \*[Lt]carriage-return\*[Gt]
before printing the rest of the line.
.El
.Pp
Lines beginning with characters other than the above are treated as if they
begin with \*[Lt]space\*[Gt].
.Sh EXIT STATUS
The
.Nm
utility exit 0 on success, and \*[Gt]0 if an error occurs.
.Sh EXAMPLES
To view a file containing the output of a
.Tn FORTRAN
program:
.Dl asa file
.Pp
To format the output of a
.Tn FORTRAN
program and redirect it to a line-printer:
.Dl a.out | asa | lpr
.Sh SEE ALSO
.Xr f77 1
.Sh STANDARDS
The
.Nm
utility conforms to
.St -p1003.2-92
and to
.St -xcu5 .
.Sh AUTHORS
J.T. Conklin, Winning Strategies, Inc.

117
usr.bin/asa/asa.c Normal file
View file

@ -0,0 +1,117 @@
/* $NetBSD: asa.c,v 1.16 2007/06/24 23:23:10 christos Exp $ */
/*
* Copyright (c) 1993,94 Winning Strategies, Inc.
* 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. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Winning Strategies, Inc.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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
__RCSID("$NetBSD: asa.c,v 1.16 2007/06/24 23:23:10 christos Exp $");
#endif
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
static void asa(FILE *);
int main(int, char *[]);
int
/*ARGSUSED*/
main (int argc, char *argv[])
{
FILE *fp;
/* skip progname */
argv++;
if (*argv == NULL)
asa(stdin);
else
do {
if ((fp = fopen(*argv, "r")) == NULL) {
warn("%s", *argv);
continue;
}
asa(fp);
(void)fclose(fp);
} while (*++argv != NULL);
return 0;
}
static void
asa(FILE *f)
{
char *buf;
size_t len;
if ((buf = fgetln(f, &len)) != NULL) {
if (len > 0 && buf[len - 1] == '\n')
buf[--len] = '\0';
/* special case the first line */
switch (buf[0]) {
case '0':
(void)putchar('\n');
break;
case '1':
(void)putchar('\f');
break;
}
if (len > 1 && buf[0] && buf[1])
(void)fwrite(buf + 1, 1, len - 1, stdout);
while ((buf = fgetln(f, &len)) != NULL) {
if (len > 0 && buf[len - 1] == '\n')
buf[--len] = '\0';
switch (buf[0]) {
default:
case ' ':
(void)putchar('\n');
break;
case '0':
(void)putchar('\n');
(void)putchar('\n');
break;
case '1':
(void)putchar('\f');
break;
case '+':
(void)putchar('\r');
break;
}
if (len > 1 && buf[0] && buf[1])
(void)fwrite(buf + 1, 1, len - 1, stdout);
}
(void)putchar('\n');
}
}