# The following was supposedly scribed by # Eric Wilhelm # on Saturday 21 August 2004 07:38 pm:
>Is there a "vgmp_printf" function? Sounds like you'll need one. Okay, there is gmp_vprintf(), but it isn't going to do you any good. Looking at the minprintf() example in K&R's "The C Programming Language", it sounds like you're basically going to end up doing the same thing unless you can discover the non-portable tricks that everyone keeps talking about. An excerpt of my adaptation: case 's': sv = va_arg(ap, SV *); if(! SvPOK(sv)) croak("not a valid string\n"); I think va_list is absolutely the wrong way to go. I've been messing with it a little and can't get even the SvPOK call above to not segfault. Basically, my understanding is that the Inline_Stack_Vars macros take the place of the va_start and va_args, etc. So, because you can't (portably) build a var-arg list at runtime, you're stuck refactoring or rewriting whatever C code you're trying to use (as in vprintf, etc.) Maybe you'll have to step-through the format and use sprintf on each element, then printf the result. Maybe you should just dynamically write some static code and use Inline::C in that way. --Eric -- "Cleanliness is next to impossible." --Unknown