diff options
| author | Patrick Steinhardt <ps@pks.im> | 2025-06-03 16:01:18 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-06-03 08:30:51 -0700 |
| commit | 697202b0b1c7c02208c620f96c608e0817d079dd (patch) | |
| tree | a3b7a86fcb6aa48d45876abfd600659361aa0b44 /usage.c | |
| parent | builtin/maintenance: fix locking race with refs and reflogs tasks (diff) | |
| download | git-697202b0b1c7c02208c620f96c608e0817d079dd.tar.gz git-697202b0b1c7c02208c620f96c608e0817d079dd.zip | |
usage: allow dying without writing an error message
Sometimes code wants to die in a situation where it already has written
an error message. To use the same error code as `die()` we have to use
`exit(128)`, which is easy to get wrong and leaves magic numbers all
over our codebase.
Teach `die_message_builtin()` to not print any error when passed a
`NULL` pointer as error string. Like this, such users can now call
`die(NULL)` to achieve the same result without any hardcoded error
codes.
Adapt a couple of builtins to use this new pattern to demonstrate that
there is a need for such a helper.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'usage.c')
| -rw-r--r-- | usage.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -67,6 +67,8 @@ static NORETURN void usage_builtin(const char *err, va_list params) static void die_message_builtin(const char *err, va_list params) { + if (!err) + return; trace2_cmd_error_va(err, params); vreportf(_("fatal: "), err, params); } |
