From 4505be7ff9bf66f8fa38c0aaa26a1fb76048bb6d Mon Sep 17 00:00:00 2001 From: Dylan Conway Date: Mon, 17 Apr 2023 17:13:01 -0700 Subject: only if dir exists --- src/string_immutable.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/string_immutable.zig') diff --git a/src/string_immutable.zig b/src/string_immutable.zig index bc0b59ea0..f44afdce6 100644 --- a/src/string_immutable.zig +++ b/src/string_immutable.zig @@ -224,6 +224,16 @@ pub fn indexOfSigned(self: string, str: string) i32 { } pub inline fn lastIndexOfChar(self: string, char: u8) ?usize { + if (comptime Environment.isLinux) { + const memrchr = struct { + pub extern fn memrchr(ptr: [*]const u8, val: c_int, len: usize) ?[*]const u8; + }.memrchr; + const start = memrchr(self.ptr, char, self.len) orelse return null; + const i = @ptrToInt(start) - @ptrToInt(self.ptr); + std.debug.assert(i < self.len); + return @intCast(usize, i); + } + return std.mem.lastIndexOfScalar(u8, self, char); } -- cgit v1.2.3