summaryrefslogtreecommitdiff
path: root/codegen/fold.zig
diff options
context:
space:
mode:
authorGravatar Michael Chaten2025-09-14 04:11:09 -0700
committerGravatar Michael Chaten2025-09-14 04:11:09 -0700
commit749197a3f9d25e211615960c02380a3d659b20f9 (patch)
tree9c892349f0a7136edb150f27f549dc182f7699bb /codegen/fold.zig
parentUpdate codebase to Zig 0.15.1. (diff)
downloadzg-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.zig13
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, ';');