diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2012-05-18 08:58:34 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2012-05-18 08:58:34 -0700 |
commit | f92a6b5a3b9c10d0de19b29a99086a4f033710e5 (patch) | |
tree | 79341c7b4659c64eb0e2271cf1fa0bea63f587d9 /ChangeLog | |
parent | 338fa0de2bb5c943775278eef608ce21723cde19 (diff) | |
download | txr-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-- | ChangeLog | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -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. |