Win32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 10 Nov 2010 08:37:47 +0000 (08:37 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 10 Nov 2010 08:37:47 +0000 (08:37 +0000)
The special file "NUL" is FILE_TYPE_CHAR with GetFileType(h). It was treated as display device and discarding output to NUL had failed. (eg. opt -o nul)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118678 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Win32/Process.inc

index feb0806116e46bbb1b545449227d436fd81f6aa9..15b41f00eafbe78fa748da0d6d579c80afd9c0b6 100644 (file)
@@ -132,7 +132,8 @@ bool Process::StandardErrIsDisplayed() {
 }
 
 bool Process::FileDescriptorIsDisplayed(int fd) {
-  return GetFileType((HANDLE)_get_osfhandle(fd)) == FILE_TYPE_CHAR;
+  DWORD Mode;  // Unused
+  return (GetConsoleMode((HANDLE)_get_osfhandle(fd), &Mode) != 0);
 }
 
 unsigned Process::StandardOutColumns() {