mirror of
https://github.com/xenia-project/xenia.git
synced 2025-12-06 07:12:03 +01:00
Merge pull request #251 from DrChat/fs_qualified_check
FS ResolvePath fix for fully qualified paths
This commit is contained in:
commit
6be12a61c1
|
|
@ -76,15 +76,15 @@ int FileSystem::InitializeFromPath(fs::FileSystemType type,
|
||||||
|
|
||||||
// Register the local directory in the virtual filesystem.
|
// Register the local directory in the virtual filesystem.
|
||||||
int result_code = RegisterHostPathDevice(
|
int result_code = RegisterHostPathDevice(
|
||||||
"\\Device\\Harddisk1\\Partition0", parent_path, true);
|
"\\Device\\Harddisk0\\Partition0", parent_path, true);
|
||||||
if (result_code) {
|
if (result_code) {
|
||||||
XELOGE("Unable to mount local directory");
|
XELOGE("Unable to mount local directory");
|
||||||
return result_code;
|
return result_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create symlinks to the device.
|
// Create symlinks to the device.
|
||||||
CreateSymbolicLink("game:", "\\Device\\Harddisk1\\Partition0");
|
CreateSymbolicLink("game:", "\\Device\\Harddisk0\\Partition0");
|
||||||
CreateSymbolicLink("d:", "\\Device\\Harddisk1\\Partition0");
|
CreateSymbolicLink("d:", "\\Device\\Harddisk0\\Partition0");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case FileSystemType::DISC_IMAGE: {
|
case FileSystemType::DISC_IMAGE: {
|
||||||
|
|
@ -165,6 +165,16 @@ std::unique_ptr<Entry> FileSystem::ResolvePath(const std::string& path) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Not to fret, check to see if the path is fully qualified.
|
||||||
|
if (device_path.empty()) {
|
||||||
|
for (auto& device : devices_) {
|
||||||
|
if (xe::find_first_of_case(normalized_path, device->path()) == 0) {
|
||||||
|
device_path = device->path();
|
||||||
|
relative_path = normalized_path.substr(device_path.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (device_path.empty()) {
|
if (device_path.empty()) {
|
||||||
XELOGE("ResolvePath(%s) failed - no root found", path.c_str());
|
XELOGE("ResolvePath(%s) failed - no root found", path.c_str());
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue