I have a 3rd party function with signature:
int secretfoo(int numargs, ...);
I can call it directly, but what I really want is wrap it with my function that adds some extra arguments to it.
Assume simple case of integers: I want calls secretfoo(2, 10, 20)
to be translated as this: when I see argument 10 to duplicate it and make the call: secretfoo(3, 10, 10, 20)
. I want to do it in wrapper:
int foowrapper(int numargs, ...);
This wrapper analyze argumetns and call secretfoo
as described above.
Can this be done in portably with va_list
/ va_arg
etc.? Any other way?