aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorCarl Ã…stholm <carl@astholm.se>2025-03-03 22:20:50 +0100
committerAndrew Kelley <andrew@ziglang.org>2025-03-04 02:42:00 -0500
commit711b0fef58571761386fd8dcd8b9ea3df2283200 (patch)
tree084071b1a4cbb4b23642b92b0b74e35bbba7cb7f /src/main.zig
parent13757aacc7eaf20979c34347ee269b0333700c48 (diff)
downloadzig-711b0fef58571761386fd8dcd8b9ea3df2283200.tar.gz
zig-711b0fef58571761386fd8dcd8b9ea3df2283200.zip
init: Substitute invalid package names with `foo`
Closes #23066
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main.zig b/src/main.zig
index 2e9d204420..1075993846 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -4787,7 +4787,7 @@ fn sanitizeExampleName(arena: Allocator, bytes: []const u8) error{OutOfMemory}![
'-', '.', ' ' => try result.append(arena, '_'),
else => continue,
};
- if (result.items.len == 0) return "foo";
+ if (!std.zig.isValidId(result.items)) return "foo";
if (result.items.len > Package.Manifest.max_name_len)
result.shrinkRetainingCapacity(Package.Manifest.max_name_len);
@@ -4805,6 +4805,10 @@ test sanitizeExampleName {
try std.testing.expectEqualStrings("a", try sanitizeExampleName(arena, "!a"));
try std.testing.expectEqualStrings("a_b", try sanitizeExampleName(arena, "a.b!"));
try std.testing.expectEqualStrings("_01234", try sanitizeExampleName(arena, "01234"));
+ try std.testing.expectEqualStrings("foo", try sanitizeExampleName(arena, "error"));
+ try std.testing.expectEqualStrings("foo", try sanitizeExampleName(arena, "test"));
+ try std.testing.expectEqualStrings("tests", try sanitizeExampleName(arena, "tests"));
+ try std.testing.expectEqualStrings("test_project", try sanitizeExampleName(arena, "test project"));
}
fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {