flags, pwordexp, ifs, ifs_white, 1, NULL);
flags, pwordexp, ifs, ifs_white, 1);
parse_dquote (char **word, size_t *word_length, size_t *max_length,	      const char *words, size_t *offset, int flags,	      wordexp_t *pwordexp, const char * ifs, const char * ifs_white){  /* We are poised just after a double-quote */  int error;  for (; words[*offset]; ++(*offset))    {      switch (words[*offset])	{	case '"':	  return 0;	case '$':	  error = parse_dollars (word, word_length, max_length, words, offset,				 flags, pwordexp, ifs, ifs_white, 1, NULL);	  /* The ``1'' here is to tell parse_dollars not to	   * split the fields.  It may need to, however ("$@").	   */	  if (error)	    return error;	  break;	case '`':	  if (flags & WRDE_NOCMD)	    return WRDE_CMDSUB;	  ++(*offset);	  error = parse_backtick (word, word_length, max_length, words,				  offset, flags, NULL, NULL, NULL);	  /* The first NULL here is to tell parse_backtick not to	   * split the fields.	   */	  if (error)	    return error;	  break;	case '\\':	  error = parse_qtd_backslash (word, word_length, max_length, words,				       offset);	  if (error)	    return error;	  break;	default:	  *word = w_addchar (*word, word_length, max_length, words[*offset]);	  if (*word == NULL)	    return WRDE_NOSPACE;	}    }  /* Unterminated string */  return WRDE_SYNTAX;}