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.8 by root, Sat Nov 27 23:36:37 2004 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines