diff options
| author | Veikka Tuominen <git@vexu.eu> | 2020-12-24 10:59:37 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-24 10:59:37 +0200 |
| commit | 83646df2cce59f254822355ec1ceeb6884e1177e (patch) | |
| tree | 3266d030c2d6e5da949f74840afa5f47a72b2bb3 /lib/std/child_process.zig | |
| parent | 0fd68f49e2eabb866ea1d21c4657c2a1d3c8ce53 (diff) | |
| parent | e79acc24d301bd4d6afe715ce1e6be9dc3c654b5 (diff) | |
| download | zig-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.zig | 24 |
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 { |
