diff --git a/src/common/kiwix/manager.cpp b/src/common/kiwix/manager.cpp index 9a15ba463..fe87f5c38 100644 --- a/src/common/kiwix/manager.cpp +++ b/src/common/kiwix/manager.cpp @@ -63,9 +63,9 @@ namespace kiwix { /* Compute absolute paths if relative one are used */ book.pathAbsolute = isRelativePath(book.path) ? - computeAbsolutePath(libraryPath, book.path) : book.path; + computeAbsolutePath(removeLastPathElement(libraryPath, true, false), book.path) : book.path; book.indexPathAbsolute = isRelativePath(book.indexPath) ? - computeAbsolutePath(libraryPath, book.indexPath) : book.indexPath; + computeAbsolutePath(removeLastPathElement(libraryPath, true, false), book.indexPath) : book.indexPath; /* Update the book properties with the new importer */ if (libraryVersion.empty() || atoi(libraryVersion.c_str()) < atoi(KIWIX_LIBRARY_VERSION)) { diff --git a/src/common/pathTools.cpp b/src/common/pathTools.cpp index fade2d17f..d9b737634 100644 --- a/src/common/pathTools.cpp +++ b/src/common/pathTools.cpp @@ -27,13 +27,13 @@ bool isRelativePath(const string &path) { #endif } -string computeAbsolutePath(const string libraryPath, const string relativePath) { +string computeAbsolutePath(const string path, const string relativePath) { #ifdef _WIN32 string separator = "\\"; #else string separator = "/"; #endif - string absolutePath = removeLastPathElement(libraryPath, true, false); + string absolutePath = path; char *cRelativePath = strdup(relativePath.c_str()); char *token = strtok(cRelativePath, "/");