fix add entry

This commit is contained in:
Abbyyan 2020-07-09 15:52:59 +08:00
parent 719da02020
commit 98dd9fd434

View File

@ -435,8 +435,9 @@ void Project::loadDirectory(const std::string &root, Project::Folder &folder) {
entry.directory = realPath(cmd.Directory); entry.directory = realPath(cmd.Directory);
normalizeFolder(entry.directory); normalizeFolder(entry.directory);
doPathMapping(entry.directory); doPathMapping(entry.directory);
entry.filename = std::string resolvedPath =
realPath(resolveIfRelative(entry.directory, cmd.Filename)); resolveIfRelative(entry.directory, cmd.Filename);
entry.filename = realPath(resolvedPath);
normalizeFolder(entry.filename); normalizeFolder(entry.filename);
doPathMapping(entry.filename); doPathMapping(entry.filename);
@ -463,10 +464,17 @@ void Project::loadDirectory(const std::string &root, Project::Folder &folder) {
if (seen.insert(entry.filename).second) if (seen.insert(entry.filename).second)
folder.entries.push_back(entry); folder.entries.push_back(entry);
if (cmd.Filename != entry.filename && seen.insert(cmd.Filename).second) { if (resolvedPath != entry.filename && seen.insert(resolvedPath).second) {
Project::Entry entry_origin = entry; Project::Entry newEntry = entry;
entry_origin.filename = cmd.Filename; newEntry.filename = resolvedPath;
folder.entries.push_back(entry_origin); folder.entries.push_back(newEntry);
}
normalizeFolder(resolvedPath);
if (resolvedPath != entry.filename && seen.insert(resolvedPath).second) {
Project::Entry newEntry = entry;
newEntry.filename = resolvedPath;
folder.entries.push_back(newEntry);
} }
} }
} }