Merge branch 'ab/usage-die-message'
Code clean-up to hide vreportf() from public API. * ab/usage-die-message: config API: use get_error_routine(), not vreportf() usage.c + gc: add and use a die_message_errno() gc: return from cmd_gc(), don't call exit() usage.c API users: use die_message() for error() + exit 128 usage.c API users: use die_message() for "fatal :" + exit 128 usage.c: add a die_message() routine
This commit is contained in:
@ -340,15 +340,6 @@ static void child_close_pair(int fd[2])
|
||||
child_close(fd[1]);
|
||||
}
|
||||
|
||||
/*
|
||||
* parent will make it look like the child spewed a fatal error and died
|
||||
* this is needed to prevent changes to t0061.
|
||||
*/
|
||||
static void fake_fatal(const char *err, va_list params)
|
||||
{
|
||||
vreportf("fatal: ", err, params);
|
||||
}
|
||||
|
||||
static void child_error_fn(const char *err, va_list params)
|
||||
{
|
||||
const char msg[] = "error() should not be called in child\n";
|
||||
@ -372,9 +363,10 @@ static void NORETURN child_die_fn(const char *err, va_list params)
|
||||
static void child_err_spew(struct child_process *cmd, struct child_err *cerr)
|
||||
{
|
||||
static void (*old_errfn)(const char *err, va_list params);
|
||||
report_fn die_message_routine = get_die_message_routine();
|
||||
|
||||
old_errfn = get_error_routine();
|
||||
set_error_routine(fake_fatal);
|
||||
set_error_routine(die_message_routine);
|
||||
errno = cerr->syserr;
|
||||
|
||||
switch (cerr->err) {
|
||||
@ -1072,7 +1064,9 @@ static void *run_thread(void *data)
|
||||
|
||||
static NORETURN void die_async(const char *err, va_list params)
|
||||
{
|
||||
vreportf("fatal: ", err, params);
|
||||
report_fn die_message_fn = get_die_message_routine();
|
||||
|
||||
die_message_fn(err, params);
|
||||
|
||||
if (in_async()) {
|
||||
struct async *async = pthread_getspecific(async_key);
|
||||
|
Reference in New Issue
Block a user