81 |
(= pt-fileno error-fdes))) |
(= pt-fileno error-fdes))) |
82 |
(close-fdes pt-fileno)))))) |
(close-fdes pt-fileno)))))) |
83 |
|
|
84 |
;; copy the three selected descriptors to the standard |
;; Copy the three selected descriptors to the standard |
85 |
;; descriptors 0, 1, 2. note that it's possible that |
;; descriptors 0, 1, 2, if not already there |
|
;; output-fdes or input-fdes is equal to error-fdes. |
|
86 |
|
|
87 |
(cond ((not (= input-fdes 0)) |
(cond ((not (= input-fdes 0)) |
88 |
(if (= output-fdes 0) |
(if (= output-fdes 0) |
90 |
(if (= error-fdes 0) |
(if (= error-fdes 0) |
91 |
(set! error-fdes (dup->fdes 0))) |
(set! error-fdes (dup->fdes 0))) |
92 |
(dup2 input-fdes 0) |
(dup2 input-fdes 0) |
93 |
(close-fdes input-fdes))) |
;; it's possible input-fdes is error-fdes |
94 |
|
(if (not (= input-fdes error-fdes)) |
95 |
|
(close-fdes input-fdes)))) |
96 |
|
|
97 |
(cond ((not (= output-fdes 1)) |
(cond ((not (= output-fdes 1)) |
98 |
(if (= error-fdes 1) |
(if (= error-fdes 1) |
99 |
(set! error-fdes (dup->fdes 1))) |
(set! error-fdes (dup->fdes 1))) |
100 |
(dup2 output-fdes 1) |
(dup2 output-fdes 1) |
101 |
(close-fdes output-fdes))) |
;; it's possible output-fdes is error-fdes |
102 |
|
(if (not (= output-fdes error-fdes)) |
103 |
|
(close-fdes output-fdes)))) |
104 |
|
|
105 |
(cond ((not (= error-fdes 2)) |
(cond ((not (= error-fdes 2)) |
106 |
(dup2 error-fdes 2) |
(dup2 error-fdes 2) |