Commit bc7955306e

Ryan Liptak <squeek502@hotmail.com>
2025-08-28 13:20:35
Fix `-M` and `--dep` splitting on every = instead of just the first
Before this commit, -Mfoo=bar=baz would be incorrectly split into mod_name: `foo` and root_src_orig: `bar` After this commit, -Mfoo=bar=baz will be correctly split into mod_name: `foo` and root_src_orig: `bar=baz` Closes #25059
1 parent 1ec8a7a
Changed files (1)
src/main.zig
@@ -1060,8 +1060,8 @@ fn buildOutputType(
                         }
                     } else if (mem.eql(u8, arg, "--dep")) {
                         var it = mem.splitScalar(u8, args_iter.nextOrFatal(), '=');
-                        const key = it.next().?;
-                        const value = it.next() orelse key;
+                        const key = it.first();
+                        const value = if (it.peek() != null) it.rest() else key;
                         if (mem.eql(u8, key, "std") and !mem.eql(u8, value, "std")) {
                             fatal("unable to import as '{s}': conflicts with builtin module", .{
                                 key,
@@ -1080,8 +1080,8 @@ fn buildOutputType(
                         });
                     } else if (mem.startsWith(u8, arg, "-M")) {
                         var it = mem.splitScalar(u8, arg["-M".len..], '=');
-                        const mod_name = it.next().?;
-                        const root_src_orig = it.next();
+                        const mod_name = it.first();
+                        const root_src_orig = if (it.peek() != null) it.rest() else null;
                         try handleModArg(
                             arena,
                             mod_name,