| ... | @@ -575,7 +575,6 @@ pub fn parseTag(tagfile: string) !Tag { | ... | @@ -575,7 +575,6 @@ pub fn parseTag(tagfile: string) !Tag { |
| 575 | .object = undefined, | 575 | .object = undefined, |
| 576 | .type = undefined, | 576 | .type = undefined, |
| 577 | .tagger = null, | 577 | .tagger = null, |
| 578 | .gpgsig = "", | | |
| 579 | .message = undefined, | 578 | .message = undefined, |
| 580 | }; | 579 | }; |
| 581 | const object = extras.trimPrefixEnsure(iter.next().?, "object ").?; | 580 | const object = extras.trimPrefixEnsure(iter.next().?, "object ").?; |
| ... | @@ -585,27 +584,12 @@ pub fn parseTag(tagfile: string) !Tag { | ... | @@ -585,27 +584,12 @@ pub fn parseTag(tagfile: string) !Tag { |
| 585 | result.type = std.meta.stringToEnum(RefType, ty).?; | 584 | result.type = std.meta.stringToEnum(RefType, ty).?; |
| 586 | const tag = extras.trimPrefixEnsure(iter.next().?, "tag ").?; | 585 | const tag = extras.trimPrefixEnsure(iter.next().?, "tag ").?; |
| 587 | _ = tag; | 586 | _ = tag; |
| 588 | var f_start: usize = 0; | | |
| 589 | while (true) { | 587 | while (true) { |
| 590 | const line_start = iter.index.?; | | |
| 591 | const line = iter.next() orelse break; | 588 | const line = iter.next() orelse break; |
| 592 | if (line.len == 0) break; | 589 | if (line.len == 0) break; |
| 593 | const space = std.mem.indexOfScalar(u8, line, ' ').?; | 590 | const space = std.mem.indexOfScalar(u8, line, ' ').?; |
| 594 | const k = line[0..space]; | 591 | const k = line[0..space]; |
| 595 | if (std.mem.eql(u8, k, "tagger")) result.tagger = try parseCommitUserAndAt(line[space + 1 ..]); | 592 | if (std.mem.eql(u8, k, "tagger")) result.tagger = try parseCommitUserAndAt(line[space + 1 ..]); |
| 596 | if (std.mem.eql(u8, k, "gpgsig")) { | | |
| 597 | f_start = line_start + 7; | | |
| 598 | _ = iter.next().?; | | |
| 599 | while (true) { | | |
| 600 | const line2_start = iter.index.?; | | |
| 601 | const line2 = iter.next() orelse break; | | |
| 602 | if (line2.len == 0 or line2[0] != ' ') { | | |
| 603 | iter.index = line2_start; | | |
| 604 | break; | | |
| 605 | } | | |
| 606 | } | | |
| 607 | result.gpgsig = tagfile[f_start .. iter.index.? - 1]; | | |
| 608 | } | | |
| 609 | } | 593 | } |
| 610 | result.message = iter.rest(); | 594 | result.message = iter.rest(); |
| 611 | return result; | 595 | return result; |
| ... | @@ -2152,17 +2136,12 @@ pub const Tag = struct { | ... | @@ -2152,17 +2136,12 @@ pub const Tag = struct { |
| 2152 | object: Id, | 2136 | object: Id, |
| 2153 | type: RefType, | 2137 | type: RefType, |
| 2154 | tagger: ?UserAndAt, | 2138 | tagger: ?UserAndAt, |
| 2155 | gpgsig: []const u8, | | |
| 2156 | message: string, | 2139 | message: string, |
| 2157 | | 2140 | |
| 2158 | pub fn destroy(t: *Tag, r: *Repository) void { | 2141 | pub fn destroy(t: *Tag, r: *Repository) void { |
| 2159 | r.gpa.free(t.raw); | 2142 | r.gpa.free(t.raw); |
| 2160 | r.gpa.destroy(t); | 2143 | r.gpa.destroy(t); |
| 2161 | } | 2144 | } |
| 2162 | | | |
| 2163 | pub fn signature(t: *const Tag, allocator: std.mem.Allocator) !Signature { | | |
| 2164 | return .from(allocator, t.gpgsig, t.raw); | | |
| 2165 | } | | |
| 2166 | }; | 2145 | }; |
| 2167 | | 2146 | |
| 2168 | pub const Ref = struct { | 2147 | pub const Ref = struct { |