authorgravatar for carl@astholm.seCarl Åstholm <carl@astholm.se> 2025-03-03 22:20:50+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-03-04 02:42:00-05:00
log711b0fef58571761386fd8dcd8b9ea3df2283200
tree084071b1a4cbb4b23642b92b0b74e35bbba7cb7f
parent13757aacc7eaf20979c34347ee269b0333700c48

init: Substitute invalid package names with `foo`

Closes #23066

1 files changed, 5 insertions(+), 1 deletions(-)

src/main.zig+5-1
...@@ -4787,7 +4787,7 @@ fn sanitizeExampleName(arena: Allocator, bytes: []const u8) error{OutOfMemory}![...@@ -4787,7 +4787,7 @@ fn sanitizeExampleName(arena: Allocator, bytes: []const u8) error{OutOfMemory}![
4787 '-', '.', ' ' => try result.append(arena, '_'),4787 '-', '.', ' ' => try result.append(arena, '_'),
4788 else => continue,4788 else => continue,
4789 };4789 };
4790 if (result.items.len == 0) return "foo";4790 if (!std.zig.isValidId(result.items)) return "foo";
4791 if (result.items.len > Package.Manifest.max_name_len)4791 if (result.items.len > Package.Manifest.max_name_len)
4792 result.shrinkRetainingCapacity(Package.Manifest.max_name_len);4792 result.shrinkRetainingCapacity(Package.Manifest.max_name_len);
47934793
...@@ -4805,6 +4805,10 @@ test sanitizeExampleName {...@@ -4805,6 +4805,10 @@ test sanitizeExampleName {
4805 try std.testing.expectEqualStrings("a", try sanitizeExampleName(arena, "!a"));4805 try std.testing.expectEqualStrings("a", try sanitizeExampleName(arena, "!a"));
4806 try std.testing.expectEqualStrings("a_b", try sanitizeExampleName(arena, "a.b!"));4806 try std.testing.expectEqualStrings("a_b", try sanitizeExampleName(arena, "a.b!"));
4807 try std.testing.expectEqualStrings("_01234", try sanitizeExampleName(arena, "01234"));4807 try std.testing.expectEqualStrings("_01234", try sanitizeExampleName(arena, "01234"));
4808 try std.testing.expectEqualStrings("foo", try sanitizeExampleName(arena, "error"));
4809 try std.testing.expectEqualStrings("foo", try sanitizeExampleName(arena, "test"));
4810 try std.testing.expectEqualStrings("tests", try sanitizeExampleName(arena, "tests"));
4811 try std.testing.expectEqualStrings("test_project", try sanitizeExampleName(arena, "test project"));
4808}4812}
48094813
4810fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {4814fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {