@@ -55,21 +55,33 @@ pub fn process(opt: Options) !void {
5555 var fbuf : [8192 ]u8 = undefined ;
5656 var freader = fd .reader (& fbuf );
5757
58- const gz_buf = try opt .gpa .alloc (u8 , std .compress .flate .max_window_len );
59- defer opt .gpa .free (gz_buf );
58+ var flate_buffer : [std .compress .flate .max_window_len ]u8 = undefined ;
6059 var gz = std .compress .flate .Decompress .init (
6160 & freader .interface ,
6261 .gzip ,
63- gz_buf ,
62+ & flate_buffer ,
6463 );
6564
6665 var file_name_buffer : [std .fs .max_path_bytes ]u8 = undefined ;
6766 var link_name_buffer : [std .fs .max_path_bytes ]u8 = undefined ;
67+ var tardiag : std.tar.Diagnostics = .{
68+ .allocator = opt .gpa ,
69+ };
70+ defer tardiag .deinit ();
6871 var it : tar.Iterator = .init (& gz .reader , .{
6972 .file_name_buffer = & file_name_buffer ,
7073 .link_name_buffer = & link_name_buffer ,
74+ .diagnostics = & tardiag ,
7175 });
72- while (try it .next ()) | entry | {
76+ var count_entries : usize = 0 ;
77+ while (it .next () catch | err | {
78+ std .log .err ("err: {} {}" , .{ count_entries , err });
79+ for (tardiag .errors .items ) | errit | {
80+ std .log .err ("err: {any}" , .{errit });
81+ }
82+ return err ;
83+ }) | entry | {
84+ count_entries += 1 ;
7385 if (! std .mem .startsWith (u8 , entry .name , tar_prefix )) continue ;
7486 const sep_idx = std .mem .indexOfAnyPos (
7587 u8 ,
0 commit comments