fn setPath(w: *Writer, header: *Header, sub_path: []const u8) Error!void
Writes path in posix header, if don't fit (in name+prefix; 100+155 bytes) writes it in gnu extended header.
w: *Writer
header: *Header
sub_path: []const u8
WriteFailed
OctalOverflow
NameTooLong
135 136 137 138 139 140 141 142 143 144 145 146 147
fn setPath(w: *Writer, header: *Header, sub_path: []const u8) Error!void { header.setPath(w.prefix, sub_path) catch |err| switch (err) { error.NameTooLong => { // write extended header const buffers: []const []const u8 = if (w.prefix.len == 0) &.{sub_path} else &.{ w.prefix, "/", sub_path }; try w.writeExtendedHeader(.gnu_long_name, buffers); }, else => |e| return e, }; }
Writes path in posix header, if don't fit (in name+prefix; 100+155 bytes) writes it in gnu extended header.