(UNROLL): Remove.
authorJim Meyering <jim@meyering.net>
Mon, 22 Sep 2003 15:41:05 +0000 (15:41 +0000)
committerJim Meyering <jim@meyering.net>
Mon, 22 Sep 2003 15:41:05 +0000 (15:41 +0000)
(main): Exit immediately when write failure is detected.
Simplify code by assigning to argv when argc == 1.

src/yes.c

index 6f62cb7..f77ec56 100644 (file)
--- a/src/yes.c
+++ b/src/yes.c
@@ -32,9 +32,6 @@
 
 #define WRITTEN_BY _("Written by David MacKenzie.")
 
-/* How many iterations between ferror checks.  */
-#define UNROLL 10000
-
 /* The name this program was run with. */
 char *program_name;
 
@@ -81,34 +78,19 @@ main (int argc, char **argv)
 
   if (argc == 1)
     {
-      while (1)
-       {
-         int i;
-         for (i = 0; i < UNROLL; i++)
-           puts ("y");
-         if (ferror (stdout))
-           break;
-       }
+      argv[1] = "y";
+      argc = 2;
     }
-  else
+
+  for (;;)
     {
-      while (1)
-       {
-         int i;
-         for (i = 0; i < UNROLL; i++)
-           {
-             int j;
-             for (j = 1; j < argc; j++)
-               {
-                 fputs (argv[j], stdout);
-                 putchar (j == argc - 1 ? '\n' : ' ');
-               }
-           }
-         if (ferror (stdout))
-           break;
-       }
+      int i;
+      for (i = 1; i < argc; i++)
+       if (fputs (argv[i], stdout) == EOF
+           || putchar (i == argc - 1 ? '\n' : ' ') == EOF)
+         {
+           error (0, errno, _("standard output"));
+           exit (EXIT_FAILURE);
+         }
     }
-
-  error (0, errno, _("standard output"));
-  exit (EXIT_FAILURE);
 }