summaryrefslogtreecommitdiff
path: root/universal.c
diff options
context:
space:
mode:
authorJohn Peacock <jpeacock@rowman.com>2003-06-23 17:58:18 -0400
committerJarkko Hietaniemi <jhi@iki.fi>2003-06-24 04:52:42 +0000
commitc8d69e4a510de0f5933cdb167bdf5c1394fdb4a9 (patch)
tree61d4c136f8d0bcdae2e45d8d73536afff54fe5df /universal.c
parentd770bc45b9d62f5909fce15cbc1dd3e810cc6649 (diff)
downloadperl-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.c30
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;