diff options
Diffstat (limited to 'codegen')
| -rw-r--r-- | codegen/upper.zig | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/codegen/upper.zig b/codegen/upper.zig index 6fea608..455fe2c 100644 --- a/codegen/upper.zig +++ b/codegen/upper.zig | |||
| @@ -31,26 +31,26 @@ pub fn main() !void { | |||
| 31 | if (line.len == 0) continue; | 31 | if (line.len == 0) continue; |
| 32 | 32 | ||
| 33 | var field_iter = std.mem.splitScalar(u8, line, ';'); | 33 | var field_iter = std.mem.splitScalar(u8, line, ';'); |
| 34 | var cps: [2]u24 = undefined; | 34 | var cp: i24 = undefined; |
| 35 | 35 | ||
| 36 | var i: usize = 0; | 36 | var i: usize = 0; |
| 37 | while (field_iter.next()) |field| : (i += 1) { | 37 | while (field_iter.next()) |field| : (i += 1) { |
| 38 | switch (i) { | 38 | switch (i) { |
| 39 | 0 => cps[0] = try std.fmt.parseInt(u24, field, 16), | 39 | 0 => cp = try std.fmt.parseInt(i24, field, 16), |
| 40 | |||
| 41 | 2 => if (line[0] == '<') continue :lines, | ||
| 40 | 42 | ||
| 41 | 12 => { | 43 | 12 => { |
| 42 | // Simple uppercase mapping | 44 | // Simple uppercase mapping |
| 43 | if (field.len == 0) continue :lines; | 45 | if (field.len == 0) continue :lines; |
| 44 | cps[1] = try std.fmt.parseInt(u24, field, 16); | 46 | try writer.writeInt(i24, cp, endian); |
| 47 | const mapping = try std.fmt.parseInt(i24, field, 16); | ||
| 48 | try writer.writeInt(i24, mapping - cp, endian); | ||
| 45 | }, | 49 | }, |
| 46 | 50 | ||
| 47 | 2 => if (line[0] == '<') continue :lines, | ||
| 48 | |||
| 49 | else => {}, | 51 | else => {}, |
| 50 | } | 52 | } |
| 51 | } | 53 | } |
| 52 | |||
| 53 | for (&cps) |cp| try writer.writeInt(u24, cp, endian); | ||
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | try writer.writeInt(u24, 0, endian); | 56 | try writer.writeInt(u24, 0, endian); |