1 ################################################################################
3 ## Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
4 ## Version 2.x, Copyright (C) 2001, Paul Marquess.
5 ## Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
7 ## This program is free software; you can redistribute it and/or
8 ## modify it under the same terms as Perl itself.
10 ################################################################################
18 #if !defined(my_snprintf)
19 #if { NEED my_snprintf }
22 my_snprintf(char *buffer, const Size_t len, const char *format, ...)
29 retval = vsnprintf(buffer, len, format, ap);
31 retval = vsprintf(buffer, format, ap);
34 if (retval < 0 || (len > 0 && (Size_t)retval >= len))
35 Perl_croak(aTHX_ "panic: my_snprintf buffer overflow");
44 #define NEED_my_snprintf
54 len = my_snprintf(buf, sizeof buf, "foo%s%d", "bar", 42);
56 mXPUSHs(newSVpv(buf, 0));
61 my($l, $s) = Devel::PPPort::my_snprintf();