fn strsep(maybe_str: *?[*:0]c_char, values: [*:0]const c_char) callconv(.c) ?[*]c_char
fn strsep(maybe_str: *?[*:0]c_char, values: [*:0]const c_char) callconv(.c) ?[*]c_char { if (maybe_str.*) |str| { const values_bytes = std.mem.span(@as([*:0]const u8, @ptrCast(values))); const str_bytes = std.mem.span(@as([*:0]u8, @ptrCast(str))); const found = std.mem.findAny(u8, str_bytes, values_bytes) orelse { maybe_str.* = null; return str; }; str[found] = 0; maybe_str.* = str[found + 1 ..]; return str; } return null; }