summaryrefslogtreecommitdiff
path: root/libguile/posix.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-01-15 10:45:39 +0100
committerAndy Wingo <wingo@pobox.com>2013-01-15 10:45:39 +0100
commitb4fa6cc90961c87b28e26b469863f19a1be26ce2 (patch)
treee2db30c88db958a1afffc94eeb2b3d01203eb2d3 /libguile/posix.c
parente0c211bb2e80605b4ae3fb121c34136f6e266b70 (diff)
parent18c5bffe96947ee82a29b115e758d7357cefbbe9 (diff)
downloadguile-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.c25
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. */