Bypass the calls in Windows to avoid the stat overhead. The file system
will almost always be NTFS, in which case it can't do anything since the
ACL model is totally different than that of Unix.
Add chmod calls to the existing command in FSFileOpHandle rather than
doing them all serially afterwards.
Use AtEase class for more simple error suppression cases.
Change-Id: Ib4fae9a1bf64c1a9dfde8debe724556633a5532c
Add more result constants and split up FileBackend::UNKNOWN for
clarity. This follows up 5719815f3b, which added that constant.
Make internal FileBackendStore::doGet* methods distinguish I/O errors
from missing files; the return types of public FileBackend methods are
unchanged. Avoid process caching any mtime/size/sha1 values in the
case of I/O errors. Use error constants consistently for stat methods
when given invalid paths.
Also:
* Factor out FileBackendStore::processCacheAndPersistStatEntries() method
to reduce significant code duplication.
* Consolidate duplicated isPathUsable() checks in FileOp subclasses to
FileOp::precheck().
* Remove null process cache value check from FileBackend::getFileStat()
as null values are never stored in the process cache to begin with.
* Reformat some oddly wrapped lines to look cleaner.
Change-Id: Id0e4b0da0bb2ed3184847b35142d587c7f3d953d
Find: /isset\(\s*([^()]+?)\s*\)\s*\?\s*\1\s*:\s*/
Replace with: '\1 ?? '
(Everywhere except includes/PHPVersionCheck.php)
(Then, manually fix some line length and indentation issues)
Then manually reviewed the replacements for cases where confusing
operator precedence would result in incorrect results
(fixing those in I478db046a1cc162c6767003ce45c9b56270f3372).
Change-Id: I33b421c8cb11cdd4ce896488c9ff5313f03a38cf
On PHP 7.1 and later, filesystem functions on Windows
use the Unicode system functions, which makes our file
handling work for non-ASCII file names.
Previously this was blacklisted for Windows on all PHP
versions. Versions before 7.1 will still reject Unicode
filenames with non-ASCII chars.
Bug: T3780
Change-Id: I94377faa5185f133be2dfb7b9b6aeacbd582834f