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); > +} > + No, this approach is much more elegant than what I posted, so no need to credit me, at least. ;) I do agree with Johannes, though. Style-wise, it reads much better as: va_start(params, err); vsnprintf(msg, sizeof(msg), err, params); va_end(params); die("%s: %s", msg, strerror(errno)); since you can more easily see that params isn't leaked (and that die, which doesn't return, is the _last_ thing called). -Peff -- 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