CliWrap v3.1 Release Notes

    • โž• Added an option to disable automatic argument escaping to cmd.WithArguments(string[]) as well as builder.Add(...). You can use it to escape the arguments yourself if the application requires it.
    • โž• Added an option to enable or disable auto-flushing for PipeTarget.ToStream(...) and PipeSource.FromStream(...). If enabled, data will be copied as soon as it's available instead of waiting for the buffer to fill up. This is enabled by default, which is different from the previous behavior, although this change is not breaking for most scenarios.
    • ๐Ÿ›  Fixed an issue where command execution threw an exception if the wrapped application didn't read stdin completely. The exception is now caught and ignored as it's not really an exceptional situation if the stdin contains excess data which is discarded by the wrapped application.
    • ๐Ÿ›  Fixed an issue where command execution waited for piped stdin to resolve next bytes, even if the wrapped application didn't try to read them. This avoids unnecessary delay (which can be infinite if the stream never resolves) when the wrapped application doesn't need the rest of the stdin to complete execution.
    • ๐Ÿ›  Fixed an issue where PipeTarget.Merge(...) worked incorrectly when used with PipeTarget.ToDelegate(...), causing the latter to yield lines even where there were no line breaks.