]> git.ipfire.org Git - thirdparty/git.git/commitdiff
scalar-delete: do not 'die()' in 'delete_enlistment()'
authorVictoria Dye <vdye@github.com>
Thu, 18 Aug 2022 21:40:49 +0000 (21:40 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Aug 2022 04:35:32 +0000 (21:35 -0700)
Rather than exiting with 'die()' when 'delete_enlistment()' encounters an
error, return an error code with the appropriate message. There's no need
for an abrupt exit with 'die()' in 'delete_enlistment()' because its only
caller ('cmd_delete()') properly cleans up allocated resources and returns
the 'delete_enlistment()' return value as its own exit code.

Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/scalar/scalar.c

index 7be2a938b0ce0ed21b9b51ebe68e9df3ca3e87b6..6de4d5b37219ff9a47e0ab684761e0bf23c9c23c 100644 (file)
@@ -407,7 +407,7 @@ static int delete_enlistment(struct strbuf *enlistment)
 #endif
 
        if (unregister_dir())
-               die(_("failed to unregister repository"));
+               return error(_("failed to unregister repository"));
 
 #ifdef WIN32
        /*
@@ -418,13 +418,16 @@ static int delete_enlistment(struct strbuf *enlistment)
        path_sep = find_last_dir_sep(enlistment->buf + offset);
        strbuf_add(&parent, enlistment->buf,
                   path_sep ? path_sep - enlistment->buf : offset);
-       if (chdir(parent.buf) < 0)
-               die_errno(_("could not switch to '%s'"), parent.buf);
+       if (chdir(parent.buf) < 0) {
+               int res = error_errno(_("could not switch to '%s'"), parent.buf);
+               strbuf_release(&parent);
+               return res;
+       }
        strbuf_release(&parent);
 #endif
 
        if (remove_dir_recursively(enlistment, 0))
-               die(_("failed to delete enlistment directory"));
+               return error(_("failed to delete enlistment directory"));
 
        return 0;
 }