char * dp_getword_conf(dp_pool_t *p, const char **line) { const char *str = *line, *strend; char *res; char quote; while (*str && dp_isspace(*str)) ++str; if (!*str) { *line = str; return ""; } if ((quote = *str) == '"' || quote == '\'') { strend = str + 1; while (*strend && *strend != quote) { if (*strend == '\\' && strend[1] && (strend[1] == quote || strend[1] == '\\')) { strend += 2; } else { ++strend; } } res = substring_conf(p, str + 1, strend - str - 1, quote); if (*strend == quote) ++strend; } else { strend = str; while (*strend && !dp_isspace(*strend)) ++strend; res = substring_conf(p, str, strend - str, 0); } while (*strend && dp_isspace(*strend)) ++strend; *line = strend; return res; }
static char *php_ap_getword_conf(const zend_encoding *encoding, char *str) { while (*str && isspace(*str)) { ++str; } if (!*str) { return estrdup(""); } if (*str == '"' || *str == '\'') { char quote = *str; str++; return substring_conf(str, (int)strlen(str), quote); } else { char *strend = str; while (*strend && !isspace(*strend)) { ++strend; } return substring_conf(str, strend - str, 0); } }