# HG changeset patch # User Mychaela Falconia # Date 1611803672 0 # Node ID c8685074c84561315128dae35423bb53cd24e0a2 # Parent 0dcd666292e4c8b962d5d03e90e8c395f9ae010b fc-simtool command parser: fancier handling of quoted strings diff -r 0dcd666292e4 -r c8685074c845 simtool/dispatch.c --- a/simtool/dispatch.c Thu Jan 28 02:56:10 2021 +0000 +++ b/simtool/dispatch.c Thu Jan 28 03:14:32 2021 +0000 @@ -125,12 +125,19 @@ } if (*cp == '"') { *ap++ = ++cp; - while (*cp && *cp != '"') - cp++; - if (*cp != '"') { - fprintf(stderr, + for (;;) { + if (!*cp) { +unterm_qstring: fprintf(stderr, "error: unterminated quoted string\n"); - return(-1); + return(-1); + } + if (*cp == '"') + break; + if (*cp++ == '\\') { + if (!*cp) + goto unterm_qstring; + cp++; + } } *cp++ = '\0'; } else {