diff options
-rw-r--r-- | lib/database.cc | 14 | ||||
-rw-r--r-- | notmuch-compact.c | 10 |
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"); } |