2009/6/7 Jeff King <peff@xxxxxxxx>: > On Sat, Jun 06, 2009 at 04:44:51PM +0200, Thomas Rast wrote: > >> Code by Jeff King and Alexander Potashev, name by Johannes Sixt. >> [...] >> +void die_errno(const char *err, ...) >> +{ >> + va_list params; >> + char msg[1024]; >> + >> + va_start(params, err); >> + >> + vsnprintf(msg, sizeof(msg), err, params); >> + die("%s: %s", msg, strerror(errno)); >> + >> + va_end(params); >> +} >> + This breaks theoretical usage of custom format string in custom die routines: 1. A custom die routine might not support %s. 2. If the die routine adds a custom format specifier, vsnprintf will fail. But I'm not sure that passing a format string and a va_list to die_routine/error_routine/warn_routine is really necessary. If there is no much external code depending on them, I would convert them to the style of usage_routine: void (*usage_routine)(const char *err) CC'ing Petr Baudis <pasky@xxxxxxx>, see commit 39a3f5ea > > No, this approach is much more elegant than what I posted, so no need to > credit me, at least. ;) It was your idea of using 1024-character buffer here ;) Alexander -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html