summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pacman/pacman.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 27130254..377ea3fe 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -227,11 +227,11 @@ static void cleanup(int signum)
exit(signum);
}
-/** Sets all libalpm required paths in one go. Called after the command line and
- * inital config file parsing. Once this is complete, we can see if any paths were
- * defined. If a rootdir was defined and nothing else, we want all of our paths to
- * live under the rootdir that was specified. Safe to call multiple times (will only
- * do anything the first time).
+/** Sets all libalpm required paths in one go. Called after the command line
+ * and inital config file parsing. Once this is complete, we can see if any
+ * paths were defined. If a rootdir was defined and nothing else, we want all
+ * of our paths to live under the rootdir that was specified. Safe to call
+ * multiple times (will only do anything the first time).
*/
static void setlibpaths(void)
{
@@ -240,6 +240,8 @@ static void setlibpaths(void)
int ret = 0;
pm_printf(PM_LOG_DEBUG, "setlibpaths() called\n");
+ /* Configure root path first. If it is set and dbpath/logfile were not
+ * set, then set those as well to reside under the root. */
if(config->rootdir) {
char path[PATH_MAX];
ret = alpm_option_set_root(config->rootdir);
@@ -254,10 +256,12 @@ static void setlibpaths(void)
}
if(!config->logfile) {
snprintf(path, PATH_MAX, "%s%s", alpm_option_get_root(), LOGFILE);
- ret = alpm_option_set_dbpath(path);
config->logfile = strdup(path);
}
}
+ /* Set other paths if they were configured. Note that unless rootdir
+ * was left undefined, these two paths (dbpath and logfile) will have
+ * been set locally above, so the if cases below will now trigger. */
if(config->dbpath) {
ret = alpm_option_set_dbpath(config->dbpath);
if(ret != 0) {