Skip to content

Commit 7005860

Browse files
committed
Ignore unreadable directories when traverse directory structure
1 parent 58ed3e2 commit 7005860

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

PHPCtags.class.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ private function process($file)
385385
{
386386
if (is_dir($file) && isset($this->mOptions['R'])) {
387387
$iterator = new RecursiveIteratorIterator(
388-
new RecursiveDirectoryIterator(
388+
new ReadableRecursiveDirectoryIterator(
389389
$file,
390390
FilesystemIterator::SKIP_DOTS |
391391
FilesystemIterator::FOLLOW_SYMLINKS
@@ -432,3 +432,14 @@ public function __toString() {
432432
return "PHPCtags: {$this->message}\n";
433433
}
434434
}
435+
436+
class ReadableRecursiveDirectoryIterator extends RecursiveDirectoryIterator {
437+
function getChildren() {
438+
try {
439+
return new ReadableRecursiveDirectoryIterator($this->getPathname());
440+
} catch(UnexpectedValueException $e) {
441+
echo "\nPHPPCtags: {$e->getMessage()} - {$this->getPathname()}\n";
442+
return new RecursiveArrayIterator(array());
443+
}
444+
}
445+
}

0 commit comments

Comments
 (0)