[PATCH 10/28] lib/open: canonicalize relative path read from config file

Subject: [PATCH 10/28] lib/open: canonicalize relative path read from config file

Date: Tue, 6 Apr 2021 22:55:12 -0300

To: notmuch@notmuchmail.org

Cc: David Bremner

From: David Bremner


This matches functionality in the the CLI function
notmuch_config_get_database_path, which was previously used in the CLI
code for all calls to open a database.
---
 lib/open.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/open.cc b/lib/open.cc
index 6c3ef46f..d0493950 100644
--- a/lib/open.cc
+++ b/lib/open.cc
@@ -196,11 +196,13 @@ _choose_database_path (void *ctx,
     if (! *database_path && key_file) {
 	char *path = g_key_file_get_value (key_file, "database", "path", NULL);
 	if (path) {
-	    *database_path = talloc_strdup (ctx, path);
+	    if (path[0] == '/')
+		*database_path = talloc_strdup (ctx, path);
+	    else
+		*database_path = talloc_asprintf (ctx, "%s/%s", getenv ("HOME"), path);
 	    g_free (path);
 	}
     }
-
     if (! *database_path) {
 	*database_path = _xdg_dir (ctx, "XDG_DATA_HOME", ".local/share", profile);
 	*split = true;
-- 
2.30.2
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: