diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2013-07-18 17:00:54 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2013-07-18 17:00:54 +0000 |
commit | 2cf5425d0a048fbf36fc15035487f427499b514a (patch) | |
tree | 5484a77c69ec4bfdc94e7be92b89cf3e6e8d6f62 /lib/Support | |
parent | 431b0a7646105c53c607cbf0015c615269bc5f11 (diff) | |
download | external_llvm-2cf5425d0a048fbf36fc15035487f427499b514a.zip external_llvm-2cf5425d0a048fbf36fc15035487f427499b514a.tar.gz external_llvm-2cf5425d0a048fbf36fc15035487f427499b514a.tar.bz2 |
Windows/Path.inc: Introduce file_type::character_file and file_type::fifo_file in sys::fs::getStatus(HANDLE).
It fixes llvm/test/Other/close-stderr.ll on msys.
FIXME: Provide unittests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186588 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/Windows/Path.inc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Support/Windows/Path.inc b/lib/Support/Windows/Path.inc index 0eb0759..5d95142 100644 --- a/lib/Support/Windows/Path.inc +++ b/lib/Support/Windows/Path.inc @@ -579,6 +579,19 @@ static error_code getStatus(HANDLE FileHandle, file_status &Result) { if (FileHandle == INVALID_HANDLE_VALUE) goto handle_status_error; + switch (::GetFileType(FileHandle)) { + default: + case FILE_TYPE_UNKNOWN: + case FILE_TYPE_DISK: + break; + case FILE_TYPE_CHAR: + Result = file_status(file_type::character_file); + return error_code::success(); + case FILE_TYPE_PIPE: + Result = file_status(file_type::fifo_file); + return error_code::success(); + } + BY_HANDLE_FILE_INFORMATION Info; if (!::GetFileInformationByHandle(FileHandle, &Info)) goto handle_status_error; |