| ... | @@ -250,7 +250,7 @@ fn TarReader(comptime ReaderType: type) type { | ... | @@ -250,7 +250,7 @@ fn TarReader(comptime ReaderType: type) type { |
| 250 | pub const File = struct { | 250 | pub const File = struct { |
| 251 | name: []const u8, // name of file, symlink or directory | 251 | name: []const u8, // name of file, symlink or directory |
| 252 | link_name: []const u8, // target name of symlink | 252 | link_name: []const u8, // target name of symlink |
| 253 | size: usize, // size of the file in bytes | 253 | size: u64, // size of the file in bytes |
| 254 | mode: u32, | 254 | mode: u32, |
| 255 | kind: Header.Kind, | 255 | kind: Header.Kind, |
| 256 | | 256 | |
| ... | @@ -260,7 +260,7 @@ fn TarReader(comptime ReaderType: type) type { | ... | @@ -260,7 +260,7 @@ fn TarReader(comptime ReaderType: type) type { |
| 260 | pub fn write(self: File, writer: anytype) !void { | 260 | pub fn write(self: File, writer: anytype) !void { |
| 261 | var buffer: [4096]u8 = undefined; | 261 | var buffer: [4096]u8 = undefined; |
| 262 | | 262 | |
| 263 | var n: usize = 0; | 263 | var n: u64 = 0; |
| 264 | while (n < self.size) { | 264 | while (n < self.size) { |
| 265 | const buf = buffer[0..@min(buffer.len, self.size - n)]; | 265 | const buf = buffer[0..@min(buffer.len, self.size - n)]; |
| 266 | try self.reader.readNoEof(buf); | 266 | try self.reader.readNoEof(buf); |
| ... | @@ -308,9 +308,9 @@ fn TarReader(comptime ReaderType: type) type { | ... | @@ -308,9 +308,9 @@ fn TarReader(comptime ReaderType: type) type { |
| 308 | } | 308 | } |
| 309 | | 309 | |
| 310 | // Number of padding bytes in the last file block. | 310 | // Number of padding bytes in the last file block. |
| 311 | inline fn blockPadding(size: usize) usize { | 311 | inline fn blockPadding(size: u64) usize { |
| 312 | const block_rounded = std.mem.alignForward(usize, size, Header.SIZE); // size rounded to te block boundary | 312 | const block_rounded = std.mem.alignForward(u64, size, Header.SIZE); // size rounded to te block boundary |
| 313 | return block_rounded - size; | 313 | return @intCast(block_rounded - size); |
| 314 | } | 314 | } |
| 315 | | 315 | |
| 316 | /// Iterates through the tar archive as if it is a series of files. | 316 | /// Iterates through the tar archive as if it is a series of files. |
| ... | @@ -324,7 +324,7 @@ fn TarReader(comptime ReaderType: type) type { | ... | @@ -324,7 +324,7 @@ fn TarReader(comptime ReaderType: type) type { |
| 324 | | 324 | |
| 325 | while (try self.readHeader()) |header| { | 325 | while (try self.readHeader()) |header| { |
| 326 | const kind = header.kind(); | 326 | const kind = header.kind(); |
| 327 | const size: usize = @intCast(try header.size()); | 327 | const size: u64 = try header.size(); |
| 328 | self.padding = blockPadding(size); | 328 | self.padding = blockPadding(size); |
| 329 | | 329 | |
| 330 | switch (kind) { | 330 | switch (kind) { |
| ... | @@ -349,16 +349,16 @@ fn TarReader(comptime ReaderType: type) type { | ... | @@ -349,16 +349,16 @@ fn TarReader(comptime ReaderType: type) type { |
| 349 | }, | 349 | }, |
| 350 | // Prefix header types | 350 | // Prefix header types |
| 351 | .gnu_long_name => { | 351 | .gnu_long_name => { |
| 352 | self.file.name = try self.readString(size, &self.file_name_buffer); | 352 | self.file.name = try self.readString(@intCast(size), &self.file_name_buffer); |
| 353 | }, | 353 | }, |
| 354 | .gnu_long_link => { | 354 | .gnu_long_link => { |
| 355 | self.file.link_name = try self.readString(size, &self.link_name_buffer); | 355 | self.file.link_name = try self.readString(@intCast(size), &self.link_name_buffer); |
| 356 | }, | 356 | }, |
| 357 | .extended_header => { | 357 | .extended_header => { |
| 358 | // Use just attributes from last extended header. | 358 | // Use just attributes from last extended header. |
| 359 | self.initFile(); | 359 | self.initFile(); |
| 360 | | 360 | |
| 361 | var rdr = paxReader(self.reader, size); | 361 | var rdr = paxReader(self.reader, @intCast(size)); |
| 362 | while (try rdr.next()) |attr| { | 362 | while (try rdr.next()) |attr| { |
| 363 | switch (attr.kind) { | 363 | switch (attr.kind) { |
| 364 | .path => { | 364 | .path => { |
| ... | @@ -369,7 +369,7 @@ fn TarReader(comptime ReaderType: type) type { | ... | @@ -369,7 +369,7 @@ fn TarReader(comptime ReaderType: type) type { |
| 369 | }, | 369 | }, |
| 370 | .size => { | 370 | .size => { |
| 371 | var buf: [64]u8 = undefined; | 371 | var buf: [64]u8 = undefined; |
| 372 | self.file.size = try std.fmt.parseInt(usize, try attr.value(&buf), 10); | 372 | self.file.size = try std.fmt.parseInt(u64, try attr.value(&buf), 10); |
| 373 | }, | 373 | }, |
| 374 | } | 374 | } |
| 375 | } | 375 | } |