aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/database.cc14
-rw-r--r--notmuch-compact.c10
2 files changed, 11 insertions, 13 deletions
diff --git a/lib/database.cc b/lib/database.cc
index 5a017034..a021bf17 100644
--- a/lib/database.cc
+++ b/lib/database.cc
@@ -868,7 +868,6 @@ notmuch_database_compact (const char* path,
{
void *local;
char *notmuch_path, *xapian_path, *compact_xapian_path;
- char *old_xapian_path = NULL;
notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS;
notmuch_database_t *notmuch = NULL;
struct stat statbuf;
@@ -898,13 +897,8 @@ notmuch_database_compact (const char* path,
}
if (backup_path != NULL) {
- if (! (old_xapian_path = talloc_asprintf (local, "%s/xapian.old", backup_path))) {
- ret = NOTMUCH_STATUS_OUT_OF_MEMORY;
- goto DONE;
- }
-
- if (stat(old_xapian_path, &statbuf) != -1) {
- fprintf (stderr, "Backup path already exists: %s\n", old_xapian_path);
+ if (stat(backup_path, &statbuf) != -1) {
+ fprintf (stderr, "Backup path already exists: %s\n", backup_path);
ret = NOTMUCH_STATUS_FILE_ERROR;
goto DONE;
}
@@ -928,8 +922,8 @@ notmuch_database_compact (const char* path,
goto DONE;
}
- if (old_xapian_path != NULL) {
- if (rename(xapian_path, old_xapian_path)) {
+ if (backup_path) {
+ if (rename(xapian_path, backup_path)) {
fprintf (stderr, "Error moving old database out of the way\n");
ret = NOTMUCH_STATUS_FILE_ERROR;
goto DONE;
diff --git a/notmuch-compact.c b/notmuch-compact.c
index ee7afcf6..55dc7316 100644
--- a/notmuch-compact.c
+++ b/notmuch-compact.c
@@ -32,9 +32,13 @@ notmuch_compact_command (notmuch_config_t *config,
unused (char *argv[]))
{
const char *path = notmuch_config_get_database_path (config);
- const char *backup_path = path;
+ const char *backup_path;
notmuch_status_t ret;
+ backup_path = talloc_asprintf (config, "%s/xapian.old", path);
+ if (! backup_path)
+ return 1;
+
printf ("Compacting database...\n");
ret = notmuch_database_compact (path, backup_path, status_update_cb, NULL);
if (ret) {
@@ -42,11 +46,11 @@ notmuch_compact_command (notmuch_config_t *config,
} else {
printf ("\n");
printf ("\n");
- printf ("The old database has been moved to %s/xapian.old", backup_path);
+ printf ("The old database has been moved to %s", backup_path);
printf ("\n");
printf ("To delete run,\n");
printf ("\n");
- printf (" rm -R %s/xapian.old\n", backup_path);
+ printf (" rm -R %s\n", backup_path);
printf ("\n");
}