[PATCH v3 4/8] scalar-delete: do not 'die()' in 'delete_enlistment()'
- From
Victoria Dye via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Aug 18, 2022, 21:40 UTC
- Message-ID
- <aced836aaa39c4c619d03510ba2343527e3a24af.1660858853.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1324.v3.git.1660858853.gitgitgadget@gmail.com>
From: Victoria Dye <vdye@github.com>
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> --- contrib/scalar/scalar.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/contrib/scalar/scalar.c b/contrib/scalar/scalar.c index 7be2a938b0c..6de4d5b3721 100644 --- a/contrib/scalar/scalar.c +++ b/contrib/scalar/scalar.c @@ -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; }
-- gitgitgadget