mirror of https://github.com/kiwix/libkiwix.git
Ensure the book's `path` is absolute.
We must use absolute path whenever possible. Relative path has sense only related to the "interaction" with the user (current directory, library location, ...).
This commit is contained in:
parent
432f9c30a3
commit
35d812a5f7
|
@ -208,12 +208,16 @@ bool Manager::addBookFromPath(const std::string& pathToOpen,
|
||||||
|
|
||||||
bool Manager::readBookFromPath(const std::string& path, kiwix::Book* book)
|
bool Manager::readBookFromPath(const std::string& path, kiwix::Book* book)
|
||||||
{
|
{
|
||||||
|
std::string tmp_path = path;
|
||||||
|
if (isRelativePath(path)) {
|
||||||
|
tmp_path = computeAbsolutePath(getCurrentDirectory(), path);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
kiwix::Reader reader(path);
|
kiwix::Reader reader(tmp_path);
|
||||||
book->update(reader);
|
book->update(reader);
|
||||||
book->setPathValid(true);
|
book->setPathValid(true);
|
||||||
} catch (const std::exception& e) {
|
} catch (const std::exception& e) {
|
||||||
std::cerr << "Invalid " << path << " : " << e.what() << std::endl;
|
std::cerr << "Invalid " << tmp_path << " : " << e.what() << std::endl;
|
||||||
book->setPathValid(false);
|
book->setPathValid(false);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue