commit 3aec0ac2a4a95b4a1b04eca2502495568f0aa7c4
Author: sin <[email protected]>
Date:   Mon Jan 6 18:20:26 2014 +0000

    Use a return value to signal an invalid backslash
    
    Just for consistency with the rest of the code.

diff --git a/xargs.c b/xargs.c
index 800d4e8..9a0b74c 100644
--- a/xargs.c
+++ b/xargs.c
@@ -17,7 +17,7 @@ static void deinputc(int);
 static void fillbuf(int);
 static int eatspace(void);
 static int parsequote(int);
-static void parseescape(void);
+static int parseescape(void);
 static char *poparg(void);
 static void pusharg(char *);
 static void runcmd(void);
@@ -160,7 +160,7 @@ parsequote(int q)
        return -1;
 }
 
-static void
+static int
 parseescape(void)
 {
        int ch;
@@ -168,9 +168,9 @@ parseescape(void)
        if ((ch = inputc()) != EOF) {
                fillbuf(ch);
                argbpos++;
-               return;
+               return ch;
        }
-       enprintf(EXIT_FAILURE, "backslash at EOF
");
+       return -1;
 }
 
 static char *
@@ -198,7 +198,8 @@ poparg(void)
                                         "unterminated double quote
");
                        break;
                case '\':
-                       parseescape();
+                       if (parseescape() == -1)
+                               enprintf(EXIT_FAILURE, "backslash at EOF
");
                        break;
                default:
                        fillbuf(ch);


Reply via email to