fs: Fix relative directory creation incongruity with Boost.filesystem
The non-BFS version of create_directory_if_missing_recursive() handles relative path names (e.g. "foo") correctly and doesn't attempt to create a parent that is left unspecified in the path (i.e. empty), but the BFS version does, predictably failing the whole operation. This fixes an issue where `./wesnoth -p data foo` from the source tree would fail with `error filesystem: Could not create parents to foo` if `foo` did not already exist, when using the Boost.filesystem-based implementation. `./wesnoth -p data ./foo` would succeed because there is a visible parent directory '.' that already exists and needs not be created again.
This commit is contained in:
parent
124afc0857
commit
c293e20d25
1 changed files with 1 additions and 1 deletions
|
@ -283,7 +283,7 @@ static bool create_directory_if_missing_recursive(const path& dirpath)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (create_directory_if_missing_recursive(dirpath.parent_path())) {
|
||||
if (!dirpath.has_parent_path() || create_directory_if_missing_recursive(dirpath.parent_path())) {
|
||||
return create_directory_if_missing(dirpath);
|
||||
} else {
|
||||
ERR_FS << "Could not create parents to " << dirpath.string() << '\n';
|
||||
|
|
Loading…
Add table
Reference in a new issue