diff --git a/scripts/Jamo.zig b/scripts/Jamo.zig index 077dd311e05d4bf3ddbb0a6477be87ad4ec97b51..f88afcebc21f31d03ce596e36ec44d6681ebf9bd 100644 --- a/scripts/Jamo.zig +++ b/scripts/Jamo.zig @@ -26,9 +26,8 @@ pub usingnamespace common.Main(struct { var it = std.mem.tokenizeAny(u8, line, "; "); const first = it.next().?; - const next = it.next().?; - const actual = if (std.mem.eql(u8, next, "#")) "" else next; + const short = it.next() orelse ""; - try writer.print(" .{{ .code = 0x{s}, .short_name = \"{}\" }},\n", .{ first, std.zig.fmtEscapes(actual) }); + try writer.print(" .{{ .code = 0x{s}, .short_name = \"{}\" }},\n", .{ first, std.zig.fmtEscapes(short) }); } }); diff --git a/scripts/ScriptExtensions.zig b/scripts/ScriptExtensions.zig index 4358865b2a4c5842d5d2d7a15b1c82fc3c6c237f..37af8245f363d24cfd98f1001caa621f11cb385e 100644 --- a/scripts/ScriptExtensions.zig +++ b/scripts/ScriptExtensions.zig @@ -34,18 +34,14 @@ pub usingnamespace common.Main(struct { const end = try std.fmt.parseInt(u21, first[index + 2 ..], 16); var i = start; while (i <= end) : (i += 1) { - try writer.print(" .{{ .code = 0x{X}, .scripts = {} }},\n", .{ i, fmtScripts(untilComment(it.rest())) }); + try writer.print(" .{{ .code = 0x{X}, .scripts = {} }},\n", .{ i, fmtScripts(it.rest()) }); } } else { - try writer.print(" .{{ .code = 0x{s}, .scripts = {} }},\n", .{ first, fmtScripts(untilComment(it.rest())) }); + try writer.print(" .{{ .code = 0x{s}, .scripts = {} }},\n", .{ first, fmtScripts(it.rest()) }); } } }); -fn untilComment(input: []const u8) []const u8 { - return input[0..std.mem.indexOfScalar(u8, input, '#').?]; -} - fn fmtScripts(bytes: []const u8) std.fmt.Formatter(formatScripts) { return .{ .data = bytes }; } diff --git a/scripts/_common.zig b/scripts/_common.zig index 12b6e09aadd848c46a8b4ab26e0994b061012d18..a27307153b8dd0f103d85e914c5927986993e77b 100644 --- a/scripts/_common.zig +++ b/scripts/_common.zig @@ -54,18 +54,18 @@ pub fn Main(comptime T: type) type { var arena = std.heap.ArenaAllocator.init(alloc); defer arena.deinit(); while (true) { - const line = r.readUntilDelimiterAlloc(alloc, '\n', max_size) catch |err| switch (err) { + const line_raw = r.readUntilDelimiterAlloc(alloc, '\n', max_size) catch |err| switch (err) { error.EndOfStream => break, else => |e| return e, }; - defer alloc.free(line); + defer alloc.free(line_raw); + + var real = std.mem.splitScalar(u8, line_raw, '#'); + const line = real.first(); if (line.len == 0) { continue; } - if (line[0] == '#') { - continue; - } try T.exec(arena.allocator(), line, w);