Fix OS layer returning with "/" at the end for directories
This commit is contained in:
@@ -231,11 +231,9 @@ API void Advance(FileIter *it) {
|
||||
it->is_directory = file->d_type == DT_DIR;
|
||||
it->filename = Copy(it->allocator, file->d_name);
|
||||
|
||||
const char *dir_char_ending = it->is_directory ? "/" : "";
|
||||
const char *separator = it->path.data[it->path.len - 1] == '/' ? "" : "/";
|
||||
it->relative_path = Format(it->allocator, "%S%s%s%s", it->path, separator, file->d_name, dir_char_ending);
|
||||
it->relative_path = Format(it->allocator, "%S%s%s", it->path, separator, file->d_name);
|
||||
it->absolute_path = GetAbsolutePath(it->allocator, it->relative_path);
|
||||
if (it->is_directory) it->absolute_path = Format(it->allocator, "%S/", it->absolute_path);
|
||||
it->is_valid = true;
|
||||
return;
|
||||
}
|
||||
@@ -540,16 +538,10 @@ API void Advance(FileIter *it) {
|
||||
|
||||
it->is_directory = data->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
||||
it->filename = ToString(it->allocator, (char16_t *)data->cFileName, WideLength((char16_t *)data->cFileName));
|
||||
const char *is_dir = it->is_directory ? "/" : "";
|
||||
const char *separator = it->path.data[it->path.len - 1] == '/' ? "" : "/";
|
||||
it->relative_path = Format(it->allocator, "%S%s%S%s", it->path, separator, it->filename, is_dir);
|
||||
it->relative_path = Format(it->allocator, "%S%s%S", it->path, separator, it->filename);
|
||||
it->absolute_path = GetAbsolutePath(it->allocator, it->relative_path);
|
||||
it->is_valid = true;
|
||||
|
||||
if (it->is_directory) {
|
||||
Assert(it->relative_path.data[it->relative_path.len - 1] == '/');
|
||||
Assert(it->absolute_path.data[it->absolute_path.len - 1] == '/');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1103,11 +1095,9 @@ API void Advance(FileIter *it) {
|
||||
it->is_directory = file->d_type == DT_DIR;
|
||||
it->filename = Copy(it->allocator, file->d_name);
|
||||
|
||||
const char *dir_char_ending = it->is_directory ? "/" : "";
|
||||
const char *separator = it->path.data[it->path.len - 1] == '/' ? "" : "/";
|
||||
it->relative_path = Format(it->allocator, "%S%s%s%s", it->path, separator, file->d_name, dir_char_ending);
|
||||
it->relative_path = Format(it->allocator, "%S%s%s", it->path, separator, file->d_name);
|
||||
it->absolute_path = GetAbsolutePath(it->allocator, it->relative_path);
|
||||
if (it->is_directory) it->absolute_path = Format(it->allocator, "%S/", it->absolute_path);
|
||||
it->is_valid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user