rem: if ((!quote && line[i] == ' ') || line[i] == quote || line[i] == '\0') {
add: if (line[i] == '\0') { *_start = &line[i]; return line; } if ((!quote && line[i] == ' ') || line[i] == quote) {
context: next_argument(char **_start, bool separate){	char *line = *_start;	char quote = 0;	int32 i;	// eliminate leading spaces	while (line[0] == ' ')		line++;	if (line[0] == '"' || line[0] == '\'') {		quote = line[0];		line++;	}	if (!line[0])		return NULL;	for (i = 0;; i++) {		if (line[i] == '\\' && line[i + 1] != '\0')			continue;		if ((!quote && line[i] == ' ') || line[i] == quote || line[i] == '\0') {			// argument separator!			if (separate)				line[i] = '\0';			*_start = &line[i + 1];			return line;		}	}	return NULL;}