From 0ca368c8d9ff60f8f59577480322d24e994dae7a Mon Sep 17 00:00:00 2001 From: Dianne Skoll Date: Sun, 5 Sep 2021 10:02:59 -0400 Subject: [PATCH] Parse arg to INCLUDECMD as a character string, not a sequence of tokens. --- src/files.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/files.c b/src/files.c index 789f8f15..9ecbb33e 100644 --- a/src/files.c +++ b/src/files.c @@ -553,32 +553,28 @@ int DoInclude(ParsePtr p) int DoIncludeCmd(ParsePtr p) { DynamicBuffer buf; - DynamicBuffer token; int r; + int ch; + char append_buf[2]; + + append_buf[1] = 0; - int done = 0; DBufInit(&buf); - DBufInit(&token); while(1) { - if ( (r=ParseToken(p, &token)) ) { + ch = ParseChar(p, &r, 0); + if (r) { DBufFree(&buf); return r; } - if (!*DBufValue(&token)) break; - if (done) { - if (DBufPuts(&buf, " ") != OK) { - DBufFree(&buf); - return E_NO_MEM; - } - } - done = 1; - if (DBufPuts(&buf, DBufValue(&token)) != OK) { + if (!ch) { + break; + } + append_buf[0] = (char) ch; + if (DBufPuts(&buf, append_buf) != OK) { DBufFree(&buf); return E_NO_MEM; } - DBufFree(&token); - DBufInit(&token); } if ( (r=IncludeCmd(DBufValue(&buf))) ) {