From d259477fa8d3aa2dfbeca252d3d8667f48881811 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 25 Aug 2021 00:24:36 -0700 Subject: [PATCH] cmd/fetch- allow `.` in pacakge names, fixes #22 sorry for the merge conflict @digitalcreature --- src/cmd/fetch.zig | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/cmd/fetch.zig b/src/cmd/fetch.zig index 5032ab4c72f1c5fb4c3928cf03a03323c67fe696..c1f9b50886f0b99a7fc31e4e4a4158a060856456 100644 --- a/src/cmd/fetch.zig +++ b/src/cmd/fetch.zig @@ -344,9 +344,8 @@ fn print_pkgs(w: std.fs.File.Writer, m: u.Module) !void { if (d.main.len == 0) { continue; } - const r1 = try std.mem.replaceOwned(u8, gpa, d.name, "-", "_"); - const r2 = try std.mem.replaceOwned(u8, gpa, r1, "/", "_"); - try w.print(" pub const {s} = package_data._{s};\n", .{ r2, d.id[0..12] }); + const ident = try zig_name_from_pkg_name(d.name); + try w.print(" pub const {s} = package_data._{s};\n", .{ ident, d.id[0..12] }); } try w.writeAll("}"); } @@ -356,8 +355,15 @@ fn print_imports(w: std.fs.File.Writer, m: u.Module, path: string) !void { if (d.main.len == 0) { continue; } - const r1 = try std.mem.replaceOwned(u8, gpa, d.name, "-", "_"); - const r2 = try std.mem.replaceOwned(u8, gpa, r1, "/", "_"); - try w.print(" pub const {s} = @import(\"{}/{}/{s}\");\n", .{ r2, std.zig.fmtEscapes(path), std.zig.fmtEscapes(d.clean_path), d.main }); + const ident = try zig_name_from_pkg_name(d.name); + try w.print(" pub const {s} = @import(\"{}/{}/{s}\");\n", .{ ident, std.zig.fmtEscapes(path), std.zig.fmtEscapes(d.clean_path), d.main }); } } + +fn zig_name_from_pkg_name(name: []const u8) ![]const u8 { + var legal = name; + legal = try std.mem.replaceOwned(u8, gpa, legal, "-", "_"); + legal = try std.mem.replaceOwned(u8, gpa, legal, "/", "_"); + legal = try std.mem.replaceOwned(u8, gpa, legal, ".", "_"); + return legal; +} -- 2.54.0