qulogic/pidgin
Clone
Summary
Browse
Changes
Graph
Merge 5b5516d9a5dbbd6e534eba231284bbd1c4c16f57 to fix package_version.h
mxit-2.x.y
2012-06-13, Hg Conversion
805fad3a91ee
Merge 5b5516d9a5dbbd6e534eba231284bbd1c4c16f57 to fix package_version.h
void
constant
(
sv
)
PREINIT
:
#ifdef
dXSTARG
dXSTARG
;
/* Faster if we have it. */
#else
dTARGET
;
#
endif
STRLEN
len
;
int
type
;
IV
iv
;
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT
:
SV
*
sv
;
const
char
*
s
=
SvPV
(
sv
,
len
);
PPCODE
:
/* Change this to constant(aTHX_ s, len, &iv, &nv);
if you need to return both NVs and IVs */
type
=
constant
(
aTHX_
s
,
len
,
&
iv
);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
switch
(
type
)
{
case
PERL_constant_NOTFOUND
:
sv
=
sv_2mortal
(
newSVpvf
(
"%s is not a valid Purple::DebugLevel macro"
,
s
));
PUSHs
(
sv
);
break
;
case
PERL_constant_NOTDEF
:
sv
=
sv_2mortal
(
newSVpvf
(
"Your vendor has not defined Purple::DebugLevel macro %s, used"
,
s
));
PUSHs
(
sv
);
break
;
case
PERL_constant_ISIV
:
EXTEND
(
SP
,
1
);
PUSHs
(
&
PL_sv_undef
);
PUSHi
(
iv
);
break
;
/* Uncomment this if you need to return NOs
case PERL_constant_ISNO:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHs(&PL_sv_no);
break; */
/* Uncomment this if you need to return NVs
case PERL_constant_ISNV:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHn(nv);
break; */
/* Uncomment this if you need to return PVs
case PERL_constant_ISPV:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHp(pv, strlen(pv));
break; */
/* Uncomment this if you need to return PVNs
case PERL_constant_ISPVN:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHp(pv, iv);
break; */
/* Uncomment this if you need to return SVs
case PERL_constant_ISSV:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHs(sv);
break; */
/* Uncomment this if you need to return UNDEFs
case PERL_constant_ISUNDEF:
break; */
/* Uncomment this if you need to return UVs
case PERL_constant_ISUV:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHu((UV)iv);
break; */
/* Uncomment this if you need to return YESs
case PERL_constant_ISYES:
EXTEND(SP, 1);
PUSHs(&PL_sv_undef);
PUSHs(&PL_sv_yes);
break; */
default
:
sv
=
sv_2mortal
(
newSVpvf
(
"Unexpected return type %d while processing Purple::DebugLevel macro %s, used"
,
type
,
s
));
PUSHs
(
sv
);
}