mirror of
https://github.com/php/php-src.git
synced 2024-11-23 18:04:36 +08:00
Merge branch 'PHP-8.3'
* PHP-8.3: Fix GH-14189: PHP Interactive shell input state incorrectly handles quoted heredoc literals.
This commit is contained in:
commit
f88fc9c6e8
@ -343,6 +343,7 @@ static int cli_is_valid_code(char *code, size_t len, zend_string **prompt) /* {{
|
|||||||
case ' ':
|
case ' ':
|
||||||
case '\t':
|
case '\t':
|
||||||
case '\'':
|
case '\'':
|
||||||
|
case '"':
|
||||||
break;
|
break;
|
||||||
case '\r':
|
case '\r':
|
||||||
case '\n':
|
case '\n':
|
||||||
|
44
sapi/cli/tests/gh14189.phpt
Normal file
44
sapi/cli/tests/gh14189.phpt
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
--TEST--
|
||||||
|
GH-14189 (PHP Interactive shell input state incorrectly handles quoted heredoc literals.)
|
||||||
|
--EXTENSIONS--
|
||||||
|
readline
|
||||||
|
--SKIPIF--
|
||||||
|
<?php
|
||||||
|
include "skipif.inc";
|
||||||
|
if (readline_info('done') === NULL) {
|
||||||
|
die ("skip need readline support");
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
$php = getenv('TEST_PHP_EXECUTABLE');
|
||||||
|
|
||||||
|
// disallow console escape sequences that may break the output
|
||||||
|
putenv('TERM=VT100');
|
||||||
|
|
||||||
|
$code = <<<EOT
|
||||||
|
\$test = <<<"EOF"
|
||||||
|
foo
|
||||||
|
bar
|
||||||
|
baz
|
||||||
|
EOF;
|
||||||
|
echo \$test;
|
||||||
|
exit
|
||||||
|
EOT;
|
||||||
|
|
||||||
|
$code = escapeshellarg($code);
|
||||||
|
echo `echo $code | "$php" -a`, "\n";
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
Interactive shell
|
||||||
|
|
||||||
|
php > $test = <<<"EOF"
|
||||||
|
<<< > foo
|
||||||
|
<<< > bar
|
||||||
|
<<< > baz
|
||||||
|
<<< > EOF;
|
||||||
|
php > echo $test;
|
||||||
|
foo
|
||||||
|
bar
|
||||||
|
baz
|
||||||
|
php > exit
|
Loading…
Reference in New Issue
Block a user