[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#56218] [PATCH] guix: inferior: Fix the behaviour of open-inferior #
From: |
Christopher Baines |
Subject: |
[bug#56218] [PATCH] guix: inferior: Fix the behaviour of open-inferior #:error-port. |
Date: |
Sat, 25 Jun 2022 18:18:47 +0100 |
This should be the error port used by the inferior process, but currently it's
either stderr if #:error-port is a file port, or /dev/null otherwise.
I'm looking at this as the Guix Data Service uses this behaviour to record and
display logs from inferior processes.
* guix/inferior.scm (open-bidirectional-pipe): Call dup2 for file descriptor
2, passing either the file number for the current error port, or a file
descriptor for /dev/null.
---
guix/inferior.scm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/guix/inferior.scm b/guix/inferior.scm
index 54200b75e4..e36806ac84 100644
--- a/guix/inferior.scm
+++ b/guix/inferior.scm
@@ -156,12 +156,14 @@ (define (open-bidirectional-pipe command . args)
(close-port parent)
(close-fdes 0)
(close-fdes 1)
+ (close-fdes 2)
(dup2 (fileno child) 0)
(dup2 (fileno child) 1)
;; Mimic 'open-pipe*'.
- (unless (file-port? (current-error-port))
- (close-fdes 2)
- (dup2 (open-fdes "/dev/null" O_WRONLY) 2))
+ (dup2 (if (file-port? (current-error-port))
+ (fileno (current-error-port))
+ (open-fdes "/dev/null" O_WRONLY))
+ 2)
(apply execlp command command args))
(lambda ()
(primitive-_exit 127))))
--
2.36.1
- [bug#56218] [PATCH] guix: inferior: Fix the behaviour of open-inferior #:error-port.,
Christopher Baines <=