diff options
| author | 2025-09-14 04:11:09 -0700 | |
|---|---|---|
| committer | 2025-09-14 04:11:09 -0700 | |
| commit | 749197a3f9d25e211615960c02380a3d659b20f9 (patch) | |
| tree | 9c892349f0a7136edb150f27f549dc182f7699bb /codegen/fold.zig | |
| parent | Update codebase to Zig 0.15.1. (diff) | |
| download | zg-749197a3f9d25e211615960c02380a3d659b20f9.tar.gz zg-749197a3f9d25e211615960c02380a3d659b20f9.tar.xz zg-749197a3f9d25e211615960c02380a3d659b20f9.zip | |
Embed data files in scripts rather than relying on filesystem access for easier packaging
Diffstat (limited to 'codegen/fold.zig')
| -rw-r--r-- | codegen/fold.zig | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/codegen/fold.zig b/codegen/fold.zig index cc381a8..d927795 100644 --- a/codegen/fold.zig +++ b/codegen/fold.zig | |||
| @@ -7,16 +7,13 @@ pub fn main() anyerror!void { | |||
| 7 | defer std.debug.assert(gpa.deinit() == .ok); | 7 | defer std.debug.assert(gpa.deinit() == .ok); |
| 8 | const allocator = gpa.allocator(); | 8 | const allocator = gpa.allocator(); |
| 9 | 9 | ||
| 10 | var line_buf: [4096]u8 = undefined; | ||
| 11 | // Process DerivedCoreProperties.txt | 10 | // Process DerivedCoreProperties.txt |
| 12 | var props_file = try std.fs.cwd().openFile("data/unicode/DerivedCoreProperties.txt", .{}); | 11 | var props_reader = std.io.Reader.fixed(@embedFile("DerivedCoreProperties.txt")); |
| 13 | defer props_file.close(); | ||
| 14 | var props_reader = props_file.reader(&line_buf); | ||
| 15 | 12 | ||
| 16 | var props_map = std.AutoHashMap(u21, void).init(allocator); | 13 | var props_map = std.AutoHashMap(u21, void).init(allocator); |
| 17 | defer props_map.deinit(); | 14 | defer props_map.deinit(); |
| 18 | 15 | ||
| 19 | props_lines: while (props_reader.interface.takeDelimiterExclusive('\n')) |line| { | 16 | props_lines: while (props_reader.takeDelimiterExclusive('\n')) |line| { |
| 20 | if (line.len == 0 or line[0] == '#') continue; | 17 | if (line.len == 0 or line[0] == '#') continue; |
| 21 | 18 | ||
| 22 | const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; | 19 | const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; |
| @@ -57,11 +54,9 @@ pub fn main() anyerror!void { | |||
| 57 | defer codepoint_mapping.deinit(); | 54 | defer codepoint_mapping.deinit(); |
| 58 | 55 | ||
| 59 | // Process CaseFolding.txt | 56 | // Process CaseFolding.txt |
| 60 | var cp_file = try std.fs.cwd().openFile("data/unicode/CaseFolding.txt", .{}); | ||
| 61 | defer cp_file.close(); | ||
| 62 | var cp_reader = cp_file.reader(&line_buf); | ||
| 63 | 57 | ||
| 64 | while (cp_reader.interface.takeDelimiterExclusive('\n')) |line| { | 58 | var cp_reader = std.io.Reader.fixed(@embedFile("CaseFolding.txt")); |
| 59 | while (cp_reader.takeDelimiterExclusive('\n')) |line| { | ||
| 65 | if (line.len == 0 or line[0] == '#') continue; | 60 | if (line.len == 0 or line[0] == '#') continue; |
| 66 | 61 | ||
| 67 | var field_it = std.mem.splitScalar(u8, line, ';'); | 62 | var field_it = std.mem.splitScalar(u8, line, ';'); |