+ c1 = 0;
+ dolflg = DOALL;
+ for (;;) {
+ if (c1) {
+ if (c == c1) {
+ c1 = 0;
+ dolflg = DOALL;
+ } else if (c == '\\') {
+ c = getC(0);
+ if (c == HIST)
+ c |= QUOTE;
+ else {
+ if (c == '\n')
+ /*
+ if (c1 == '`')
+ c = ' ';
+ else
+ */
+ c |= QUOTE;
+ ungetC(c);
+ c = '\\';
+ }
+ } else if (c == '\n') {
+ seterrc("Unmatched ", c1);
+ ungetC(c);
+ break;
+ }
+ } else if (cmap(c, _META|_Q|_Q1|_ESC)) {
+ if (c == '\\') {
+ c = getC(0);
+ if (c == '\n') {
+ if (onelflg == 1)
+ onelflg = 2;
+ break;
+ }
+ if (c != HIST)
+ *wp++ = '\\', --i;
+ c |= QUOTE;
+ } else if (cmap(c, _Q|_Q1)) { /* '"` */
+ c1 = c;
+ dolflg = c == '"' ? DOALL : DOEXCL;
+ } else if (c != '#' || !intty) {
+ ungetC(c);
+ break;
+ }
+ }
+ if (--i > 0) {
+ *wp++ = c;
+ c = getC(dolflg);
+ } else {
+ seterr("Word too long");
+ wp = &wbuf[1];
+ break;