]> git.notmuchmail.org Git - notmuch/commitdiff
lib: use the compaction backup path provided by the caller
authorJani Nikula <jani@nikula.org>
Sun, 3 Nov 2013 12:24:47 +0000 (14:24 +0200)
committerDavid Bremner <david@tethera.net>
Thu, 7 Nov 2013 10:51:16 +0000 (06:51 -0400)
The extra path component added by the lib is a magic value that the
caller just has to know. This is demonstrated by the current code,
which indeed has "xapian.old" both sides of the interface. Use the
backup path provided by the lib caller verbatim, without adding
anything to it.

lib/database.cc
notmuch-compact.c

index 5a017034c2af51ed824e839e92cdb20329b94f4e..a021bf17253cd9ceecfa02a3b4c28d5f5583355d 100644 (file)
@@ -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;
index ee7afcf6b9a0c32be4e01ff1881c572bc07bf5fe..55dc7316ccb810d7a90542f45adab60347e58c8b 100644 (file)
@@ -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");
     }