Fix GH-14189: PHP Interactive shell input state incorrectly handles quoted heredoc literals.

Only `'` was handled, no handling case for `"` existed. Simply add it so
the heredoc tag is set up correctly.

Closes GH-14195.
This commit is contained in:
Niels Dossche 2024-05-10 15:53:04 +02:00
parent 15813d69a5
commit 217b753a3d
No known key found for this signature in database
GPG key ID: B8A8AD166DF0E2E5
3 changed files with 49 additions and 0 deletions

View 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