mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
lib: save path of xapian database in notmuch struct.
This will allow re-opening in a different mode (read/write vs. read-only) with current Xapian API. It will also prove useful when updating the compact functions to support more flexible database location.
This commit is contained in:
parent
1121299905
commit
f0717aa380
2 changed files with 14 additions and 9 deletions
|
@ -189,8 +189,12 @@ operator& (notmuch_field_flag_t a, notmuch_field_flag_t b)
|
|||
struct _notmuch_database {
|
||||
bool exception_reported;
|
||||
|
||||
/* Path to database parent directory and or/mail root */
|
||||
char *path;
|
||||
|
||||
/* Path to actual database */
|
||||
const char *xapian_path;
|
||||
|
||||
int atomic_nesting;
|
||||
/* true if changes have been made in this atomic section */
|
||||
bool atomic_dirty;
|
||||
|
|
19
lib/open.cc
19
lib/open.cc
|
@ -199,7 +199,7 @@ notmuch_database_open_with_config (const char *database_path,
|
|||
notmuch_status_t status = NOTMUCH_STATUS_SUCCESS;
|
||||
void *local = talloc_new (NULL);
|
||||
notmuch_database_t *notmuch = NULL;
|
||||
char *notmuch_path, *xapian_path, *incompat_features;
|
||||
char *notmuch_path, *incompat_features;
|
||||
char *message = NULL;
|
||||
struct stat st;
|
||||
int err;
|
||||
|
@ -225,12 +225,6 @@ notmuch_database_open_with_config (const char *database_path,
|
|||
goto DONE;
|
||||
}
|
||||
|
||||
if (! (xapian_path = talloc_asprintf (local, "%s/%s", notmuch_path, "xapian"))) {
|
||||
message = strdup ("Out of memory\n");
|
||||
status = NOTMUCH_STATUS_OUT_OF_MEMORY;
|
||||
goto DONE;
|
||||
}
|
||||
|
||||
/* Initialize the GLib type system and threads */
|
||||
#if ! GLIB_CHECK_VERSION (2, 35, 1)
|
||||
g_type_init ();
|
||||
|
@ -252,16 +246,23 @@ notmuch_database_open_with_config (const char *database_path,
|
|||
notmuch->writable_xapian_db = NULL;
|
||||
notmuch->atomic_nesting = 0;
|
||||
notmuch->view = 1;
|
||||
|
||||
if (! (notmuch->xapian_path = talloc_asprintf (notmuch, "%s/%s", notmuch_path, "xapian"))) {
|
||||
message = strdup ("Out of memory\n");
|
||||
status = NOTMUCH_STATUS_OUT_OF_MEMORY;
|
||||
goto DONE;
|
||||
}
|
||||
|
||||
try {
|
||||
std::string last_thread_id;
|
||||
std::string last_mod;
|
||||
|
||||
if (mode == NOTMUCH_DATABASE_MODE_READ_WRITE) {
|
||||
notmuch->writable_xapian_db = new Xapian::WritableDatabase (xapian_path,
|
||||
notmuch->writable_xapian_db = new Xapian::WritableDatabase (notmuch->xapian_path,
|
||||
DB_ACTION);
|
||||
notmuch->xapian_db = notmuch->writable_xapian_db;
|
||||
} else {
|
||||
notmuch->xapian_db = new Xapian::Database (xapian_path);
|
||||
notmuch->xapian_db = new Xapian::Database (notmuch->xapian_path);
|
||||
}
|
||||
|
||||
/* Check version. As of database version 3, we represent
|
||||
|
|
Loading…
Reference in a new issue