mirror of
https://github.com/ZDoom/Raze.git
synced 2025-01-22 00:11:56 +00:00
ported directory loading fix from GZDoom
This commit is contained in:
parent
436f24add5
commit
cab73b8abc
1 changed files with 7 additions and 1 deletions
|
@ -128,9 +128,15 @@ int FDirectory::AddDirectory(const char *dirpath, LumpFilterInfo* filter, FileSy
|
||||||
Printf(FSMessageLevel::Warning, "%s is larger than 2GB and will be ignored\n", entry.FilePath.c_str());
|
Printf(FSMessageLevel::Warning, "%s is larger than 2GB and will be ignored\n", entry.FilePath.c_str());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// for accessing the file we need to retain the original unaltered path.
|
||||||
|
// On Linux this is important because its file system is case sensitive,
|
||||||
|
// but even on Windows the Unicode normalization is destructive
|
||||||
|
// for some characters and cannot be used for file names.
|
||||||
|
// Examples for this are the Turkish 'i's or the German ß.
|
||||||
|
SystemFilePath[count] = stringpool->Strdup(entry.FilePathRel.c_str());
|
||||||
// for internal access we use the normalized form of the relative path.
|
// for internal access we use the normalized form of the relative path.
|
||||||
|
// this is fine because the paths that get compared against this will also be normalized.
|
||||||
Entries[count].FileName = NormalizeFileName(entry.FilePathRel.c_str());
|
Entries[count].FileName = NormalizeFileName(entry.FilePathRel.c_str());
|
||||||
SystemFilePath[count] = Entries[count].FileName;
|
|
||||||
Entries[count].CompressedSize = Entries[count].Length = entry.Length;
|
Entries[count].CompressedSize = Entries[count].Length = entry.Length;
|
||||||
Entries[count].Flags = RESFF_FULLPATH;
|
Entries[count].Flags = RESFF_FULLPATH;
|
||||||
Entries[count].ResourceID = -1;
|
Entries[count].ResourceID = -1;
|
||||||
|
|
Loading…
Reference in a new issue