summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2012-05-18 08:58:34 -0700
committerKaz Kylheku <kaz@kylheku.com>2012-05-18 08:58:34 -0700
commitf92a6b5a3b9c10d0de19b29a99086a4f033710e5 (patch)
tree79341c7b4659c64eb0e2271cf1fa0bea63f587d9 /ChangeLog
parent338fa0de2bb5c943775278eef608ce21723cde19 (diff)
downloadtxr-f92a6b5a3b9c10d0de19b29a99086a4f033710e5.tar.gz
txr-f92a6b5a3b9c10d0de19b29a99086a4f033710e5.tar.bz2
txr-f92a6b5a3b9c10d0de19b29a99086a4f033710e5.zip
Implementing new pipe function to get around the limitation
that popen accepts a complete command. We need something which accepts a program name, and a list of arguments, so that we don't have to assemble together a correctly quoted string. popen needs an alternative interface resembling execvp. * eval.c (eval_init): New intrinsic registered, open-pipe-args. * stream.c (struct stdio_handle): New member, pid. (stdio_stream_print): Print the pid, if it is nonzero. (pipevp_close): New close function. (pipe_close): If h->pid is nonzero, it's a new-style pipe, which must be closed with pipev_close. (make_stdio_stream, make_pipe_stream): Initialize new stdio_handle member to zero. (make_pipevp_stream): New static function. (open_pipevp): New function. * stream.h (open_pipevp): Declared. * txr.1: open-pipe-args added to stub section heading.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog24
1 files changed, 24 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1585018d..949351a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2012-05-18 Kaz Kylheku <kaz@kylheku.com>
+
+ Implementing new pipe function to get around the limitation
+ that popen accepts a complete command. We need something which
+ accepts a program name, and a list of arguments, so that
+ we don't have to assemble together a correctly quoted string.
+ popen needs an alternative interface resembling execvp.
+
+ * eval.c (eval_init): New intrinsic registered, open-pipe-args.
+
+ * stream.c (struct stdio_handle): New member, pid.
+ (stdio_stream_print): Print the pid, if it is nonzero.
+ (pipevp_close): New close function.
+ (pipe_close): If h->pid is nonzero, it's a new-style pipe, which
+ must be closed with pipev_close.
+ (make_stdio_stream, make_pipe_stream): Initialize new stdio_handle
+ member to zero.
+ (make_pipevp_stream): New static function.
+ (open_pipevp): New function.
+
+ * stream.h (open_pipevp): Declared.
+
+ * txr.1: open-pipe-args added to stub section heading.
+
2012-05-17 Kaz Kylheku <kaz@kylheku.com>
* match.c (v_collect): Implemented semantics for repeat symbol.