mirror of
https://github.com/php/php-src.git
synced 2024-11-27 03:44:07 +08:00
Merge branch 'pull-request/1278'
This commit is contained in:
commit
eef762d576
49
ext/standard/tests/file/bug69628.phpt
Normal file
49
ext/standard/tests/file/bug69628.phpt
Normal file
@ -0,0 +1,49 @@
|
||||
--TEST--
|
||||
Bug #69628: GLOB_BRACE with multiple brackets within the braces fails
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!defined('GLOB_BRACE')) {
|
||||
die('skip this test requires GLOB_BRACE support');
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$file_path = dirname(__FILE__);
|
||||
|
||||
// temp dirname used here
|
||||
$dirname = "$file_path/bug69628";
|
||||
|
||||
// temp dir created
|
||||
mkdir($dirname);
|
||||
|
||||
// temp files created
|
||||
file_put_contents("$dirname/image.jPg", '');
|
||||
file_put_contents("$dirname/image.gIf", '');
|
||||
file_put_contents("$dirname/image.png", '');
|
||||
|
||||
sort_var_dump(glob("$dirname/*.{[jJ][pP][gG],[gG][iI][fF]}", GLOB_BRACE));
|
||||
|
||||
function sort_var_dump($results) {
|
||||
sort($results);
|
||||
var_dump($results);
|
||||
}
|
||||
|
||||
?>
|
||||
--CLEAN--
|
||||
<?php
|
||||
|
||||
$file_path = dirname(__FILE__);
|
||||
unlink("$file_path/bug69628/image.jPg");
|
||||
unlink("$file_path/bug69628/image.gIf");
|
||||
unlink("$file_path/bug69628/image.png");
|
||||
rmdir("$file_path/bug69628/");
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(%d) "%s/bug69628/image.gIf"
|
||||
[1]=>
|
||||
string(%d) "%s/bug69628/image.jPg"
|
||||
}
|
@ -5,6 +5,9 @@ Test glob() function: usage variations
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||
die('skip.. Not valid for Windows');
|
||||
}
|
||||
if (!defined('GLOB_BRACE')) {
|
||||
die('skip this test requires GLOB_BRACE support');
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
@ -293,17 +293,19 @@ globexp2(ptr, pattern, pglob, rv)
|
||||
}
|
||||
|
||||
for (i = 0, pl = pm = ptr; pm <= pe; pm++) {
|
||||
const Char *pb;
|
||||
|
||||
switch (*pm) {
|
||||
case LBRACKET:
|
||||
/* Ignore everything between [] */
|
||||
for (pl = pm++; *pm != RBRACKET && *pm != EOS; pm++)
|
||||
for (pb = pm++; *pm != RBRACKET && *pm != EOS; pm++)
|
||||
;
|
||||
if (*pm == EOS) {
|
||||
/*
|
||||
* We could not find a matching RBRACKET.
|
||||
* Ignore and just look for RBRACE
|
||||
*/
|
||||
pm = pl;
|
||||
pm = pb;
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user