Igor Anić 7d3a31872e tar: improve diagnostic reporting
Using Python testtar file (mentioned in #14310) to test diagnostic
reporting.
Added computing checksum by using both unsigned and signed header bytes
values.
Added skipping gnu exteneded sparse headers while reporting unsupported
header in diagnostic.

Note on testing:

wget https://github.com/python/cpython/raw/3.11/Lib/test/testtar.tar -O
/tmp/testtar.tar

```
test "Python testtar.tar file" {
    const file_name = "testtar.tar";

    var file = try std.fs.cwd().openFile("/tmp/" ++ file_name, .{});
    defer file.close();

    var diag = Options.Diagnostics{ .allocator = std.testing.allocator };
    defer diag.deinit();

    var iter = iterator(file.reader(), &diag);
    while (try iter.next()) |f| {
        std.debug.print("supported: {} {s} {d}\n", .{ f.kind, f.name, f.size });
        try f.skip();
    }
    for (diag.errors.items) |e| {
        switch (e) {
            .unsupported_file_type => |u| {
                std.debug.print("unsupported: {} {s}\n", .{ u.file_type, u.file_name });
            },
            else => unreachable,
        }
    }
}
```
2024-01-13 19:37:33 -07:00
..
2023-11-25 12:28:19 +02:00
2023-11-22 19:08:55 -07:00
2023-11-22 13:24:27 -05:00
2023-12-19 12:01:09 -07:00
2024-01-13 19:37:33 -07:00
2023-11-26 14:28:22 -05:00
2023-11-22 13:24:27 -05:00
2023-11-22 19:08:55 -07:00
2023-10-23 22:42:18 -04:00
2024-01-08 00:21:57 -07:00
2023-11-09 17:41:14 +01:00
2023-11-22 15:24:57 -07:00
2023-10-25 04:28:30 -04:00
2024-01-07 16:27:50 +01:00
2023-11-03 23:18:21 -04:00
2023-11-19 09:55:07 +00:00
2023-11-22 13:24:27 -05:00
2024-01-01 17:51:18 -07:00
2024-01-13 19:37:33 -07:00
2023-12-20 20:05:16 -08:00
2023-10-21 21:24:55 +00:00
2023-10-21 21:24:55 +00:00