Fix paths being created with trailing "/" always
continuous-integration/drone/push Build is passing Details

This commit is contained in:
kayomn 2022-10-04 23:15:59 +01:00
parent fbd79b5b41
commit d2f4c0afe1
1 changed files with 27 additions and 14 deletions

View File

@ -550,26 +550,39 @@ pub const FileSystem = enum {
.length = 0,
};
for (sequences) |sequence| if (sequence.len != 0) {
var components = mem.Spliterator(u8){
.source = sequence,
.delimiter = "/",
};
if (sequences.len != 0) {
const last_sequence_index = sequences.len - 1;
while (components.next()) |component| if (component.len != 0) {
for (component) |byte| {
for (sequences) |sequence, index| if (sequence.len != 0) {
var components = mem.Spliterator(u8){
.source = sequence,
.delimiter = "/",
};
while (components.next()) |component| if (component.len != 0) {
for (component) |byte| {
if (path.length == Path.max) return error.TooLong;
path.buffer[path.length] = byte;
path.length += 1;
}
if (components.hasNext()) {
if (path.length == Path.max) return error.TooLong;
path.buffer[path.length] = '/';
path.length += 1;
}
};
if (index < last_sequence_index) {
if (path.length == Path.max) return error.TooLong;
path.buffer[path.length] = byte;
path.buffer[path.length] = '/';
path.length += 1;
}
if (path.length == Path.max) return error.TooLong;
path.buffer[path.length] = '/';
path.length += 1;
};
};
}
return path;
}