ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-Scalar/Scalar.xs
(Generate patch)

Comparing Convert-Scalar/Scalar.xs (file contents):
Revision 1.5 by root, Wed Feb 12 20:42:10 2003 UTC vs.
Revision 1.6 by root, Fri Nov 26 21:05:13 2004 UTC

3#include "XSUB.h" 3#include "XSUB.h"
4 4
5#if PERL_VERSION < 7 5#if PERL_VERSION < 7
6# define is_utf8_string(s,l) (croak ("utf8_valid requires perl 5.7 or higher"), 0) 6# define is_utf8_string(s,l) (croak ("utf8_valid requires perl 5.7 or higher"), 0)
7#endif 7#endif
8
9#define RETCOPY(sv) \
10 if (GIMME_V != G_VOID) \
11 { \
12 dXSTARG; \
13 sv_setsv (TARG, (sv)); \
14 EXTEND (SP, 1); \
15 PUSHs (TARG); \
16 }
8 17
9MODULE = Convert::Scalar PACKAGE = Convert::Scalar 18MODULE = Convert::Scalar PACKAGE = Convert::Scalar
10 19
11int 20int
12utf8(scalar,mode=0) 21utf8(scalar,mode=0)
36 if (SvREADONLY (scalar)) 45 if (SvREADONLY (scalar))
37 croak ("Convert::Scalar::utf8_on called on read only scalar"); 46 croak ("Convert::Scalar::utf8_on called on read only scalar");
38 47
39 SvGETMAGIC (scalar); 48 SvGETMAGIC (scalar);
40 SvUTF8_on (scalar); 49 SvUTF8_on (scalar);
41 if (GIMME_V != G_VOID) 50 RETCOPY (scalar);
42 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
43 51
44void 52void
45utf8_off(scalar) 53utf8_off(scalar)
46 SV * scalar 54 SV * scalar
47 PROTOTYPE: $ 55 PROTOTYPE: $
49 if (SvREADONLY (scalar)) 57 if (SvREADONLY (scalar))
50 croak ("Convert::Scalar::utf8_off called on read only scalar"); 58 croak ("Convert::Scalar::utf8_off called on read only scalar");
51 59
52 SvGETMAGIC (scalar); 60 SvGETMAGIC (scalar);
53 SvUTF8_off (scalar); 61 SvUTF8_off (scalar);
54 if (GIMME_V != G_VOID) 62 RETCOPY (scalar);
55 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
56 63
57int 64int
58utf8_valid(scalar) 65utf8_valid(scalar)
59 SV * scalar 66 SV * scalar
60 PROTOTYPE: $ 67 PROTOTYPE: $
72 PPCODE: 79 PPCODE:
73 if (SvREADONLY (scalar)) 80 if (SvREADONLY (scalar))
74 croak ("Convert::Scalar::utf8_upgrade called on read only scalar"); 81 croak ("Convert::Scalar::utf8_upgrade called on read only scalar");
75 82
76 sv_utf8_upgrade(scalar); 83 sv_utf8_upgrade(scalar);
77 if (GIMME_V != G_VOID) 84 RETCOPY (scalar);
78 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
79 85
80bool 86bool
81utf8_downgrade(scalar, fail_ok = 0) 87utf8_downgrade(scalar, fail_ok = 0)
82 SV * scalar 88 SV * scalar
83 bool fail_ok 89 bool fail_ok
97 PPCODE: 103 PPCODE:
98 if (SvREADONLY (scalar)) 104 if (SvREADONLY (scalar))
99 croak ("Convert::Scalar::utf8_encode called on read only scalar"); 105 croak ("Convert::Scalar::utf8_encode called on read only scalar");
100 106
101 sv_utf8_encode (scalar); 107 sv_utf8_encode (scalar);
102 if (GIMME_V != G_VOID) 108 RETCOPY (scalar);
103 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
104 109
105UV 110UV
106utf8_length(scalar) 111utf8_length(scalar)
107 SV * scalar 112 SV * scalar
108 PROTOTYPE: $ 113 PROTOTYPE: $

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines