From 2db685dba6db27f92767ae5f16f62744fcb604ac Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 11 Apr 2015 07:13:24 -0700 Subject: Exposing dup and dup2. * sysif.c (dup_wrap): New static function. (sysif_init): Register dup_wrap as dupfd. The name dup conflicts with an existing function. * txr.1: Documented dupfd. * txr.vim, tl.vim: Regenerated. --- sysif.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'sysif.c') diff --git a/sysif.c b/sysif.c index 545992b5..bee235dd 100644 --- a/sysif.c +++ b/sysif.c @@ -454,6 +454,13 @@ static val wifcontinued(val status) } #endif +static val dup_wrap(val old, val new) +{ + if (missingp(new)) + return num(dup(c_num(old))); + return num(dup2(c_num(old), c_num(new))); +} + #endif #if HAVE_SYS_STAT @@ -651,5 +658,6 @@ void sysif_init(void) #ifdef WCONTINUED reg_var(intern(lit("w-continued"), user_package), num_fast(WCONTINUED)); #endif + reg_fun(intern(lit("dupfd"), user_package), func_n2o(dup_wrap, 1)); #endif } -- cgit v1.2.3