From ec080467f5b322441055de1f6cd4f08edc23d7df Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 11 Sep 2009 20:46:33 +0000 Subject: Fix llvm-extract's "writing bitcode to a terminal" warning, which wasn't working. To support this, add an is_displayed() function to raw_ostream, and generalize Process::StandardOutIsDisplayed and friends in order to support it. Also, call RemoveFileOnSignal before creating a file instead of after, so that the file isn't left behind if the program is interrupted between when the file is created and RemoveFileOnSignal is called. While here, add a -S to llvm-extract and port it to IRReader so that it supports assembly input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81568 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Unix/Process.inc | 20 +++++++------------- lib/System/Win32/Process.inc | 10 +++++++--- 2 files changed, 14 insertions(+), 16 deletions(-) (limited to 'lib/System') diff --git a/lib/System/Unix/Process.inc b/lib/System/Unix/Process.inc index 774783f8ad..d7155852bf 100644 --- a/lib/System/Unix/Process.inc +++ b/lib/System/Unix/Process.inc @@ -179,26 +179,20 @@ void Process::PreventCoreFiles() { } bool Process::StandardInIsUserInput() { -#if HAVE_ISATTY - return isatty(0); -#else - // If we don't have isatty, just return false. - return false; -#endif + return FileDescriptorIsDisplayed(STDIN_FILENO); } bool Process::StandardOutIsDisplayed() { -#if HAVE_ISATTY - return isatty(1); -#else - // If we don't have isatty, just return false. - return false; -#endif + return FileDescriptorIsDisplayed(STDOUT_FILENO); } bool Process::StandardErrIsDisplayed() { + return FileDescriptorIsDisplayed(STDERR_FILENO); +} + +bool Process::FileDescriptorIsDisplayed(int fd) { #if HAVE_ISATTY - return isatty(2); + return isatty(fd); #else // If we don't have isatty, just return false. return false; diff --git a/lib/System/Win32/Process.inc b/lib/System/Win32/Process.inc index cfbe33c85a..feb0806116 100644 --- a/lib/System/Win32/Process.inc +++ b/lib/System/Win32/Process.inc @@ -120,15 +120,19 @@ void Process::PreventCoreFiles() { } bool Process::StandardInIsUserInput() { - return GetFileType((HANDLE)_get_osfhandle(0)) == FILE_TYPE_CHAR; + return FileDescriptorIsDisplayed(0); } bool Process::StandardOutIsDisplayed() { - return GetFileType((HANDLE)_get_osfhandle(1)) == FILE_TYPE_CHAR; + return FileDescriptorIsDisplayed(1); } bool Process::StandardErrIsDisplayed() { - return GetFileType((HANDLE)_get_osfhandle(2)) == FILE_TYPE_CHAR; + return FileDescriptorIsDisplayed(2); +} + +bool Process::FileDescriptorIsDisplayed(int fd) { + return GetFileType((HANDLE)_get_osfhandle(fd)) == FILE_TYPE_CHAR; } unsigned Process::StandardOutColumns() { -- cgit v1.2.3