For PR797:
authorReid Spencer <rspencer@reidspencer.com>
Tue, 22 Aug 2006 15:56:52 +0000 (15:56 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 22 Aug 2006 15:56:52 +0000 (15:56 +0000)
Fix a bug in my last patch that botched file redirection by using explicit
scoping of if statements.

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

lib/System/Unix/Program.inc

index 97aa804b3cefdcf7c4cae45963d2dc43abfdfc50..5961dae5ad0e379c9df8db2b2027022eff733259 100644 (file)
@@ -133,22 +133,27 @@ Program::ExecuteAndWait(const Path& path,
     case 0: {
       // Redirect file descriptors...
       if (redirects) {
-        if (redirects[0])
-          if (redirects[0]->isEmpty())
+        if (redirects[0]) {
+          if (redirects[0]->isEmpty()) {
             if (RedirectFD("/dev/null",0,ErrMsg)) { return -1; }
-          else
+          } else {
             if (RedirectFD(redirects[0]->toString(), 0,ErrMsg)) { return -1; }
-        if (redirects[1])
-          if (redirects[1]->isEmpty())
+          }
+        }
+        if (redirects[1]) {
+          if (redirects[1]->isEmpty()) {
             if (RedirectFD("/dev/null",1,ErrMsg)) { return -1; }
-          else
+          } else {
             if (RedirectFD(redirects[1]->toString(),1,ErrMsg)) { return -1; }
+          }
+        }
         if (redirects[1] && redirects[2] && 
             *(redirects[1]) != *(redirects[2])) {
-          if (redirects[2]->isEmpty())
+          if (redirects[2]->isEmpty()) {
             if (RedirectFD("/dev/null",2,ErrMsg)) { return -1; }
-          else
+          } else {
             if (RedirectFD(redirects[2]->toString(), 2,ErrMsg)) { return -1; }
+          }
         } else if (-1 == dup2(1,2)) {
           MakeErrMsg(ErrMsg, "Can't redirect");
           return -1;