]> git.notmuchmail.org Git - notmuch/commitdiff
notmuch: Database paths without a leading / are relative to $HOME
authorDavid Edmondson <dme@dme.org>
Sat, 8 Sep 2018 11:49:40 +0000 (12:49 +0100)
committerDavid Bremner <david@tethera.net>
Sat, 8 Sep 2018 23:19:24 +0000 (20:19 -0300)
If the database path specified in the configuration file does *not*
start with a /, presume that it is relative to $HOME and modify the
path used to open the database accordingly.

notmuch-config.c

index e1b166094ef317f137342356028f4317fe7f532d..bf77cc9d43831460c63625a8fcef47a9f6464612 100644 (file)
@@ -660,7 +660,19 @@ _config_set_list (notmuch_config_t *config,
 const char *
 notmuch_config_get_database_path (notmuch_config_t *config)
 {
-    return _config_get (config, &config->database_path, "database", "path");
+    char *db_path = (char *)_config_get (config, &config->database_path, "database", "path");
+
+    if (db_path && *db_path != '/') {
+       /* If the path in the configuration file begins with any
+        * character other than /, presume that it is relative to
+        * $HOME and update as appropriate.
+        */
+       char *abs_path = talloc_asprintf (config, "%s/%s", getenv ("HOME"), db_path);
+       talloc_free (db_path);
+       db_path = config->database_path = abs_path;
+    }
+
+    return db_path;
 }
 
 void