diff options
author | John Peacock <jpeacock@rowman.com> | 2003-06-23 17:58:18 -0400 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2003-06-24 04:52:42 +0000 |
commit | c8d69e4a510de0f5933cdb167bdf5c1394fdb4a9 (patch) | |
tree | 61d4c136f8d0bcdae2e45d8d73536afff54fe5df /universal.c | |
parent | d770bc45b9d62f5909fce15cbc1dd3e810cc6649 (diff) | |
download | perl-c8d69e4a510de0f5933cdb167bdf5c1394fdb4a9.tar.gz |
version.pm up to date with CPAN
Message-ID: <3EF7B03A.2060705@rowman.com>
p4raw-id: //depot/perl@19847
Diffstat (limited to 'universal.c')
-rw-r--r-- | universal.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/universal.c b/universal.c index 22be54f128..b4563e41a8 100644 --- a/universal.c +++ b/universal.c @@ -171,6 +171,7 @@ XS(XS_version_numify); XS(XS_version_vcmp); XS(XS_version_boolean); XS(XS_version_noop); +XS(XS_version_is_alpha); XS(XS_utf8_is_utf8); XS(XS_utf8_valid); XS(XS_utf8_encode); @@ -210,6 +211,7 @@ Perl_boot_core_UNIVERSAL(pTHX) newXS("version::boolean", XS_version_boolean, file); newXS("version::(nomethod", XS_version_noop, file); newXS("version::noop", XS_version_noop, file); + newXS("version::is_alpha", XS_version_is_alpha, file); } newXS("utf8::is_utf8", XS_utf8_is_utf8, file); newXS("utf8::valid", XS_utf8_valid, file); @@ -528,6 +530,34 @@ XS(XS_version_noop) XSRETURN_EMPTY; } +XS(XS_version_is_alpha) +{ + dXSARGS; + if (items != 1) + Perl_croak(aTHX_ "Usage: version::is_alpha(lobj)"); + SP -= items; + { + SV *lobj; + + if (sv_derived_from(ST(0), "version")) { + SV *tmp = SvRV(ST(0)); + lobj = tmp; + } + else + Perl_croak(aTHX_ "lobj is not of type version"); +{ + I32 len = av_len((AV *)lobj); + I32 digit = SvIVX(*av_fetch((AV *)lobj, len, 0)); + if ( digit < 0 ) + XSRETURN_YES; + else + XSRETURN_NO; +} + PUTBACK; + return; + } +} + XS(XS_utf8_is_utf8) { dXSARGS; |