The extra talloc struct "local" was left over from before the notmuch
struct was allocated earlier. Having the notmuch struct available in
this function will allow more flexibility to track the configuration
variations (e.g. split vs. non-split).
}
static notmuch_status_t
}
static notmuch_status_t
-_choose_database_path (void *ctx,
+_choose_database_path (notmuch_database_t *notmuch,
const char *profile,
GKeyFile *key_file,
const char **database_path,
const char *profile,
GKeyFile *key_file,
const char **database_path,
char *path = g_key_file_get_string (key_file, "database", "path", NULL);
if (path) {
if (path[0] == '/')
char *path = g_key_file_get_string (key_file, "database", "path", NULL);
if (path) {
if (path[0] == '/')
- *database_path = talloc_strdup (ctx, path);
+ *database_path = talloc_strdup (notmuch, path);
- *database_path = talloc_asprintf (ctx, "%s/%s", getenv ("HOME"), path);
+ *database_path = talloc_asprintf (notmuch, "%s/%s", getenv ("HOME"), path);
g_free (path);
}
}
if (! *database_path) {
notmuch_status_t status;
g_free (path);
}
}
if (! *database_path) {
notmuch_status_t status;
- *database_path = _xdg_dir (ctx, "XDG_DATA_HOME", ".local/share", profile);
+ *database_path = _xdg_dir (notmuch, "XDG_DATA_HOME", ".local/share", profile);
status = _db_dir_exists (*database_path, message);
if (status) {
*database_path = NULL;
status = _db_dir_exists (*database_path, message);
if (status) {
*database_path = NULL;
if (! *database_path) {
notmuch_status_t status;
if (! *database_path) {
notmuch_status_t status;
- *database_path = talloc_asprintf (ctx, "%s/mail", getenv ("HOME"));
+ *database_path = talloc_asprintf (notmuch, "%s/mail", getenv ("HOME"));
status = _db_dir_exists (*database_path, message);
if (status) {
*database_path = NULL;
status = _db_dir_exists (*database_path, message);
if (status) {
*database_path = NULL;
char **status_string)
{
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
char **status_string)
{
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
- void *local = talloc_new (NULL);
notmuch_database_t *notmuch = NULL;
char *message = NULL;
GKeyFile *key_file = NULL;
notmuch_database_t *notmuch = NULL;
char *message = NULL;
GKeyFile *key_file = NULL;
- if ((status = _choose_database_path (local, profile, key_file,
+ if ((status = _choose_database_path (notmuch, profile, key_file,
&database_path, &split,
&message)))
goto DONE;
&database_path, &split,
&message)))
goto DONE;
status = _finish_open (notmuch, profile, mode, key_file, &message);
DONE:
status = _finish_open (notmuch, profile, mode, key_file, &message);
DONE:
if (key_file)
g_key_file_free (key_file);
if (key_file)
g_key_file_free (key_file);
const char *notmuch_path = NULL;
char *message = NULL;
GKeyFile *key_file = NULL;
const char *notmuch_path = NULL;
char *message = NULL;
GKeyFile *key_file = NULL;
- void *local = talloc_new (NULL);
int err;
bool split = false;
int err;
bool split = false;
- if ((status = _choose_database_path (local, profile, key_file,
+ if ((status = _choose_database_path (notmuch, profile, key_file,
&database_path, &split, &message)))
goto DONE;
&database_path, &split, &message)))
goto DONE;
if (split) {
notmuch_path = database_path;
} else {
if (split) {
notmuch_path = database_path;
} else {
- if (! (notmuch_path = talloc_asprintf (local, "%s/%s", database_path, ".notmuch"))) {
+ if (! (notmuch_path = talloc_asprintf (notmuch, "%s/%s", database_path, ".notmuch"))) {
status = NOTMUCH_STATUS_OUT_OF_MEMORY;
goto DONE;
}
status = NOTMUCH_STATUS_OUT_OF_MEMORY;
goto DONE;
}
if (key_file)
g_key_file_free (key_file);
if (key_file)
g_key_file_free (key_file);
char **status_string)
{
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS, warning = NOTMUCH_STATUS_SUCCESS;
char **status_string)
{
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS, warning = NOTMUCH_STATUS_SUCCESS;
- void *local = talloc_new (NULL);
notmuch_database_t *notmuch = NULL;
char *message = NULL;
GKeyFile *key_file = NULL;
notmuch_database_t *notmuch = NULL;
char *message = NULL;
GKeyFile *key_file = NULL;
- status = _choose_database_path (local, profile, key_file,
+ status = _choose_database_path (notmuch, profile, key_file,
&database_path, &split, &message);
switch (status) {
case NOTMUCH_STATUS_NO_DATABASE:
&database_path, &split, &message);
switch (status) {
case NOTMUCH_STATUS_NO_DATABASE:
if (status_string)
*status_string = message;
if (status_string)
*status_string = message;