Skip to content

Commit c21d6b2

Browse files
committed
sapi/cli: Don't set ini-settings mid-expression in interactive shell
1 parent 160a4a6 commit c21d6b2

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

ext/readline/readline_cli.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,16 @@ static int readline_shell_run(void) /* {{{ */
649649

650650
len = strlen(line);
651651

652-
if (line[0] == '#' && line[1] != '[') {
652+
if (pos + len + 2 > size) {
653+
size = pos + len + 2;
654+
code = erealloc(code, size);
655+
}
656+
memcpy(&code[pos], line, len);
657+
pos += len;
658+
code[pos] = '\n';
659+
code[++pos] = '\0';
660+
661+
if (line[0] == '#' && line[1] != '[' && cli_is_valid_code(code, pos, &prompt)) {
653662
char *param = strstr(&line[1], "=");
654663
if (param) {
655664
zend_string *cmd;
@@ -661,21 +670,9 @@ static int readline_shell_run(void) /* {{{ */
661670
add_history(line);
662671

663672
zend_string_release_ex(prompt, 0);
664-
/* TODO: This might be wrong! */
665-
prompt = cli_get_prompt("php", '>');
666-
continue;
667673
}
668674
}
669675

670-
if (pos + len + 2 > size) {
671-
size = pos + len + 2;
672-
code = erealloc(code, size);
673-
}
674-
memcpy(&code[pos], line, len);
675-
pos += len;
676-
code[pos] = '\n';
677-
code[++pos] = '\0';
678-
679676
if (*line) {
680677
add_history(line);
681678
history_lines_to_write += 1;

0 commit comments

Comments
 (0)