This promotes _choose_xapian_path from static to extern linkage in order to share between open.cc and database.cc. --- lib/database.cc | 13 ++++--------- lib/notmuch-private.h | 4 ++++ lib/open.cc | 6 +++--- test/T055-path-config.sh | 6 ++++++ 4 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/lib/database.cc b/lib/database.cc index 1d8839a5..ffd42ac4 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -607,11 +607,12 @@ notmuch_database_compact_db (notmuch_database_t *notmuch, notmuch_compact_status_cb_t status_cb, void *closure) { void *local; - char *notmuch_path, *xapian_path, *compact_xapian_path; + const char *xapian_path, *compact_xapian_path; const char* path; notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS; struct stat statbuf; bool keep_backup; + char *message; ret = _notmuch_database_ensure_writable (notmuch); if (ret) @@ -625,15 +626,9 @@ notmuch_database_compact_db (notmuch_database_t *notmuch, if (! local) return NOTMUCH_STATUS_OUT_OF_MEMORY; - if (! (notmuch_path = talloc_asprintf (local, "%s/%s", path, ".notmuch"))) { - ret = NOTMUCH_STATUS_OUT_OF_MEMORY; - goto DONE; - } - - if (! (xapian_path = talloc_asprintf (local, "%s/%s", notmuch_path, "xapian"))) { - ret = NOTMUCH_STATUS_OUT_OF_MEMORY; + ret = _notmuch_choose_xapian_path (local, path, &xapian_path, &message); + if (ret) goto DONE; - } if (! (compact_xapian_path = talloc_asprintf (local, "%s.compact", xapian_path))) { ret = NOTMUCH_STATUS_OUT_OF_MEMORY; diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 731757cc..ecad87a6 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -726,6 +726,10 @@ _notmuch_config_load_defaults (notmuch_database_t * db); void _notmuch_config_cache (notmuch_database_t *db, notmuch_config_key_t key, const char* val); +/* open.cc */ +notmuch_status_t +_notmuch_choose_xapian_path (void *ctx, const char *database_path, const char **xapian_path, char **message); + NOTMUCH_END_DECLS #ifdef __cplusplus diff --git a/lib/open.cc b/lib/open.cc index a577ddca..2311d4a0 100644 --- a/lib/open.cc +++ b/lib/open.cc @@ -250,8 +250,8 @@ _trial_open (const char *xapian_path, char **message_ptr) return NOTMUCH_STATUS_SUCCESS; } -static notmuch_status_t -_choose_xapian_path (void *ctx, const char *database_path, const char **xapian_path, char **message_ptr){ +notmuch_status_t +_notmuch_choose_xapian_path (void *ctx, const char *database_path, const char **xapian_path, char **message_ptr){ notmuch_status_t status; const char *trial_path, *notmuch_path; @@ -474,7 +474,7 @@ notmuch_database_open_with_config (const char *database_path, _set_database_path (notmuch, database_path); - status = _choose_xapian_path (local, database_path, ¬much->xapian_path, &message); + status = _notmuch_choose_xapian_path (local, database_path, ¬much->xapian_path, &message); if (status) goto DONE; diff --git a/test/T055-path-config.sh b/test/T055-path-config.sh index e5036400..7bd9739b 100755 --- a/test/T055-path-config.sh +++ b/test/T055-path-config.sh @@ -116,6 +116,12 @@ for config in traditional split+prefix split XDG XDG+profile; do test_expect_equal_file $gen_msg_filename OUTPUT rm -f $gen_msg_filename + test_begin_subtest "compact+search ($config)" + notmuch search --output=messages '*' | sort > EXPECTED + notmuch compact + notmuch search --output=messages '*' | sort > OUTPUT + test_expect_equal_file EXPECTED OUTPUT + restore_config done -- 2.30.0 _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-le...@notmuchmail.org