tree 149a7009428cb6bdb50ad0256db84761643b765a
parent a34e5a5a207f9bbedded7f8a81a29dc8f6cf5404
author Rubio R. C. Terra <rubio.terra@gmail.com> 1465303355 -0300
committer Rubio Ribeiro Canario Terra <rubio.terra@aker.com.br> 1465304486 -0300

Added custom fake support for variadic functions

Custom fake support for variadic functions was limited. The variable
parameters were not passed to the custom fake.

Now a va_list is passed to the custom fake, so it is possible to access
all the arguments. For instance, a custom fake for fprintf() could call
the real fprintf() like this:

int fprintf_custom(FILE *stream, const char *format, va_list ap) {
  if (fprintf0_fake.return_val < 0) // should we fail?
    return fprintf0_fake.return_val;
  return vfprintf(stream, format, ap);
}
