Blame parts/inc/sprintf

Packit 7d6a7d
################################################################################
Packit 7d6a7d
##
Packit 7d6a7d
##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
Packit 7d6a7d
##  Version 2.x, Copyright (C) 2001, Paul Marquess.
Packit 7d6a7d
##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
Packit 7d6a7d
##
Packit 7d6a7d
##  This program is free software; you can redistribute it and/or
Packit 7d6a7d
##  modify it under the same terms as Perl itself.
Packit 7d6a7d
##
Packit 7d6a7d
################################################################################
Packit 7d6a7d
Packit 7d6a7d
=provides
Packit 7d6a7d
Packit 7d6a7d
my_sprintf
Packit 7d6a7d
Packit 7d6a7d
=implementation
Packit 7d6a7d
Packit 7d6a7d
#if !defined(my_sprintf)
Packit 7d6a7d
#if { NEED my_sprintf }
Packit 7d6a7d
Packit 7d6a7d
int
Packit 7d6a7d
my_sprintf(char *buffer, const char* pat, ...)
Packit 7d6a7d
{
Packit 7d6a7d
    va_list args;
Packit 7d6a7d
    va_start(args, pat);
Packit 7d6a7d
    vsprintf(buffer, pat, args);
Packit 7d6a7d
    va_end(args);
Packit 7d6a7d
    return strlen(buffer);
Packit 7d6a7d
}
Packit 7d6a7d
Packit 7d6a7d
#endif
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
=xsinit
Packit 7d6a7d
Packit 7d6a7d
#define NEED_my_sprintf
Packit 7d6a7d
Packit 7d6a7d
=xsubs
Packit 7d6a7d
Packit 7d6a7d
void
Packit 7d6a7d
my_sprintf()
Packit 7d6a7d
        PREINIT:
Packit 7d6a7d
                char buf[128];
Packit 7d6a7d
                int len;
Packit 7d6a7d
        PPCODE:
Packit 7d6a7d
                len = my_sprintf(buf, "foo%s%d", "bar", 42);
Packit 7d6a7d
                mXPUSHi(len);
Packit 7d6a7d
                mXPUSHs(newSVpv(buf, 0));
Packit 7d6a7d
                XSRETURN(2);
Packit 7d6a7d
Packit 7d6a7d
=tests plan => 2
Packit 7d6a7d
Packit 7d6a7d
my($l, $s) = Devel::PPPort::my_sprintf();
Packit 7d6a7d
ok($l, 8);
Packit 7d6a7d
ok($s, "foobar42");