/* universal.c
*
* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- * 2005, 2006, by Larry Wall and others
+ * 2005, 2006, 2007 by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
if (ckWARN(WARN_MISC))
Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
"Can't locate package %"SVf" for @%s::ISA",
- (void*)sv, hvname);
+ SVfARG(sv), hvname);
continue;
}
if (isa_lookup(basestash, name, name_stash, len, level + 1)) {
if ( vcmp( req, sv ) > 0 )
Perl_croak(aTHX_ "%s version %"SVf" (%"SVf") required--"
"this is only version %"SVf" (%"SVf")", HvNAME_get(pkg),
- (void*)vnumify(req),
- (void*)vnormal(req),
- (void*)vnumify(sv),
- (void*)vnormal(sv));
+ SVfARG(vnumify(req)),
+ SVfARG(vnormal(req)),
+ SVfARG(vnumify(sv)),
+ SVfARG(vnormal(sv)));
}
if ( SvOK(sv) && sv_derived_from(sv, "version") ) {
#ifdef USE_LOCALE_NUMERIC
char *loc = setlocale(LC_NUMERIC, "C");
#endif
- const STRLEN len = my_snprintf(tbuf, sizeof(tbuf), "%.9"NVgf, SvNVX(ver));
+ STRLEN len = my_snprintf(tbuf, sizeof(tbuf), "%.9"NVgf, SvNVX(ver));
#ifdef USE_LOCALE_NUMERIC
setlocale(LC_NUMERIC, loc);
#endif
+ while (tbuf[len-1] == '0' && len > 0) len--;
version = savepvn(tbuf, len);
}
else
else {
if (namok && argok)
XPUSHs(Perl_newSVpvf(aTHX_ "%"SVf"(%"SVf")",
- (void*)*namsvp,
- (void*)*argsvp));
+ SVfARG(*namsvp),
+ SVfARG(*argsvp)));
else if (namok)
XPUSHs(Perl_newSVpvf(aTHX_ "%"SVf,
- (void*)*namsvp));
+ SVfARG(*namsvp)));
else
XPUSHs(&PL_sv_undef);
nitem++;