From 3aec0ac2a4a95b4a1b04eca2502495568f0aa7c4 Mon Sep 17 00:00:00 2001 From: sin Date: Mon, 6 Jan 2014 18:20:26 +0000 Subject: [PATCH] Use a return value to signal an invalid backslash Just for consistency with the rest of the code. --- xargs.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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\n"); + return -1; } static char * @@ -198,7 +198,8 @@ poparg(void) "unterminated double quote\n"); break; case '\\': - parseescape(); + if (parseescape() == -1) + enprintf(EXIT_FAILURE, "backslash at EOF\n"); break; default: fillbuf(ch);