… | |
… | |
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 | } |
… | |
… | |
29 | void |
31 | void |
30 | utf8_on(scalar) |
32 | utf8_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 | |
39 | void |
44 | void |
40 | utf8_off(scalar) |
45 | utf8_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 | |
… | |
… | |
60 | void |
68 | void |
61 | utf8_upgrade(scalar) |
69 | utf8_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 | |
69 | bool |
80 | bool |
70 | utf8_downgrade(scalar, fail_ok = 0) |
81 | utf8_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 | |
79 | void |
93 | void |
80 | utf8_encode(scalar) |
94 | utf8_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 | |
88 | UV |
105 | UV |
89 | utf8_length(scalar) |
106 | utf8_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 | |
97 | void |
114 | void |
98 | unmagic(scalar, type) |
115 | unmagic(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 | |
|
|
162 | int |
|
|
163 | refcnt(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 | |
|
|
181 | void |
|
|
182 | refcnt_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 | |
|
|
195 | void |
|
|
196 | refcnt_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); |