diff --git a/src/mu-index.c b/src/mu-index.c index cbe81a8b..907372a4 100644 --- a/src/mu-index.c +++ b/src/mu-index.c @@ -32,33 +32,36 @@ #include "mu-index.h" #include "mu-store-xapian.h" +#define MU_XAPIAN_DIR_NAME "xapian" struct _MuIndex { MuStoreXapian *_xapian; }; + MuIndex* -mu_index_new (const char *xpath) +mu_index_new (const char *muhome) { MuIndex *index; + char *xpath; - g_return_val_if_fail (xpath, NULL); - - do { - index = g_new0 (MuIndex, 1); - index->_xapian = mu_store_xapian_new (xpath); - if (!index->_xapian) { - g_warning ("%s: failed to get xapian store (%s)", - __FUNCTION__, xpath); - break; - } - return index; - - } while (0); + g_return_val_if_fail (muhome, NULL); - mu_index_destroy (index); - return NULL; + index = g_new0 (MuIndex, 1); + xpath = g_strdup_printf ("%s%c%s", muhome, + G_DIR_SEPARATOR, MU_XAPIAN_DIR_NAME); + index->_xapian = mu_store_xapian_new (xpath); + g_free (xpath); + + if (!index->_xapian) { + g_warning ("%s: failed to open xapian store (%s)", + __FUNCTION__, muhome); + g_free (index); + return NULL; + } + + return index; } @@ -187,12 +190,6 @@ static gboolean check_path (const char* path) { g_return_val_if_fail (path, FALSE); - - if (!g_path_is_absolute (path)) { - g_warning ("%s: path is not absolute '%s'", - __FUNCTION__, path); - return FALSE; - } if (access (path, R_OK) != 0) { g_warning ("%s: cannot open '%s': %s", diff --git a/src/mu-index.h b/src/mu-index.h index f9dbe4fe..13f80877 100644 --- a/src/mu-index.h +++ b/src/mu-index.h @@ -43,11 +43,12 @@ typedef struct _MuIndexStats MuIndexStats; * make sure you haved called g_type_init, and mu_msg_init somewhere * in your code. * - * @param xpath path to the xapian db to store the results + * @param xpath path to the 'homedir'; the xapian directory will be + * this homedir/xapian * * @return a new MuIndex instance, or NULL in case of error */ -MuIndex* mu_index_new (const char* xpath); +MuIndex* mu_index_new (const char* muhome); /** @@ -142,12 +143,4 @@ MuResult mu_index_cleanup (MuIndex *index, MuIndexStats *result, MuIndexMsgCallback msg_cb, MuIndexDirCallback dir_cb, void *user_data); - -/** - * get the option group for 'index' - * - * @return an option group - */ -GOptionGroup* mu_index_option_group (void); - #endif /*__MU_INDEX_H__*/