Commit e79acc24d3

Veikka Tuominen <git@vexu.eu>
2020-12-23 17:32:39
std: clenup, fixes, fmt
1 parent e5aab62
lib/std/io/counting_reader.zig
@@ -12,16 +12,16 @@ pub fn CountingReader(comptime ReaderType: anytype) type {
     return struct {
         child_reader: ReaderType,
         bytes_read: u64 = 0,
-        
+
         pub const Error = ReaderType.Error;
         pub const Reader = io.Reader(*@This(), Error, read);
-        
+
         pub fn read(self: *@This(), buf: []u8) Error!usize {
             const amt = try self.child_reader.read(buf);
             self.bytes_read += amt;
             return amt;
         }
-        
+
         pub fn reader(self: *@This()) Reader {
             return .{ .context = self };
         }
@@ -29,20 +29,20 @@ pub fn CountingReader(comptime ReaderType: anytype) type {
 }
 
 pub fn countingReader(reader: anytype) CountingReader(@TypeOf(reader)) {
-    return .{ .child_reader = reader, };
+    return .{ .child_reader = reader };
 }
 
 test "io.CountingReader" {
     const bytes = "yay" ** 100;
     var fbs = io.fixedBufferStream(bytes);
-    
+
     var counting_stream = countingReader(fbs.reader());
     const stream = counting_stream.reader();
-    
+
     //read and discard all bytes
-    while(stream.readByte()) |_| {} else |err| {
+    while (stream.readByte()) |_| {} else |err| {
         testing.expect(err == error.EndOfStream);
     }
-    
+
     testing.expect(counting_stream.bytes_read == bytes.len);
-}
\ No newline at end of file
+}
lib/std/os/linux/io_uring.zig
@@ -1378,11 +1378,10 @@ test "timeout_remove" {
     // Timeout remove operations set the fd to -1, which results in EBADF before EINVAL.
     // We use IORING_FEAT_RW_CUR_POS as a safety check here to make sure we are at least pre-5.6.
     // We don't want to skip this test for newer kernels.
-    if (
-        cqe_timeout.user_data == 0x99999999 and
+    if (cqe_timeout.user_data == 0x99999999 and
         cqe_timeout.res == -linux.EBADF and
-        (ring.features & linux.IORING_FEAT_RW_CUR_POS) == 0
-    ) {
+        (ring.features & linux.IORING_FEAT_RW_CUR_POS) == 0)
+    {
         return error.SkipZigTest;
     }
     testing.expectEqual(linux.io_uring_cqe{
lib/std/array_list.zig
@@ -94,7 +94,7 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?u29) type {
         /// The caller owns the returned memory. ArrayList becomes empty.
         pub fn toOwnedSliceSentinel(self: *Self, comptime sentinel: T) ![:sentinel]T {
             try self.append(sentinel);
-            const result = self.list.toOwnedSlice();
+            const result = self.toOwnedSlice();
             return result[0 .. result.len - 1 :sentinel];
         }
 
@@ -399,7 +399,7 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ
         /// The caller owns the returned memory. ArrayList becomes empty.
         pub fn toOwnedSliceSentinel(self: *Self, allocator: *Allocator, comptime sentinel: T) ![:sentinel]T {
             try self.append(allocator, sentinel);
-            const result = self.list.toOwnedSlice(allocator);
+            const result = self.toOwnedSlice(allocator);
             return result[0 .. result.len - 1 :sentinel];
         }
 
@@ -1135,3 +1135,27 @@ test "std.ArrayList/ArrayListUnmanaged.addManyAsArray" {
         testing.expectEqualSlices(u8, list.items, "aoeuasdf");
     }
 }
+
+test "std.ArrayList/ArrayListUnmanaged.toOwnedSliceSentinel" {
+    const a = testing.allocator;
+    {
+        var list = ArrayList(u8).init(a);
+        defer list.deinit();
+
+        try list.appendSlice("foobar");
+
+        const result = try list.toOwnedSliceSentinel(0);
+        defer a.free(result);
+        testing.expectEqualStrings(result, mem.spanZ(result.ptr));
+    }
+    {
+        var list = ArrayListUnmanaged(u8){};
+        defer list.deinit(a);
+
+        try list.appendSlice(a, "foobar");
+
+        const result = try list.toOwnedSliceSentinel(a, 0);
+        defer a.free(result);
+        testing.expectEqualStrings(result, mem.spanZ(result.ptr));
+    }
+}
lib/std/child_process.zig
@@ -748,9 +748,8 @@ 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 ArrayList(u8).init(allocator);
+    var buf = std.ArrayList(u8).init(allocator);
     defer buf.deinit();
-    const buf_wi = buf.outStream();
 
     for (argv) |arg, arg_i| {
         if (arg_i != 0) try buf.append(' ');
lib/std/io.zig
@@ -209,6 +209,7 @@ test "" {
     _ = @import("io/buffered_writer.zig");
     _ = @import("io/c_writer.zig");
     _ = @import("io/counting_writer.zig");
+    _ = @import("io/counting_reader.zig");
     _ = @import("io/fixed_buffer_stream.zig");
     _ = @import("io/reader.zig");
     _ = @import("io/writer.zig");
lib/std/json.zig
@@ -1553,7 +1553,7 @@ fn parseInternal(comptime T: type, token: Token, tokens: *TokenStream, options:
                     const source_slice = stringToken.slice(tokens.slice, tokens.i - 1);
                     switch (stringToken.escapes) {
                         .None => mem.copy(u8, &r, source_slice),
-                        .Some => try unescapeString(&r, source_slice),
+                        .Some => try unescapeValidString(&r, source_slice),
                     }
                     return r;
                 },
@@ -1600,7 +1600,7 @@ fn parseInternal(comptime T: type, token: Token, tokens: *TokenStream, options:
                                 .Some => |some_escapes| {
                                     const output = try allocator.alloc(u8, stringToken.decodedLength());
                                     errdefer allocator.free(output);
-                                    try unescapeString(output, source_slice);
+                                    try unescapeValidString(output, source_slice);
                                     return output;
                                 },
                             }
@@ -2084,7 +2084,7 @@ pub const Parser = struct {
             .Some => |some_escapes| {
                 const output = try allocator.alloc(u8, s.decodedLength());
                 errdefer allocator.free(output);
-                try unescapeString(output, slice);
+                try unescapeValidString(output, slice);
                 return Value{ .String = output };
             },
         }
@@ -2098,10 +2098,10 @@ pub const Parser = struct {
     }
 };
 
-// Unescape a JSON string
-// Only to be used on strings already validated by the parser
-// (note the unreachable statements and lack of bounds checking)
-pub fn unescapeString(output: []u8, input: []const u8) !void {
+/// Unescape a JSON string
+/// Only to be used on strings already validated by the parser
+/// (note the unreachable statements and lack of bounds checking)
+pub fn unescapeValidString(output: []u8, input: []const u8) !void {
     var inIndex: usize = 0;
     var outIndex: usize = 0;