1 |
? Iguana/Utilities/interface
|
2 |
? Iguana/Utilities/doc/rose
|
3 |
? Iguana/Utilities/src/aix
|
4 |
Index: Iguana/Utilities/src/iobase/UnixSubProcess.cpp
|
5 |
===================================================================
|
6 |
RCS file: /cvs_server/repositories/CMSSW/CMSSW/Iguana/Utilities/src/iobase/UnixSubProcess.cpp,v
|
7 |
retrieving revision 1.2
|
8 |
diff -u -p -r1.2 UnixSubProcess.cpp
|
9 |
--- Iguana/Utilities/src/iobase/UnixSubProcess.cpp 16 Dec 2008 17:43:44 -0000 1.2
|
10 |
+++ Iguana/Utilities/src/iobase/UnixSubProcess.cpp 31 Oct 2009 16:12:40 -0000
|
11 |
@@ -45,29 +45,23 @@ SubProcess::sysrun (const char **argz, u
|
12 |
// FIXME: Optionally redirect non-piped other file handles
|
13 |
// FIXME: Optionally close all other file descriptors?
|
14 |
// FIXME: Optional environment cleanup?
|
15 |
- if (infd != 0)
|
16 |
- {
|
17 |
- if (dup2 (infd, 0) == -1)
|
18 |
- _exit (255);
|
19 |
+ if (infd != 0 && dup2 (infd, 0) == -1)
|
20 |
+ _exit (255);
|
21 |
+
|
22 |
+ if (outfd != 1 && dup2 (outfd, 1) == -1)
|
23 |
+ _exit (255);
|
24 |
+
|
25 |
+ if (errfd != 2 && dup2 (errfd, 2) == -1)
|
26 |
+ _exit (255);
|
27 |
|
28 |
+ if (infd != 0)
|
29 |
::close (infd);
|
30 |
- }
|
31 |
|
32 |
if (outfd != 1)
|
33 |
- {
|
34 |
- if (dup2 (outfd, 1) == -1)
|
35 |
- _exit (255);
|
36 |
-
|
37 |
::close (outfd);
|
38 |
- }
|
39 |
|
40 |
if (errfd != 2)
|
41 |
- {
|
42 |
- if (dup2 (errfd, 2) == -1)
|
43 |
- _exit (255);
|
44 |
-
|
45 |
::close (errfd);
|
46 |
- }
|
47 |
|
48 |
// Close other handles we no longer need. If we are making a
|
49 |
// pipe, this is the other end of the pipe the child won't
|
50 |
@@ -76,7 +70,7 @@ SubProcess::sysrun (const char **argz, u
|
51 |
::close (cleanup->fd ());
|
52 |
|
53 |
// FIXME: propagate non-const to interface?
|
54 |
- ((flags & Search) ? execv : execvp) (argz [0], (char **) argz);
|
55 |
+ ((flags & Search) ? execvp : execv) (argz [0], (char **) argz);
|
56 |
_exit (255);
|
57 |
|
58 |
default:
|