Implement varargs macros, courtesy ochafik