yes: Simplify, only support one argument

The previous code was too difficult to decipher for such a simple tool.

Since yes(1) is not specified in any standard and several well-known
implementations only support a single argument, do the same here.

Thanks to everyone who offered implementation suggestions in the
hackers@suckless.org email thread.
This commit is contained in:
Michael Forney
2019-10-31 18:07:58 -07:00
parent 39f92650d3
commit 4f1d0df755
2 changed files with 8 additions and 11 deletions

13
yes.c
View File

@@ -6,23 +6,20 @@
static void
usage(void)
{
eprintf("usage: %s [string ...]\n", argv0);
eprintf("usage: %s [string]\n", argv0);
}
int
main(int argc, char *argv[])
{
char **p;
const char *s;
ARGBEGIN {
default:
usage();
} ARGEND
for (p = argv; ; p = (*p && *(p + 1)) ? p + 1 : argv) {
fputs(*p ? *p : "y", stdout);
putchar((!*p || !*(p + 1)) ? '\n' : ' ');
}
return 1; /* not reached */
s = argc ? argv[0] : "y";
for (;;)
puts(s);
}