aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/database.cc
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-11-11 17:01:55 -0800
committerGravatar Carl Worth <cworth@cworth.org>2009-11-11 17:01:55 -0800
commit305e76bc0ab2e7f3bd1ff2580e8d5dac8b4a7164 (patch)
tree96760f7ac15b036af80f28f1ba53690cb7741410 /lib/database.cc
parent69611e66a589881bf4de9786d3f6df991c604f3d (diff)
notmuch: Add a configuration system.
This will allow for things like the database path to be specified without any cheesy NOTMUCH_BASE environment variable. It also will allow "notmuch reply" to recognize the user's email address when constructing a reply in order to do the right thing, (that is, to use the user's address to which mail was sent as From:, and not to reply to the user's own addresses). With this change, the "notmuch setup" command is now strictly for changing the configuration of notmuch. It no longer creates the database, but instead instructs the user to call "notmuch new" to do that.
Diffstat (limited to 'lib/database.cc')
-rw-r--r--lib/database.cc31
1 files changed, 4 insertions, 27 deletions
diff --git a/lib/database.cc b/lib/database.cc
index 4524016b..6b7ad49d 100644
--- a/lib/database.cc
+++ b/lib/database.cc
@@ -391,22 +391,6 @@ parse_references (void *ctx,
}
}
-char *
-notmuch_database_default_path (void)
-{
- char *path;
-
- if (getenv ("NOTMUCH_BASE"))
- return strdup (getenv ("NOTMUCH_BASE"));
-
- if (asprintf (&path, "%s/mail", getenv ("HOME")) == -1) {
- fprintf (stderr, "Out of memory.\n");
- return xstrdup("");
- }
-
- return path;
-}
-
notmuch_database_t *
notmuch_database_create (const char *path)
{
@@ -414,10 +398,11 @@ notmuch_database_create (const char *path)
char *notmuch_path = NULL;
struct stat st;
int err;
- char *local_path = NULL;
- if (path == NULL)
- path = local_path = notmuch_database_default_path ();
+ if (path == NULL) {
+ fprintf (stderr, "Error: Cannot create a database for a NULL path.\n");
+ goto DONE;
+ }
err = stat (path, &st);
if (err) {
@@ -447,8 +432,6 @@ notmuch_database_create (const char *path)
DONE:
if (notmuch_path)
talloc_free (notmuch_path);
- if (local_path)
- free (local_path);
return notmuch;
}
@@ -460,12 +443,8 @@ notmuch_database_open (const char *path)
char *notmuch_path = NULL, *xapian_path = NULL;
struct stat st;
int err;
- char *local_path = NULL;
unsigned int i;
- if (path == NULL)
- path = local_path = notmuch_database_default_path ();
-
if (asprintf (&notmuch_path, "%s/%s", path, ".notmuch") == -1) {
notmuch_path = NULL;
fprintf (stderr, "Out of memory\n");
@@ -520,8 +499,6 @@ notmuch_database_open (const char *path)
}
DONE:
- if (local_path)
- free (local_path);
if (notmuch_path)
free (notmuch_path);
if (xapian_path)