| ... | @@ -299,14 +299,14 @@ fn Iterator(comptime ReaderType: type) type { | ... | @@ -299,14 +299,14 @@ fn Iterator(comptime ReaderType: type) type { |
| 299 | return header; | 299 | return header; |
| 300 | } | 300 | } |
| 301 | | 301 | |
| 302 | inline fn readString(self: *Self, size: usize, buffer: []u8) ![]const u8 { | 302 | fn readString(self: *Self, size: usize, buffer: []u8) ![]const u8 { |
| 303 | if (size > buffer.len) return error.TarCorruptInput; | 303 | if (size > buffer.len) return error.TarCorruptInput; |
| 304 | const buf = buffer[0..size]; | 304 | const buf = buffer[0..size]; |
| 305 | try self.reader.readNoEof(buf); | 305 | try self.reader.readNoEof(buf); |
| 306 | return nullStr(buf); | 306 | return nullStr(buf); |
| 307 | } | 307 | } |
| 308 | | 308 | |
| 309 | inline fn initFile(self: *Self) void { | 309 | fn initFile(self: *Self) void { |
| 310 | self.file = File{ | 310 | self.file = File{ |
| 311 | .name = self.file_name_buffer[0..0], | 311 | .name = self.file_name_buffer[0..0], |
| 312 | .link_name = self.link_name_buffer[0..0], | 312 | .link_name = self.link_name_buffer[0..0], |
| ... | @@ -318,7 +318,7 @@ fn Iterator(comptime ReaderType: type) type { | ... | @@ -318,7 +318,7 @@ fn Iterator(comptime ReaderType: type) type { |
| 318 | } | 318 | } |
| 319 | | 319 | |
| 320 | // Number of padding bytes in the last file block. | 320 | // Number of padding bytes in the last file block. |
| 321 | inline fn blockPadding(size: u64) usize { | 321 | fn blockPadding(size: u64) usize { |
| 322 | const block_rounded = std.mem.alignForward(u64, size, Header.SIZE); // size rounded to te block boundary | 322 | const block_rounded = std.mem.alignForward(u64, size, Header.SIZE); // size rounded to te block boundary |
| 323 | return @intCast(block_rounded - size); | 323 | return @intCast(block_rounded - size); |
| 324 | } | 324 | } |
| ... | @@ -498,22 +498,22 @@ fn PaxIterator(comptime ReaderType: type) type { | ... | @@ -498,22 +498,22 @@ fn PaxIterator(comptime ReaderType: type) type { |
| 498 | return null; | 498 | return null; |
| 499 | } | 499 | } |
| 500 | | 500 | |
| 501 | inline fn readUntil(self: *Self, delimiter: u8) ![]const u8 { | 501 | fn readUntil(self: *Self, delimiter: u8) ![]const u8 { |
| 502 | var fbs = std.io.fixedBufferStream(&self.scratch); | 502 | var fbs = std.io.fixedBufferStream(&self.scratch); |
| 503 | try self.reader.streamUntilDelimiter(fbs.writer(), delimiter, null); | 503 | try self.reader.streamUntilDelimiter(fbs.writer(), delimiter, null); |
| 504 | return fbs.getWritten(); | 504 | return fbs.getWritten(); |
| 505 | } | 505 | } |
| 506 | | 506 | |
| 507 | inline fn eql(a: []const u8, b: []const u8) bool { | 507 | fn eql(a: []const u8, b: []const u8) bool { |
| 508 | return std.mem.eql(u8, a, b); | 508 | return std.mem.eql(u8, a, b); |
| 509 | } | 509 | } |
| 510 | | 510 | |
| 511 | inline fn hasNull(str: []const u8) bool { | 511 | fn hasNull(str: []const u8) bool { |
| 512 | return (std.mem.indexOfScalar(u8, str, 0)) != null; | 512 | return (std.mem.indexOfScalar(u8, str, 0)) != null; |
| 513 | } | 513 | } |
| 514 | | 514 | |
| 515 | // Checks that each record ends with new line. | 515 | // Checks that each record ends with new line. |
| 516 | inline fn validateAttributeEnding(reader: ReaderType) !void { | 516 | fn validateAttributeEnding(reader: ReaderType) !void { |
| 517 | if (try reader.readByte() != '\n') return error.PaxInvalidAttributeEnd; | 517 | if (try reader.readByte() != '\n') return error.PaxInvalidAttributeEnd; |
| 518 | } | 518 | } |
| 519 | }; | 519 | }; |