aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-12-11 17:42:13 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-12-11 17:42:13 -0700
commit6ab5bebed1d0808ad8153097332519088d5af95a (patch)
treec379dc481b9d8cce57e008f2931a20992b9da2d0 /src/Compilation.zig
parent52bc1442d6e48438a1f8fb155a4174e41d02090f (diff)
downloadzig-6ab5bebed1d0808ad8153097332519088d5af95a.tar.gz
zig-6ab5bebed1d0808ad8153097332519088d5af95a.zip
stage2: proper file extension stripping
Previously it used mem.split on "." and took the first iterated item. Now it uses fs.path.extension and strips off that number of bytes. Closes #7404
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 13ee04765c..96bf7b5797 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -1762,7 +1762,7 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_comp_progress_node: *
const o_basename_noext = if (direct_o)
comp.bin_file.options.root_name
else
- mem.split(c_source_basename, ".").next().?;
+ c_source_basename[0 .. c_source_basename.len - std.fs.path.extension(c_source_basename).len];
const o_basename = try std.fmt.allocPrint(arena, "{s}{s}", .{ o_basename_noext, comp.getTarget().oFileExt() });
const digest = if (!comp.disable_c_depfile and try man.hit()) man.final() else blk: {
@@ -2731,7 +2731,7 @@ fn buildOutputFromZig(
},
.root_src_path = src_basename,
};
- const root_name = mem.split(src_basename, ".").next().?;
+ const root_name = src_basename[0 .. src_basename.len - std.fs.path.extension(src_basename).len];
const target = comp.getTarget();
const fixed_output_mode = if (target.cpu.arch.isWasm()) .Obj else output_mode;
const bin_basename = try std.zig.binNameAlloc(comp.gpa, .{