commit 0511ecfd8465fe44c8ba4d26278aeb884733f1ed
Author: sin <[email protected]>
Date:   Mon Jan 6 18:12:06 2014 +0000

    If eatspace() encounters EOF don't try to read again from stdin

diff --git a/xargs.c b/xargs.c
index da7754c..1bbf58c 100644
--- a/xargs.c
+++ b/xargs.c
@@ -15,7 +15,7 @@ enum {
 static int inputc(void);
 static void deinputc(int);
 static void fillbuf(int);
-static void eatspace(void);
+static int eatspace(void);
 static int parsequote(int);
 static void parseescape(void);
 static char *poparg(void);
@@ -125,7 +125,7 @@ fillbuf(int ch)
        argb[argbpos] = ch;
 }
 
-static void
+static int
 eatspace(void)
 {
        int ch;
@@ -136,9 +136,10 @@ eatspace(void)
                        break;
                default:
                        deinputc(ch);
-                       return;
+                       return ch;
                }
        }
+       return -1;
 }
 
 static int
@@ -176,7 +177,8 @@ poparg(void)
        int ch;
 
        argbpos = 0;
-       eatspace();
+       if (eatspace() == -1)
+               return NULL;
        while ((ch = inputc()) != EOF) {
                switch (ch) {
                case ' ': case '        ': case '
':


Reply via email to