summaryrefslogtreecommitdiff
path: root/codegen/hangul.zig
diff options
context:
space:
mode:
authorGravatar Michael Chaten2025-09-13 08:38:24 -0700
committerGravatar Michael Chaten2025-09-14 01:48:41 -0700
commita3b5e884b12fdaa341010ef41bb9382fa0cd89f8 (patch)
tree8bdd22c1c54da0b56ef6b9fe0dc4c2ca667b71a3 /codegen/hangul.zig
parentUpdate build to 0.15.0 (diff)
downloadzg-a3b5e884b12fdaa341010ef41bb9382fa0cd89f8.tar.gz
zg-a3b5e884b12fdaa341010ef41bb9382fa0cd89f8.tar.xz
zg-a3b5e884b12fdaa341010ef41bb9382fa0cd89f8.zip
Update codebase to Zig 0.15.1.
Removes compression support
Diffstat (limited to 'codegen/hangul.zig')
-rw-r--r--codegen/hangul.zig32
1 files changed, 17 insertions, 15 deletions
diff --git a/codegen/hangul.zig b/codegen/hangul.zig
index 2c42bb7..6768b3f 100644
--- a/codegen/hangul.zig
+++ b/codegen/hangul.zig
@@ -30,7 +30,7 @@ const BlockMap = std.HashMap(
30 std.hash_map.default_max_load_percentage, 30 std.hash_map.default_max_load_percentage,
31); 31);
32 32
33pub fn main() !void { 33pub fn main() anyerror!void {
34 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); 34 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
35 defer arena.deinit(); 35 defer arena.deinit();
36 const allocator = arena.allocator(); 36 const allocator = arena.allocator();
@@ -43,10 +43,9 @@ pub fn main() !void {
43 // Process HangulSyllableType.txt 43 // Process HangulSyllableType.txt
44 var in_file = try std.fs.cwd().openFile("data/unicode/HangulSyllableType.txt", .{}); 44 var in_file = try std.fs.cwd().openFile("data/unicode/HangulSyllableType.txt", .{});
45 defer in_file.close(); 45 defer in_file.close();
46 var in_buf = std.io.bufferedReader(in_file.reader()); 46 var in_reader = in_file.reader(&line_buf);
47 const in_reader = in_buf.reader();
48 47
49 while (try in_reader.readUntilDelimiterOrEof(&line_buf, '\n')) |line| { 48 while (in_reader.interface.takeDelimiterExclusive('\n')) |line| {
50 if (line.len == 0 or line[0] == '#') continue; 49 if (line.len == 0 or line[0] == '#') continue;
51 50
52 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; 51 const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line;
@@ -77,15 +76,19 @@ pub fn main() !void {
77 else => {}, 76 else => {},
78 } 77 }
79 } 78 }
79 } else |err| switch (err) {
80 error.EndOfStream => {},
81 else => {
82 return err;
83 },
80 } 84 }
81
82 var blocks_map = BlockMap.init(allocator); 85 var blocks_map = BlockMap.init(allocator);
83 defer blocks_map.deinit(); 86 defer blocks_map.deinit();
84 87
85 var stage1 = std.ArrayList(u16).init(allocator); 88 var stage1 = std.array_list.Managed(u16).init(allocator);
86 defer stage1.deinit(); 89 defer stage1.deinit();
87 90
88 var stage2 = std.ArrayList(u3).init(allocator); 91 var stage2 = std.array_list.Managed(u3).init(allocator);
89 defer stage2.deinit(); 92 defer stage2.deinit();
90 93
91 var block: Block = [_]u3{0} ** block_size; 94 var block: Block = [_]u3{0} ** block_size;
@@ -116,18 +119,17 @@ pub fn main() !void {
116 _ = args_iter.skip(); 119 _ = args_iter.skip();
117 const output_path = args_iter.next() orelse @panic("No output file arg!"); 120 const output_path = args_iter.next() orelse @panic("No output file arg!");
118 121
119 const compressor = std.compress.flate.deflate.compressor; 122 var write_buf: [4096]u8 = undefined;
120 var out_file = try std.fs.cwd().createFile(output_path, .{}); 123 var out_file = try std.fs.cwd().createFile(output_path, .{});
121 defer out_file.close(); 124 defer out_file.close();
122 var out_comp = try compressor(.raw, out_file.writer(), .{ .level = .best }); 125 var writer = out_file.writer(&write_buf);
123 const writer = out_comp.writer();
124 126
125 const endian = builtin.cpu.arch.endian(); 127 const endian = builtin.cpu.arch.endian();
126 try writer.writeInt(u16, @intCast(stage1.items.len), endian); 128 try writer.interface.writeInt(u16, @intCast(stage1.items.len), endian);
127 for (stage1.items) |i| try writer.writeInt(u16, i, endian); 129 for (stage1.items) |i| try writer.interface.writeInt(u16, i, endian);
128 130
129 try writer.writeInt(u16, @intCast(stage2.items.len), endian); 131 try writer.interface.writeInt(u16, @intCast(stage2.items.len), endian);
130 for (stage2.items) |i| try writer.writeInt(u8, i, endian); 132 for (stage2.items) |i| try writer.interface.writeInt(u8, i, endian);
131 133
132 try out_comp.flush(); 134 try writer.interface.flush();
133} 135}