mirror of
https://github.com/php/php-src.git
synced 2025-08-20 01:14:28 +02:00
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines in all *.phpt sections. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
64 lines
1.3 KiB
PHP
64 lines
1.3 KiB
PHP
--TEST--
|
|
RecursiveDirectoryIterator with dir path long or of edge case length
|
|
--SKIPIF--
|
|
<?php
|
|
include dirname(__FILE__) . DIRECTORY_SEPARATOR . "util.inc";
|
|
|
|
skip_if_not_win();
|
|
|
|
if (strlen(dirname(__FILE__)) > 259) die("Unsuitable starting path length");
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
|
|
$need_len = 1024;
|
|
//$need_len = 259;
|
|
$dir = dirname(__FILE__);
|
|
while ($need_len - strlen($dir) > 32) {
|
|
$dir .= DIRECTORY_SEPARATOR . str_repeat("a", 32);
|
|
}
|
|
$dir .= DIRECTORY_SEPARATOR . str_repeat("a", $need_len - strlen($dir));
|
|
mkdir($dir, 0700, true);
|
|
|
|
$fl = $dir . DIRECTORY_SEPARATOR . "hello.txt";
|
|
file_put_contents($fl, "");
|
|
|
|
|
|
$start = substr($dir, 0, strpos($dir, DIRECTORY_SEPARATOR, strlen(dirname(__FILE__))+1));
|
|
$iter = new RecursiveIteratorIterator(
|
|
new RecursiveDirectoryIterator(
|
|
$start,
|
|
FilesystemIterator::SKIP_DOTS
|
|
),
|
|
RecursiveIteratorIterator::CHILD_FIRST
|
|
);
|
|
|
|
foreach ($iter as $item) {
|
|
if (!$item->isDir()) {
|
|
var_dump($item->getPathname());
|
|
}
|
|
}
|
|
|
|
$iter->rewind();
|
|
foreach ($iter as $item) {
|
|
if ($item->isDir()) {
|
|
rmdir($item->getPathname());
|
|
} else {
|
|
unlink($item->getPathname());
|
|
}
|
|
}
|
|
rmdir($start);
|
|
var_dump(file_exists($start));
|
|
|
|
/*unlink($fl);
|
|
do {
|
|
rmdir($dir);
|
|
$dir = dirname($dir);
|
|
} while (dirname(__FILE__) != $dir);*/
|
|
|
|
?>
|
|
==DONE==
|
|
--EXPECTF--
|
|
string(%d) "%shello.txt"
|
|
bool(false)
|
|
==DONE==
|