fs: Fix normalize_path("") incongruity with Boost.filesystem

The non-BFS version of normalize_path() returns an empty string when
passed an empty string, but the BFS version returns the normalized
version of the current working dir for the Wesnoth process.

Due to the way editor::start()'s arguments are built from the process
command line, the result of normalize_path("") gets passed to it when
starting with the --editor switch and no map path argument. If the
result describes a directory, the editor brings up the filechooser
dialog on that path; otherwise, it attempts to open it as a map file.

Making the BFS version of normalize_path() follow the non-BFS behavior
fixes the editor unexpectedly bringing up the filechooser when started
from the command line.
This commit is contained in:
Ignacio R. Morelle 2014-11-08 02:25:15 -03:00
parent 40f73c8c57
commit a6073c8a7c

View file

@ -863,6 +863,10 @@ bool is_path_sep(char c)
}
std::string normalize_path(const std::string &fpath)
{
if (fpath.empty()) {
return fpath;
}
return bfs::absolute(fpath).string();
}