sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 120d8179202f359b4cca399ed396a205e28b01c2
parent f75d7a47ff1058e45c89b39b60c41c933ab959f5
Author: Christoph Lohmann <20h@r-36.net>
Date:   Mon, 23 Apr 2012 16:27:40 +0200

Adding the yes(1) command.
Diffstat:
MMakefile | 3++-
MTODO | 1-
Ayes.1 | 10++++++++++
Ayes.c | 44++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile @@ -52,7 +52,8 @@ SRC = \ tty.c \ uname.c \ seq.c \ - wc.c + wc.c \ + yes.c OBJ = $(SRC:.c=.o) $(LIB) BIN = $(SRC:.c=) diff --git a/TODO b/TODO @@ -60,4 +60,3 @@ unlink file who -yes [string] diff --git a/yes.1 b/yes.1 @@ -0,0 +1,10 @@ +.TH YES 1 sbase\-VERSION +.SH NAME +yes \- output a string repeatedly +.SH SYNOPSIS +.B yes +.RB [ string ... ] +.SH DESCRIPTION +.B yes +will repeatedly output 'y' or the strings specified. + diff --git a/yes.c b/yes.c @@ -0,0 +1,44 @@ +/* See LICENSE file for copyright and license details. */ +#include <unistd.h> +#include <libgen.h> +#include <stdio.h> +#include <stdlib.h> + +#include "arg.h" +#include "util.h" + +char *argv0; + +void +usage(void) +{ + eprintf("usage: %s [string ...]\n", basename(argv0)); +} + +int +main(int argc, char *argv[]) +{ + int i; + + ARGBEGIN { + default: + usage(); + } ARGEND; + + if (!argc) { + for(;;) + puts("y"); + } + + for (;;) { + for (i = 0; i < argc; i++) { + fputs(argv[i], stdout); + if (argv[i+1] != NULL) + fputs(" ", stdout); + } + fputs("\n", stdout); + } + + return EXIT_SUCCESS; +} +