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.1 by root, Thu Sep 27 18:32:22 2001 UTC vs.
Revision 1.5 by root, Wed Feb 12 20:42:10 2003 UTC

16 CODE: 16 CODE:
17 SvGETMAGIC (scalar); 17 SvGETMAGIC (scalar);
18 RETVAL = !!SvUTF8 (scalar); 18 RETVAL = !!SvUTF8 (scalar);
19 if (items > 1) 19 if (items > 1)
20 { 20 {
21 if (SvREADONLY (scalar))
22 croak ("Convert::Scalar::utf8 called on read only scalar");
21 if (SvTRUE (mode)) 23 if (SvTRUE (mode))
22 SvUTF8_on (scalar); 24 SvUTF8_on (scalar);
23 else 25 else
24 SvUTF8_off (scalar); 26 SvUTF8_off (scalar);
25 } 27 }
29void 31void
30utf8_on(scalar) 32utf8_on(scalar)
31 SV * scalar 33 SV * scalar
32 PROTOTYPE: $ 34 PROTOTYPE: $
33 PPCODE: 35 PPCODE:
36 if (SvREADONLY (scalar))
37 croak ("Convert::Scalar::utf8_on called on read only scalar");
38
34 SvGETMAGIC (scalar); 39 SvGETMAGIC (scalar);
35 SvUTF8_on (scalar); 40 SvUTF8_on (scalar);
36 if (GIMME_V != G_VOID) 41 if (GIMME_V != G_VOID)
37 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar))); 42 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
38 43
39void 44void
40utf8_off(scalar) 45utf8_off(scalar)
41 SV * scalar 46 SV * scalar
42 PROTOTYPE: $ 47 PROTOTYPE: $
43 PPCODE: 48 PPCODE:
49 if (SvREADONLY (scalar))
50 croak ("Convert::Scalar::utf8_off called on read only scalar");
51
44 SvGETMAGIC (scalar); 52 SvGETMAGIC (scalar);
45 SvUTF8_off (scalar); 53 SvUTF8_off (scalar);
46 if (GIMME_V != G_VOID) 54 if (GIMME_V != G_VOID)
47 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar))); 55 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
48 56
60void 68void
61utf8_upgrade(scalar) 69utf8_upgrade(scalar)
62 SV * scalar 70 SV * scalar
63 PROTOTYPE: $ 71 PROTOTYPE: $
64 PPCODE: 72 PPCODE:
73 if (SvREADONLY (scalar))
74 croak ("Convert::Scalar::utf8_upgrade called on read only scalar");
75
65 sv_utf8_upgrade(scalar); 76 sv_utf8_upgrade(scalar);
66 if (GIMME_V != G_VOID) 77 if (GIMME_V != G_VOID)
67 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar))); 78 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
68 79
69bool 80bool
70utf8_downgrade(scalar, fail_ok = 0) 81utf8_downgrade(scalar, fail_ok = 0)
71 SV * scalar 82 SV * scalar
72 bool fail_ok 83 bool fail_ok
73 PROTOTYPE: $;$ 84 PROTOTYPE: $;$
74 CODE: 85 CODE:
86 if (SvREADONLY (scalar))
87 croak ("Convert::Scalar::utf8_downgrade called on read only scalar");
88
75 RETVAL = sv_utf8_downgrade (scalar, fail_ok); 89 RETVAL = sv_utf8_downgrade (scalar, fail_ok);
76 OUTPUT: 90 OUTPUT:
77 RETVAL 91 RETVAL
78 92
79void 93void
80utf8_encode(scalar) 94utf8_encode(scalar)
81 SV * scalar 95 SV * scalar
82 PROTOTYPE: $ 96 PROTOTYPE: $
83 PPCODE: 97 PPCODE:
98 if (SvREADONLY (scalar))
99 croak ("Convert::Scalar::utf8_encode called on read only scalar");
100
84 sv_utf8_encode (scalar); 101 sv_utf8_encode (scalar);
85 if (GIMME_V != G_VOID) 102 if (GIMME_V != G_VOID)
86 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar))); 103 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
87 104
88UV 105UV
89utf8_length(scalar) 106utf8_length(scalar)
90 SV * scalar 107 SV * scalar
91 PROTOTYPE: $ 108 PROTOTYPE: $
92 CODE: 109 CODE:
93 RETVAL = (UV) sv_len_utf8 (scalar); 110 RETVAL = (UV) utf8_length (SvPV_nolen (scalar), SvEND (scalar));
94 OUTPUT: 111 OUTPUT:
95 RETVAL 112 RETVAL
96 113
97void 114void
98unmagic(scalar, type) 115unmagic(scalar, type)
140 PPCODE: 157 PPCODE:
141 sv_grow (scalar, newlen); 158 sv_grow (scalar, newlen);
142 if (GIMME_V != G_VOID) 159 if (GIMME_V != G_VOID)
143 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar))); 160 XPUSHs (sv_2mortal (SvREFCNT_inc (scalar)));
144 161
162int
163refcnt(scalar,newrefcnt=0)
164 SV * scalar
165 int newrefcnt
166 PROTOTYPE: $;$
167 ALIAS:
168 refcnt_rv = 1
169 CODE:
170 if (ix)
171 {
172 if (!SvROK (scalar)) croak ("refcnt_rv requires a reference as it's first argument");
173 scalar = SvRV (scalar);
174 }
175 RETVAL = SvREFCNT (scalar);
176 if (items > 1)
177 SvREFCNT (scalar) = newrefcnt;
178 OUTPUT:
179 RETVAL
180
181void
182refcnt_inc(scalar)
183 SV * scalar
184 ALIAS:
185 refcnt_inc_rv = 1
186 PROTOTYPE: $
187 CODE:
188 if (ix)
189 {
190 if (!SvROK (scalar)) croak ("refcnt_inc_rv requires a reference as it's first argument");
191 scalar = SvRV (scalar);
192 }
193 SvREFCNT_inc (scalar);
194
195void
196refcnt_dec(scalar)
197 SV * scalar
198 ALIAS:
199 refcnt_dec_rv = 1
200 PROTOTYPE: $
201 CODE:
202 if (ix)
203 {
204 if (!SvROK (scalar)) croak ("refcnt_dec_rv requires a reference as it's first argument");
205 scalar = SvRV (scalar);
206 }
207 SvREFCNT_dec (scalar);
208
209bool
210ok(scalar)
211 SV * scalar
212 PROTOTYPE: $
213 CODE:
214 RETVAL = SvOK (scalar);
215 OUTPUT:
216 RETVAL
217
218bool
219uok(scalar)
220 SV * scalar
221 PROTOTYPE: $
222 CODE:
223 RETVAL = SvUOK (scalar);
224 OUTPUT:
225 RETVAL
226
227bool
228rok(scalar)
229 SV * scalar
230 PROTOTYPE: $
231 CODE:
232 RETVAL = SvROK (scalar);
233 OUTPUT:
234 RETVAL
235
236bool
237pok(scalar)
238 SV * scalar
239 PROTOTYPE: $
240 CODE:
241 RETVAL = SvPOK (scalar);
242 OUTPUT:
243 RETVAL
244
245bool
246nok(scalar)
247 SV * scalar
248 PROTOTYPE: $
249 CODE:
250 RETVAL = SvNOK (scalar);
251 OUTPUT:
252 RETVAL
253
254bool
255niok(scalar)
256 SV * scalar
257 PROTOTYPE: $
258 CODE:
259 RETVAL = SvNIOK (scalar);
260 OUTPUT:
261 RETVAL
262

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines