aboutsummaryrefslogtreecommitdiff
path: root/lib/std/child_process.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2020-12-24 10:59:37 +0200
committerGitHub <noreply@github.com>2020-12-24 10:59:37 +0200
commit83646df2cce59f254822355ec1ceeb6884e1177e (patch)
tree3266d030c2d6e5da949f74840afa5f47a72b2bb3 /lib/std/child_process.zig
parent0fd68f49e2eabb866ea1d21c4657c2a1d3c8ce53 (diff)
parente79acc24d301bd4d6afe715ce1e6be9dc3c654b5 (diff)
downloadzig-83646df2cce59f254822355ec1ceeb6884e1177e.tar.gz
zig-83646df2cce59f254822355ec1ceeb6884e1177e.zip
Merge pull request #7531 from Vexu/orphanage
Move ArrayListSentineled to std lib orphanage
Diffstat (limited to 'lib/std/child_process.zig')
-rw-r--r--lib/std/child_process.zig24
1 files changed, 11 insertions, 13 deletions
diff --git a/lib/std/child_process.zig b/lib/std/child_process.zig
index b61fe9470d..6f75b01c87 100644
--- a/lib/std/child_process.zig
+++ b/lib/std/child_process.zig
@@ -15,7 +15,6 @@ const windows = os.windows;
const mem = std.mem;
const debug = std.debug;
const BufMap = std.BufMap;
-const ArrayListSentineled = std.ArrayListSentineled;
const builtin = @import("builtin");
const Os = builtin.Os;
const TailQueue = std.TailQueue;
@@ -749,38 +748,37 @@ fn windowsCreateProcess(app_name: [*:0]u16, cmd_line: [*:0]u16, envp_ptr: ?[*]u1
/// Caller must dealloc.
fn windowsCreateCommandLine(allocator: *mem.Allocator, argv: []const []const u8) ![:0]u8 {
- var buf = try ArrayListSentineled(u8, 0).initSize(allocator, 0);
+ var buf = std.ArrayList(u8).init(allocator);
defer buf.deinit();
- const buf_stream = buf.outStream();
for (argv) |arg, arg_i| {
- if (arg_i != 0) try buf_stream.writeByte(' ');
+ if (arg_i != 0) try buf.append(' ');
if (mem.indexOfAny(u8, arg, " \t\n\"") == null) {
- try buf_stream.writeAll(arg);
+ try buf.appendSlice(arg);
continue;
}
- try buf_stream.writeByte('"');
+ try buf.append('"');
var backslash_count: usize = 0;
for (arg) |byte| {
switch (byte) {
'\\' => backslash_count += 1,
'"' => {
- try buf_stream.writeByteNTimes('\\', backslash_count * 2 + 1);
- try buf_stream.writeByte('"');
+ try buf.appendNTimes('\\', backslash_count * 2 + 1);
+ try buf.append('"');
backslash_count = 0;
},
else => {
- try buf_stream.writeByteNTimes('\\', backslash_count);
- try buf_stream.writeByte(byte);
+ try buf.appendNTimes('\\', backslash_count);
+ try buf.append(byte);
backslash_count = 0;
},
}
}
- try buf_stream.writeByteNTimes('\\', backslash_count * 2);
- try buf_stream.writeByte('"');
+ try buf.appendNTimes('\\', backslash_count * 2);
+ try buf.append('"');
}
- return buf.toOwnedSlice();
+ return buf.toOwnedSliceSentinel(0);
}
fn windowsDestroyPipe(rd: ?windows.HANDLE, wr: ?windows.HANDLE) void {