diff options
author | Andy Wingo <wingo@pobox.com> | 2013-01-15 10:45:39 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-01-15 10:45:39 +0100 |
commit | b4fa6cc90961c87b28e26b469863f19a1be26ce2 (patch) | |
tree | e2db30c88db958a1afffc94eeb2b3d01203eb2d3 /libguile/posix.c | |
parent | e0c211bb2e80605b4ae3fb121c34136f6e266b70 (diff) | |
parent | 18c5bffe96947ee82a29b115e758d7357cefbbe9 (diff) | |
download | guile-b4fa6cc90961c87b28e26b469863f19a1be26ce2.tar.gz |
Merge remote-tracking branch 'origin/stable-2.0'
There is a failing test due to a scm_from_utf8_stringn bug brought out
by the iconv test that will be fixed in the next commit.
Conflicts:
libguile/deprecated.h
module/ice-9/deprecated.scm
Diffstat (limited to 'libguile/posix.c')
-rw-r--r-- | libguile/posix.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/libguile/posix.c b/libguile/posix.c index baa711b8b..7c87f3f45 100644 --- a/libguile/posix.c +++ b/libguile/posix.c @@ -1,5 +1,5 @@ /* Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - * 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -1364,7 +1364,7 @@ scm_open_process (SCM mode, SCM prog, SCM args) if (pid) /* Parent. */ { - SCM read_port = SCM_BOOL_F, write_port = SCM_BOOL_F, port; + SCM read_port = SCM_BOOL_F, write_port = SCM_BOOL_F; /* There is no sense in catching errors on close(). */ if (reading) @@ -1380,25 +1380,8 @@ scm_open_process (SCM mode, SCM prog, SCM args) scm_setvbuf (write_port, scm_from_int (_IONBF), SCM_UNDEFINED); } - if (reading && writing) - { - static SCM make_rw_port = SCM_BOOL_F; - - if (scm_is_false (make_rw_port)) - make_rw_port = scm_c_private_variable ("ice-9 popen", - "make-rw-port"); - - port = scm_call_2 (scm_variable_ref (make_rw_port), - read_port, write_port); - } - else if (reading) - port = read_port; - else if (writing) - port = write_port; - else - port = scm_sys_make_void_port (mode); - - return scm_cons (port, scm_from_int (pid)); + return scm_values + (scm_list_3 (read_port, write_port, scm_from_int (pid))); } /* The child. */ |