On Sat, 18 Dec 2010, Hyrum K. Wright wrote:
> On Thu, Dec 16, 2010 at 11:18 AM, <cmpilato_at_apache.org> wrote:
>> Author: cmpilato
>> Date: Thu Dec 16 17:18:43 2010
>> New Revision: 1050061
>>
>> URL: http://svn.apache.org/viewvc?rev=1050061&view=rev
>> Log:
>> Rev the svn_io_start_cmd() API, adding pipe support.
>>
>> Modified: subversion/trunk/subversion/include/svn_io.h
>> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_io.h?rev=1050061&r1=1050060&r2=1050061&view=diff
>> ==============================================================================
>> --- subversion/trunk/subversion/include/svn_io.h (original)
>> +++ subversion/trunk/subversion/include/svn_io.h Thu Dec 16 17:18:43 2010
>> @@ -1484,9 +1484,17 @@ svn_io_dir_walk(const char *dirname,
>>
>> /**
>> * Start @a cmd with @a args, using utf8-encoded @a path as working
>> - * directory. Connect @a cmd's stdin, stdout, and stderr to @a infile,
>> - * @a outfile, and @a errfile, except where they are NULL. Return the
>> - * process handle for the invoked program in @a *cmd_proc.
>> + * directory. Return the process handle for the invoked program in @a
>> + * *cmd_proc.
>> + *
>> + * If @a infile_pipe is TRUE, connect @a cmd's stdin to a pipe;
>> + * otherwise, connect it to @a infile (which may be NULL). If
>> + * @a outfile_pipe is TRUE, connect @a cmd's stdout to a pipe; otherwise,
>> + * connect it to @a outfile (which may be NULL). If @a errfile_pipe
>> + * is TRUE, connect @a cmd's stderr to a pipe; otherwise, connect it
>> + * to @a errfile (which may be NULL). (Callers must pass FALSE for
>> + * each of these boolean values for which the corresponding file
>> + * handle is non-NULL.)
>
> Innocent bystander question: if the *file_pipe arg is always FALSE
> when the *file arg is non-NULL, is it always TRUE if the *file arg is
> NULL? If so, can we use the NULL as the use-a-pipe sentinel, rather
> than a separate arg?
No, there are 3 valid combinations:
- pipe=TRUE file=NULL: Create a pipe.
- pipe=FALSE file!=NULL: Use the file.
- pipe=FALSE file=NULL: Use stdin/stdout/stderr.
See also:
http://apr.apache.org/docs/apr/1.4/group__apr__thread__proc.html#g2b1598bc6f5ab0bfcf2e55096d563c98
- Martin
Received on 2010-12-21 14:33:55 CET