diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-12-11 17:42:13 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-12-11 17:42:13 -0700 |
| commit | 6ab5bebed1d0808ad8153097332519088d5af95a (patch) | |
| tree | c379dc481b9d8cce57e008f2931a20992b9da2d0 /src | |
| parent | 52bc1442d6e48438a1f8fb155a4174e41d02090f (diff) | |
| download | zig-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')
| -rw-r--r-- | src/Compilation.zig | 4 | ||||
| -rw-r--r-- | src/main.zig | 8 | ||||
| -rw-r--r-- | src/musl.zig | 2 |
3 files changed, 7 insertions, 7 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, .{ diff --git a/src/main.zig b/src/main.zig index b134dfd606..346fc11af2 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1339,16 +1339,16 @@ fn buildOutputType( break :blk "test"; } else if (root_src_file) |file| { const basename = fs.path.basename(file); - break :blk mem.split(basename, ".").next().?; + break :blk basename[0 .. basename.len - fs.path.extension(basename).len]; } else if (c_source_files.items.len >= 1) { const basename = fs.path.basename(c_source_files.items[0].src_path); - break :blk mem.split(basename, ".").next().?; + break :blk basename[0 .. basename.len - fs.path.extension(basename).len]; } else if (link_objects.items.len >= 1) { const basename = fs.path.basename(link_objects.items[0]); - break :blk mem.split(basename, ".").next().?; + break :blk basename[0 .. basename.len - fs.path.extension(basename).len]; } else if (emit_bin == .yes) { const basename = fs.path.basename(emit_bin.yes); - break :blk mem.split(basename, ".").next().?; + break :blk basename[0 .. basename.len - fs.path.extension(basename).len]; } else if (show_builtin) { break :blk "builtin"; } else if (arg_mode == .run) { diff --git a/src/musl.zig b/src/musl.zig index c405013afe..9ac4d42f8d 100644 --- a/src/musl.zig +++ b/src/musl.zig @@ -140,7 +140,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile) !void { const dirname = path.dirname(src_file).?; const basename = path.basename(src_file); - const noextbasename = mem.split(basename, ".").next().?; + const noextbasename = basename[0 .. basename.len - std.fs.path.extension(basename).len]; const before_arch_dir = path.dirname(dirname).?; const dirbasename = path.basename(dirname); |
