references a character one byte before the start of its input
buffer.
{
int c;
char *cp;
+ static int quoting = 0;
cp = buffer;
*cp = 0;
for (;;) {
switch (c = getchar ()) {
case EOF:
+ quoting = 0;
clearerr (stdin);
longjmp (sigenv, DONE);
case '\n':
- if (cp[-1] == QUOTE) {
- cp[-1] = c;
+ if (quoting) {
+ *(cp - 1) = c;
wtuser = 0;
return 1;
}
return 0;
default:
+ if (c == QUOTE) {
+ quoting = 1;
+ } else {
+ quoting = 0;
+ }
if (cp < buffer + n)
*cp++ = c;
*cp = 0;