summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2020-05-14 15:09:42 +0100
committerPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2020-05-14 15:09:42 +0100
commit4f58e85bc030e727930ced5172239a4ba1410c3f (patch)
treebe55c9ded4837e927dc16fbc9cf46a8ac2d19b33
parent5f3f8bba51d4cc0767efe3a1572b3927847e9b43 (diff)
Add TICKIT_OPEN_FDS to allow passing fd numbers explicitly
-rw-r--r--include/tickit.h5
-rw-r--r--src/term.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/include/tickit.h b/include/tickit.h
index 0f51a81..89261ad 100644
--- a/include/tickit.h
+++ b/include/tickit.h
@@ -401,9 +401,14 @@ struct TickitTermBuilder {
enum {
TICKIT_NO_OPEN,
+ TICKIT_OPEN_FDS, /* use input_fd, output_fd */
TICKIT_OPEN_STDIO, /* input=0, output=1 */
TICKIT_OPEN_STDTTY, /* input = output = first of 0/1/2 for which isatty() is true */
+ /* TODO: Consider
+ * TICKIT_OPEN_DEVTTY to open /dev/tty
+ */
} open;
+ int input_fd, output_fd; /* only valid if open==TICKIT_OPEN_FDS */
};
TickitTerm *tickit_term_build(const struct TickitTermBuilder *builder);
diff --git a/src/term.c b/src/term.c
index 73d8e37..360f2dc 100644
--- a/src/term.c
+++ b/src/term.c
@@ -236,6 +236,11 @@ TickitTerm *tickit_term_build(const struct TickitTermBuilder *_builder)
case TICKIT_NO_OPEN:
break;
+ case TICKIT_OPEN_FDS:
+ fd_in = builder.input_fd;
+ fd_out = builder.output_fd;
+ break;
+
case TICKIT_OPEN_STDIO:
fd_in = STDIN_FILENO;
fd_out = STDOUT_FILENO;