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.9 by root, Fri Mar 7 10:33:46 2008 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
84 PROTOTYPE: $;$ 86 PROTOTYPE: $;$
85 CODE: 87 CODE:
86 if (SvREADONLY (scalar)) 88 if (SvREADONLY (scalar))
87 croak ("Convert::Scalar::utf8_downgrade called on read only scalar"); 89 croak ("Convert::Scalar::utf8_downgrade called on read only scalar");
88 90
89 RETVAL = sv_utf8_downgrade (scalar, fail_ok); 91 RETVAL = !!sv_utf8_downgrade (scalar, fail_ok);
90 OUTPUT: 92 OUTPUT:
91 RETVAL 93 RETVAL
92 94
93void 95void
94utf8_encode(scalar) 96utf8_encode(scalar)
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: $
131 SV * scalar 132 SV * scalar
132 PROTOTYPE: $ 133 PROTOTYPE: $
133 CODE: 134 CODE:
134 SvTAINTED_on (scalar); 135 SvTAINTED_on (scalar);
135 136
136int 137bool
137tainted(scalar) 138tainted(scalar)
138 SV * scalar 139 SV * scalar
139 PROTOTYPE: $ 140 PROTOTYPE: $
140 CODE: 141 CODE:
141 RETVAL = SvTAINTED (scalar); 142 RETVAL = !!SvTAINTED (scalar);
142 OUTPUT: 143 OUTPUT:
143 RETVAL 144 RETVAL
144 145
145void 146void
146untaint(scalar) 147untaint(scalar)
209bool 210bool
210ok(scalar) 211ok(scalar)
211 SV * scalar 212 SV * scalar
212 PROTOTYPE: $ 213 PROTOTYPE: $
213 CODE: 214 CODE:
214 RETVAL = SvOK (scalar); 215 RETVAL = !!SvOK (scalar);
215 OUTPUT: 216 OUTPUT:
216 RETVAL 217 RETVAL
217 218
218bool 219bool
219uok(scalar) 220uok(scalar)
220 SV * scalar 221 SV * scalar
221 PROTOTYPE: $ 222 PROTOTYPE: $
222 CODE: 223 CODE:
223 RETVAL = SvUOK (scalar); 224 RETVAL = !!SvUOK (scalar);
224 OUTPUT: 225 OUTPUT:
225 RETVAL 226 RETVAL
226 227
227bool 228bool
228rok(scalar) 229rok(scalar)
229 SV * scalar 230 SV * scalar
230 PROTOTYPE: $ 231 PROTOTYPE: $
231 CODE: 232 CODE:
232 RETVAL = SvROK (scalar); 233 RETVAL = !!SvROK (scalar);
233 OUTPUT: 234 OUTPUT:
234 RETVAL 235 RETVAL
235 236
236bool 237bool
237pok(scalar) 238pok(scalar)
238 SV * scalar 239 SV * scalar
239 PROTOTYPE: $ 240 PROTOTYPE: $
240 CODE: 241 CODE:
241 RETVAL = SvPOK (scalar); 242 RETVAL = !!SvPOK (scalar);
242 OUTPUT: 243 OUTPUT:
243 RETVAL 244 RETVAL
244 245
245bool 246bool
246nok(scalar) 247nok(scalar)
247 SV * scalar 248 SV * scalar
248 PROTOTYPE: $ 249 PROTOTYPE: $
249 CODE: 250 CODE:
250 RETVAL = SvNOK (scalar); 251 RETVAL = !!SvNOK (scalar);
251 OUTPUT: 252 OUTPUT:
252 RETVAL 253 RETVAL
253 254
254bool 255bool
255niok(scalar) 256niok(scalar)
256 SV * scalar 257 SV * scalar
257 PROTOTYPE: $ 258 PROTOTYPE: $
258 CODE: 259 CODE:
259 RETVAL = SvNIOK (scalar); 260 RETVAL = !!SvNIOK (scalar);
260 OUTPUT: 261 OUTPUT:
261 RETVAL 262 RETVAL
262 263

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines