zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 52bc1442d6e48438a1f8fb155a4174e41d02090f (tree)
parent 1852dc7e13b49a0b3238b8d654d09c4fc91aa3e4
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Fri, 11 Dec 2020 17:41:34 -0700

std.fs.path.extension: add additional API guarantee

Added:

The returned slice is guaranteed to have its pointer
within the start and end pointer address range of `path`,
even if it is length zero.

Diffstat:
Mlib/std/fs/path.zig | 6++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/std/fs/path.zig b/lib/std/fs/path.zig @@ -1201,15 +1201,17 @@ fn testRelativeWindows(from: []const u8, to: []const u8, expected_output: []cons /// - `"src.keep.me"` ⇒ `".me"` /// - `"/src/keep.me"` ⇒ `".me"` /// - `"/src/keep.me/"` ⇒ `".me"` +/// The returned slice is guaranteed to have its pointer within the start and end +/// pointer address range of `path`, even if it is length zero. pub fn extension(path: []const u8) []const u8 { const filename = basename(path); return if (std.mem.lastIndexOf(u8, filename, ".")) |index| if (index == 0 or index == filename.len - 1) - "" + path[path.len..] else filename[index..] else - ""; + path[path.len..]; } fn testExtension(path: []const u8, expected: []const u8) void {