diff --git a/distrib/sets/lists/minix/mi b/distrib/sets/lists/minix/mi index c62c3f137..1884bb95f 100644 --- a/distrib/sets/lists/minix/mi +++ b/distrib/sets/lists/minix/mi @@ -218,6 +218,7 @@ ./usr/bin/arch minix-sys ./usr/bin/arp minix-sys ./usr/bin/as minix-sys binutils +./usr/bin/asa minix-sys ./usr/bin/at minix-sys ./usr/bin/atf2kyua minix-sys kyua ./usr/bin/atf-config minix-sys atf,!kyua @@ -1788,6 +1789,7 @@ ./usr/man/man1/apropos.1 minix-sys ./usr/man/man1/ar.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/at.1 minix-sys ./usr/man/man1/atf2kyua.1 minix-sys kyua diff --git a/releasetools/nbsd_ports b/releasetools/nbsd_ports index aac260e7e..e5a7b2644 100644 --- a/releasetools/nbsd_ports +++ b/releasetools/nbsd_ports @@ -143,6 +143,7 @@ 2012/10/17 12:00:00,tools/tic 2012/10/17 12:00:00,tools/tsort 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/basename 2013/05/31 12:00:00,usr.bin/bdes diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 75a0a432b..7d602413b 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -3,7 +3,7 @@ .include -SUBDIR= \ +SUBDIR= asa \ banner basename bdes \ bzip2 bzip2recover \ cal chpass cksum \ diff --git a/usr.bin/asa/Makefile b/usr.bin/asa/Makefile new file mode 100644 index 000000000..5086fe68e --- /dev/null +++ b/usr.bin/asa/Makefile @@ -0,0 +1,5 @@ +# $NetBSD: Makefile,v 1.5 2009/04/14 22:15:17 lukem Exp $ + +PROG= asa + +.include diff --git a/usr.bin/asa/asa.1 b/usr.bin/asa/asa.1 new file mode 100644 index 000000000..1fda8f97c --- /dev/null +++ b/usr.bin/asa/asa.1 @@ -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. diff --git a/usr.bin/asa/asa.c b/usr.bin/asa/asa.c new file mode 100644 index 000000000..a6cb103fb --- /dev/null +++ b/usr.bin/asa/asa.c @@ -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 +#ifndef lint +__RCSID("$NetBSD: asa.c,v 1.16 2007/06/24 23:23:10 christos Exp $"); +#endif + +#include +#include +#include + +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'); + } +}