scaffold: first iteration of die()
Dependencies
Change contents
- edit in scaffold.h at line 8
/* The die() declaration is stolen from git-compat-util.h */void die(const char *err, ...) __attribute__((format(printf, 1, 2))); - edit in scaffold.c at line 3
#include <stdarg.h>#include <string.h>#include <ctype.h> - replacement in scaffold.c at line 8
/*** Expand to support varargs like a regular printf*/static voiddie_routine(const char *err, va_list params){char msg[4096];char *p, *pend;pend = msg + sizeof(msg);memcpy(msg, "fatal: ", 7); /* FIXME: make configurable */p = msg + 7;if (vsnprintf(p, (size_t)(pend - p), err, params) < 0)*p = '\0'; /* vsnprintf() failed, clip at prefix */for (; p != pend - 1 && *p; p++)if (iscntrl(*p) && *p != '\t' && *p != '\n')*p = '?';*(p++) = '\n';*(p++) = '\0';fflush(stderr);fprintf(stderr, msg); /* git has write_in_full(2, msg, p - msg) */} - replacement in scaffold.c at line 33
die(const char *msg)die(const char *err, ...) - replacement in scaffold.c at line 35
fprintf(stderr, msg);exit(57);va_list params;va_start(params, err);die_routine(err, params);va_end(params);exit(128);