line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Perl::APIReference::V5_008_005; |
2
|
1
|
|
|
1
|
|
7
|
use strict; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
62
|
|
3
|
1
|
|
|
1
|
|
7
|
use warnings; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
52
|
|
4
|
1
|
|
|
1
|
|
8
|
use parent 'Perl::APIReference'; |
|
1
|
|
|
|
|
45
|
|
|
1
|
|
|
|
|
10
|
|
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
sub new { |
7
|
1
|
|
|
1
|
1
|
3
|
my $class = shift; |
8
|
1
|
|
|
|
|
2
|
my $VAR1; |
9
|
|
|
|
|
|
|
|
10
|
1
|
|
|
|
|
2
|
do{$VAR1 = {'SvOOK' => {'text' => 'Returns a boolean indicating whether the SvIVX is a valid offset value for |
|
1
|
|
|
|
|
1066
|
|
11
|
|
|
|
|
|
|
the SvPVX. This hack is used internally to speed up removal of characters |
12
|
|
|
|
|
|
|
from the beginning of a SvPV. When SvOOK is true, then the start of the |
13
|
|
|
|
|
|
|
allocated string buffer is really (SvPVX - SvIVX). |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
bool SvOOK(SV* sv)','name' => 'SvOOK'},'hv_store_ent' => {'text' => 'Stores C in a hash. The hash key is specified as C. The C |
16
|
|
|
|
|
|
|
parameter is the precomputed hash value; if it is zero then Perl will |
17
|
|
|
|
|
|
|
compute it. The return value is the new hash entry so created. It will be |
18
|
|
|
|
|
|
|
NULL if the operation failed or if the value did not need to be actually |
19
|
|
|
|
|
|
|
stored within the hash (as in the case of tied hashes). Otherwise the |
20
|
|
|
|
|
|
|
contents of the return value can be accessed using the C macros |
21
|
|
|
|
|
|
|
described here. Note that the caller is responsible for suitably |
22
|
|
|
|
|
|
|
incrementing the reference count of C before the call, and |
23
|
|
|
|
|
|
|
decrementing it if the function returned NULL. Effectively a successful |
24
|
|
|
|
|
|
|
hv_store_ent takes ownership of one reference to C. This is |
25
|
|
|
|
|
|
|
usually what you want; a newly created SV has a reference count of one, so |
26
|
|
|
|
|
|
|
if all your code does is create SVs then store them in a hash, hv_store |
27
|
|
|
|
|
|
|
will own the only reference to the new SV, and your code doesn\'t need to do |
28
|
|
|
|
|
|
|
anything further to tidy up. Note that hv_store_ent only reads the C; |
29
|
|
|
|
|
|
|
unlike C it does not take ownership of it, so maintaining the correct |
30
|
|
|
|
|
|
|
reference count on C is entirely the caller\'s responsibility. hv_store |
31
|
|
|
|
|
|
|
is not implemented as a call to hv_store_ent, and does not create a temporary |
32
|
|
|
|
|
|
|
SV for the key, so if your key data is not already in SV form then use |
33
|
|
|
|
|
|
|
hv_store in preference to hv_store_ent. |
34
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
See L for more |
36
|
|
|
|
|
|
|
information on how to use this function on tied hashes. |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
HE* hv_store_ent(HV* tb, SV* key, SV* val, U32 hash)','name' => 'hv_store_ent'},'gv_stashsv' => {'text' => 'Returns a pointer to the stash for a specified package, which must be a |
39
|
|
|
|
|
|
|
valid UTF-8 string. See C. |
40
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
HV* gv_stashsv(SV* sv, I32 create)','name' => 'gv_stashsv'},'newXSproto' => {'text' => 'Used by C to hook up XSUBs as Perl subs. Adds Perl prototypes to |
42
|
|
|
|
|
|
|
the subs.','name' => 'newXSproto'},'XSRETURN_NV' => {'text' => 'Return a double from an XSUB immediately. Uses C. |
43
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
void XSRETURN_NV(NV nv)','name' => 'XSRETURN_NV'},'strGE' => {'text' => 'Test two strings to see if the first, C, is greater than or equal to |
45
|
|
|
|
|
|
|
the second, C. Returns true or false. |
46
|
|
|
|
|
|
|
|
47
|
|
|
|
|
|
|
bool strGE(char* s1, char* s2)','name' => 'strGE'},'form' => {'text' => 'Takes a sprintf-style format pattern and conventional |
48
|
|
|
|
|
|
|
(non-SV) arguments and returns the formatted string. |
49
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
(char *) Perl_form(pTHX_ const char* pat, ...) |
51
|
|
|
|
|
|
|
|
52
|
|
|
|
|
|
|
can be used any place a string (char *) is required: |
53
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
char * s = Perl_form("%d.%d",major,minor); |
55
|
|
|
|
|
|
|
|
56
|
|
|
|
|
|
|
Uses a single private buffer so if you want to format several strings you |
57
|
|
|
|
|
|
|
must explicitly copy the earlier strings away (and free the copies when you |
58
|
|
|
|
|
|
|
are done). |
59
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
char* form(const char* pat, ...)','name' => 'form'},'SvPV' => {'text' => 'Returns a pointer to the string in the SV, or a stringified form of |
61
|
|
|
|
|
|
|
the SV if the SV does not contain a string. The SV may cache the |
62
|
|
|
|
|
|
|
stringified version becoming C. Handles \'get\' magic. See also |
63
|
|
|
|
|
|
|
C for a version which guarantees to evaluate sv only once. |
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
char* SvPV(SV* sv, STRLEN len)','name' => 'SvPV'},'is_utf8_string' => {'text' => 'Returns true if first C bytes of the given string form a valid |
66
|
|
|
|
|
|
|
UTF-8 string, false otherwise. Note that \'a valid UTF-8 string\' does |
67
|
|
|
|
|
|
|
not mean \'a string that contains code points above 0x7F encoded in UTF-8\' |
68
|
|
|
|
|
|
|
because a valid ASCII string is a valid UTF-8 string. |
69
|
|
|
|
|
|
|
|
70
|
|
|
|
|
|
|
bool is_utf8_string(U8 *s, STRLEN len)','name' => 'is_utf8_string'},'svtype' => {'text' => 'An enum of flags for Perl types. These are found in the file B |
71
|
|
|
|
|
|
|
in the C enum. Test these flags with the C macro.','name' => 'svtype'},'hv_clear' => {'text' => 'Clears a hash, making it empty. |
72
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
void hv_clear(HV* tb)','name' => 'hv_clear'},'get_hv' => {'text' => 'Returns the HV of the specified Perl hash. If C is set and the |
74
|
|
|
|
|
|
|
Perl variable does not exist then it will be created. If C is not |
75
|
|
|
|
|
|
|
set and the variable does not exist then NULL is returned. |
76
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
78
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
HV* get_hv(const char* name, I32 create)','name' => 'get_hv'},'load_module' => {'text' => 'Loads the module whose name is pointed to by the string part of name. |
80
|
|
|
|
|
|
|
Note that the actual module name, not its filename, should be given. |
81
|
|
|
|
|
|
|
Eg, "Foo::Bar" instead of "Foo/Bar.pm". flags can be any of |
82
|
|
|
|
|
|
|
PERL_LOADMOD_DENY, PERL_LOADMOD_NOIMPORT, or PERL_LOADMOD_IMPORT_OPS |
83
|
|
|
|
|
|
|
(or 0 for no flags). ver, if specified, provides version semantics |
84
|
|
|
|
|
|
|
similar to C |
85
|
|
|
|
|
|
|
arguments can be used to specify arguments to the module\'s import() |
86
|
|
|
|
|
|
|
method, similar to C |
87
|
|
|
|
|
|
|
|
88
|
|
|
|
|
|
|
void load_module(U32 flags, SV* name, SV* ver, ...)','name' => 'load_module'},'XSRETURN_YES' => {'text' => 'Return C<&PL_sv_yes> from an XSUB immediately. Uses C. |
89
|
|
|
|
|
|
|
|
90
|
|
|
|
|
|
|
XSRETURN_YES;','name' => 'XSRETURN_YES'},'sv_nv' => {'text' => 'A private implementation of the C macro for compilers which can\'t |
91
|
|
|
|
|
|
|
cope with complex macro expressions. Always use the macro instead. |
92
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
NV sv_nv(SV* sv)','name' => 'sv_nv'},'Renewc' => {'text' => 'The XSUB-writer\'s interface to the C C function, with |
94
|
|
|
|
|
|
|
cast. |
95
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
void Renewc(void* ptr, int nitems, type, cast)','name' => 'Renewc'},'Poison' => {'text' => 'Fill up memory with a pattern (byte 0xAB over and over again) that |
97
|
|
|
|
|
|
|
hopefully catches attempts to access uninitialized memory. |
98
|
|
|
|
|
|
|
|
99
|
|
|
|
|
|
|
void Poison(void* dest, int nitems, type)','name' => 'Poison'},'sv_insert' => {'text' => 'Inserts a string at the specified offset/length within the SV. Similar to |
100
|
|
|
|
|
|
|
the Perl substr() function. |
101
|
|
|
|
|
|
|
|
102
|
|
|
|
|
|
|
void sv_insert(SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)','name' => 'sv_insert'},'sv_catpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
103
|
|
|
|
|
|
|
|
104
|
|
|
|
|
|
|
void sv_catpvf_mg(SV *sv, const char* pat, ...)','name' => 'sv_catpvf_mg'},'SvPOK_off' => {'text' => 'Unsets the PV status of an SV. |
105
|
|
|
|
|
|
|
|
106
|
|
|
|
|
|
|
void SvPOK_off(SV* sv)','name' => 'SvPOK_off'},'SvPOK' => {'text' => 'Returns a boolean indicating whether the SV contains a character |
107
|
|
|
|
|
|
|
string. |
108
|
|
|
|
|
|
|
|
109
|
|
|
|
|
|
|
bool SvPOK(SV* sv)','name' => 'SvPOK'},'get_sv' => {'text' => 'Returns the SV of the specified Perl scalar. If C is set and the |
110
|
|
|
|
|
|
|
Perl variable does not exist then it will be created. If C is not |
111
|
|
|
|
|
|
|
set and the variable does not exist then NULL is returned. |
112
|
|
|
|
|
|
|
|
113
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
114
|
|
|
|
|
|
|
|
115
|
|
|
|
|
|
|
SV* get_sv(const char* name, I32 create)','name' => 'get_sv'},'PUSHu' => {'text' => 'Push an unsigned integer onto the stack. The stack must have room for this |
116
|
|
|
|
|
|
|
element. Handles \'set\' magic. Uses C, so C or C |
117
|
|
|
|
|
|
|
should be called to declare it. Do not call multiple C-oriented |
118
|
|
|
|
|
|
|
macros to return lists from XSUB\'s - see C instead. See also |
119
|
|
|
|
|
|
|
C and C. |
120
|
|
|
|
|
|
|
|
121
|
|
|
|
|
|
|
void PUSHu(UV uv)','name' => 'PUSHu'},'newSVsv' => {'text' => 'Creates a new SV which is an exact duplicate of the original SV. |
122
|
|
|
|
|
|
|
(Uses C). |
123
|
|
|
|
|
|
|
|
124
|
|
|
|
|
|
|
SV* newSVsv(SV* old)','name' => 'newSVsv'},'hv_magic' => {'text' => 'Adds magic to a hash. See C. |
125
|
|
|
|
|
|
|
|
126
|
|
|
|
|
|
|
void hv_magic(HV* hv, GV* gv, int how)','name' => 'hv_magic'},'SvPVutf8' => {'text' => 'Like C, but converts sv to utf8 first if necessary. |
127
|
|
|
|
|
|
|
|
128
|
|
|
|
|
|
|
char* SvPVutf8(SV* sv, STRLEN len)','name' => 'SvPVutf8'},'sv_setpv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
129
|
|
|
|
|
|
|
|
130
|
|
|
|
|
|
|
void sv_setpv_mg(SV *sv, const char *ptr)','name' => 'sv_setpv_mg'},'XS' => {'text' => 'Macro to declare an XSUB and its C parameter list. This is handled by |
131
|
|
|
|
|
|
|
C.','name' => 'XS'},'scan_oct' => {'text' => 'For backwards compatibility. Use C instead. |
132
|
|
|
|
|
|
|
|
133
|
|
|
|
|
|
|
NV scan_oct(char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_oct'},'sv_setpvn' => {'text' => 'Copies a string into an SV. The C parameter indicates the number of |
134
|
|
|
|
|
|
|
bytes to be copied. If the C argument is NULL the SV will become |
135
|
|
|
|
|
|
|
undefined. Does not handle \'set\' magic. See C. |
136
|
|
|
|
|
|
|
|
137
|
|
|
|
|
|
|
void sv_setpvn(SV* sv, const char* ptr, STRLEN len)','name' => 'sv_setpvn'},'sv_2mortal' => {'text' => 'Marks an existing SV as mortal. The SV will be destroyed "soon", either |
138
|
|
|
|
|
|
|
by an explicit call to FREETMPS, or by an implicit call at places such as |
139
|
|
|
|
|
|
|
statement boundaries. See also C and C. |
140
|
|
|
|
|
|
|
|
141
|
|
|
|
|
|
|
SV* sv_2mortal(SV* sv)','name' => 'sv_2mortal'},'mg_magical' => {'text' => 'Turns on the magical status of an SV. See C. |
142
|
|
|
|
|
|
|
|
143
|
|
|
|
|
|
|
void mg_magical(SV* sv)','name' => 'mg_magical'},'newSVrv' => {'text' => 'Creates a new SV for the RV, C, to point to. If C is not an RV then |
144
|
|
|
|
|
|
|
it will be upgraded to one. If C is non-null then the new SV will |
145
|
|
|
|
|
|
|
be blessed in the specified package. The new SV is returned and its |
146
|
|
|
|
|
|
|
reference count is 1. |
147
|
|
|
|
|
|
|
|
148
|
|
|
|
|
|
|
SV* newSVrv(SV* rv, const char* classname)','name' => 'newSVrv'},'strnEQ' => {'text' => 'Test two strings to see if they are equal. The C parameter indicates |
149
|
|
|
|
|
|
|
the number of bytes to compare. Returns true or false. (A wrapper for |
150
|
|
|
|
|
|
|
C). |
151
|
|
|
|
|
|
|
|
152
|
|
|
|
|
|
|
bool strnEQ(char* s1, char* s2, STRLEN len)','name' => 'strnEQ'},'av_undef' => {'text' => 'Undefines the array. Frees the memory used by the array itself. |
153
|
|
|
|
|
|
|
|
154
|
|
|
|
|
|
|
void av_undef(AV* ar)','name' => 'av_undef'},'HeKEY' => {'text' => 'Returns the actual pointer stored in the key slot of the hash entry. The |
155
|
|
|
|
|
|
|
pointer may be either C or C, depending on the value of |
156
|
|
|
|
|
|
|
C. Can be assigned to. The C or C macros are |
157
|
|
|
|
|
|
|
usually preferable for finding the value of a key. |
158
|
|
|
|
|
|
|
|
159
|
|
|
|
|
|
|
void* HeKEY(HE* he)','name' => 'HeKEY'},'pack_cat' => {'text' => 'The engine implementing pack() Perl function. Note: parameters next_in_list and |
160
|
|
|
|
|
|
|
flags are not used. This call should not be used; use packlist instead. |
161
|
|
|
|
|
|
|
|
162
|
|
|
|
|
|
|
void pack_cat(SV *cat, char *pat, char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)','name' => 'pack_cat'},'utf8n_to_uvuni' => {'text' => 'Bottom level UTF-8 decode routine. |
163
|
|
|
|
|
|
|
Returns the unicode code point value of the first character in the string C |
164
|
|
|
|
|
|
|
which is assumed to be in UTF-8 encoding and no longer than C; |
165
|
|
|
|
|
|
|
C will be set to the length, in bytes, of that character. |
166
|
|
|
|
|
|
|
|
167
|
|
|
|
|
|
|
If C does not point to a well-formed UTF-8 character, the behaviour |
168
|
|
|
|
|
|
|
is dependent on the value of C: if it contains UTF8_CHECK_ONLY, |
169
|
|
|
|
|
|
|
it is assumed that the caller will raise a warning, and this function |
170
|
|
|
|
|
|
|
will silently just set C to C<-1> and return zero. If the |
171
|
|
|
|
|
|
|
C does not contain UTF8_CHECK_ONLY, warnings about |
172
|
|
|
|
|
|
|
malformations will be given, C will be set to the expected |
173
|
|
|
|
|
|
|
length of the UTF-8 character in bytes, and zero will be returned. |
174
|
|
|
|
|
|
|
|
175
|
|
|
|
|
|
|
The C can also contain various flags to allow deviations from |
176
|
|
|
|
|
|
|
the strict UTF-8 encoding (see F). |
177
|
|
|
|
|
|
|
|
178
|
|
|
|
|
|
|
Most code should use utf8_to_uvchr() rather than call this directly. |
179
|
|
|
|
|
|
|
|
180
|
|
|
|
|
|
|
UV utf8n_to_uvuni(U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)','name' => 'utf8n_to_uvuni'},'sv_cmp' => {'text' => 'Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the |
181
|
|
|
|
|
|
|
string in C is less than, equal to, or greater than the string in |
182
|
|
|
|
|
|
|
C. Is UTF-8 and \'use bytes\' aware, handles get magic, and will |
183
|
|
|
|
|
|
|
coerce its args to strings if necessary. See also C. |
184
|
|
|
|
|
|
|
|
185
|
|
|
|
|
|
|
I32 sv_cmp(SV* sv1, SV* sv2)','name' => 'sv_cmp'},'SvNIOK_off' => {'text' => 'Unsets the NV/IV status of an SV. |
186
|
|
|
|
|
|
|
|
187
|
|
|
|
|
|
|
void SvNIOK_off(SV* sv)','name' => 'SvNIOK_off'},'SvEND' => {'text' => 'Returns a pointer to the last character in the string which is in the SV. |
188
|
|
|
|
|
|
|
See C. Access the character as *(SvEND(sv)). |
189
|
|
|
|
|
|
|
|
190
|
|
|
|
|
|
|
char* SvEND(SV* sv)','name' => 'SvEND'},'sv_magic' => {'text' => 'Adds magic to an SV. First upgrades C to type C if necessary, |
191
|
|
|
|
|
|
|
then adds a new magic item of type C to the head of the magic list. |
192
|
|
|
|
|
|
|
|
193
|
|
|
|
|
|
|
void sv_magic(SV* sv, SV* obj, int how, const char* name, I32 namlen)','name' => 'sv_magic'},'mg_free' => {'text' => 'Free any magic storage used by the SV. See C. |
194
|
|
|
|
|
|
|
|
195
|
|
|
|
|
|
|
int mg_free(SV* sv)','name' => 'mg_free'},'GIMME_V' => {'text' => 'The XSUB-writer\'s equivalent to Perl\'s C. Returns C, |
196
|
|
|
|
|
|
|
C or C for void, scalar or list context, |
197
|
|
|
|
|
|
|
respectively. |
198
|
|
|
|
|
|
|
|
199
|
|
|
|
|
|
|
U32 GIMME_V','name' => 'GIMME_V'},'sv_force_normal_flags' => {'text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make |
200
|
|
|
|
|
|
|
a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to |
201
|
|
|
|
|
|
|
an xpvmg. The C parameter gets passed to C |
202
|
|
|
|
|
|
|
when unrefing. C calls this function with flags set to 0. |
203
|
|
|
|
|
|
|
|
204
|
|
|
|
|
|
|
void sv_force_normal_flags(SV *sv, U32 flags)','name' => 'sv_force_normal_flags'},'dMARK' => {'text' => 'Declare a stack marker variable, C, for the XSUB. See C and |
205
|
|
|
|
|
|
|
C. |
206
|
|
|
|
|
|
|
|
207
|
|
|
|
|
|
|
dMARK;','name' => 'dMARK'},'sv_setsv_flags' => {'text' => 'Copies the contents of the source SV C into the destination SV |
208
|
|
|
|
|
|
|
C. The source SV may be destroyed if it is mortal, so don\'t use this |
209
|
|
|
|
|
|
|
function if the source SV needs to be reused. Does not handle \'set\' magic. |
210
|
|
|
|
|
|
|
Loosely speaking, it performs a copy-by-value, obliterating any previous |
211
|
|
|
|
|
|
|
content of the destination. |
212
|
|
|
|
|
|
|
If the C parameter has the C bit set, will C on |
213
|
|
|
|
|
|
|
C if appropriate, else not. C and C are |
214
|
|
|
|
|
|
|
implemented in terms of this function. |
215
|
|
|
|
|
|
|
|
216
|
|
|
|
|
|
|
You probably want to use one of the assortment of wrappers, such as |
217
|
|
|
|
|
|
|
C, C, C and |
218
|
|
|
|
|
|
|
C. |
219
|
|
|
|
|
|
|
|
220
|
|
|
|
|
|
|
This is the primary function for copying scalars, and most other |
221
|
|
|
|
|
|
|
copy-ish functions and macros use this underneath. |
222
|
|
|
|
|
|
|
|
223
|
|
|
|
|
|
|
void sv_setsv_flags(SV* dsv, SV* ssv, I32 flags)','name' => 'sv_setsv_flags'},'sv_utf8_upgrade_flags' => {'text' => 'Converts the PV of an SV to its UTF-8-encoded form. |
224
|
|
|
|
|
|
|
Forces the SV to string form if it is not already. |
225
|
|
|
|
|
|
|
Always sets the SvUTF8 flag to avoid future validity checks even |
226
|
|
|
|
|
|
|
if all the bytes have hibit clear. If C has C bit set, |
227
|
|
|
|
|
|
|
will C on C if appropriate, else not. C and |
228
|
|
|
|
|
|
|
C are implemented in terms of this function. |
229
|
|
|
|
|
|
|
|
230
|
|
|
|
|
|
|
This is not as a general purpose byte encoding to Unicode interface: |
231
|
|
|
|
|
|
|
use the Encode extension for that. |
232
|
|
|
|
|
|
|
|
233
|
|
|
|
|
|
|
STRLEN sv_utf8_upgrade_flags(SV *sv, I32 flags)','name' => 'sv_utf8_upgrade_flags'},'New' => {'text' => 'The XSUB-writer\'s interface to the C C function. |
234
|
|
|
|
|
|
|
|
235
|
|
|
|
|
|
|
void New(int id, void* ptr, int nitems, type)','name' => 'New'},'is_utf8_char' => {'text' => 'Tests if some arbitrary number of bytes begins in a valid UTF-8 |
236
|
|
|
|
|
|
|
character. Note that an INVARIANT (i.e. ASCII) character is a valid |
237
|
|
|
|
|
|
|
UTF-8 character. The actual number of bytes in the UTF-8 character |
238
|
|
|
|
|
|
|
will be returned if it is valid, otherwise 0. |
239
|
|
|
|
|
|
|
|
240
|
|
|
|
|
|
|
STRLEN is_utf8_char(U8 *p)','name' => 'is_utf8_char'},'Copy' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the |
241
|
|
|
|
|
|
|
source, C is the destination, C is the number of items, and C is |
242
|
|
|
|
|
|
|
the type. May fail on overlapping copies. See also C. |
243
|
|
|
|
|
|
|
|
244
|
|
|
|
|
|
|
void Copy(void* src, void* dest, int nitems, type)','name' => 'Copy'},'ibcmp_utf8' => {'text' => 'Return true if the strings s1 and s2 differ case-insensitively, false |
245
|
|
|
|
|
|
|
if not (if they are equal case-insensitively). If u1 is true, the |
246
|
|
|
|
|
|
|
string s1 is assumed to be in UTF-8-encoded Unicode. If u2 is true, |
247
|
|
|
|
|
|
|
the string s2 is assumed to be in UTF-8-encoded Unicode. If u1 or u2 |
248
|
|
|
|
|
|
|
are false, the respective string is assumed to be in native 8-bit |
249
|
|
|
|
|
|
|
encoding. |
250
|
|
|
|
|
|
|
|
251
|
|
|
|
|
|
|
If the pe1 and pe2 are non-NULL, the scanning pointers will be copied |
252
|
|
|
|
|
|
|
in there (they will point at the beginning of the I character). |
253
|
|
|
|
|
|
|
If the pointers behind pe1 or pe2 are non-NULL, they are the end |
254
|
|
|
|
|
|
|
pointers beyond which scanning will not continue under any |
255
|
|
|
|
|
|
|
circustances. If the byte lengths l1 and l2 are non-zero, s1+l1 and |
256
|
|
|
|
|
|
|
s2+l2 will be used as goal end pointers that will also stop the scan, |
257
|
|
|
|
|
|
|
and which qualify towards defining a successful match: all the scans |
258
|
|
|
|
|
|
|
that define an explicit length must reach their goal pointers for |
259
|
|
|
|
|
|
|
a match to succeed). |
260
|
|
|
|
|
|
|
|
261
|
|
|
|
|
|
|
For case-insensitiveness, the "casefolding" of Unicode is used |
262
|
|
|
|
|
|
|
instead of upper/lowercasing both the characters, see |
263
|
|
|
|
|
|
|
http://www.unicode.org/unicode/reports/tr21/ (Case Mappings). |
264
|
|
|
|
|
|
|
|
265
|
|
|
|
|
|
|
I32 ibcmp_utf8(const char* a, char **pe1, UV l1, bool u1, const char* b, char **pe2, UV l2, bool u2)','name' => 'ibcmp_utf8'},'mXPUSHp' => {'text' => 'Push a string onto the stack, extending the stack if necessary. The C |
266
|
|
|
|
|
|
|
indicates the length of the string. Handles \'set\' magic. Does not use |
267
|
|
|
|
|
|
|
C. See also C, C and C. |
268
|
|
|
|
|
|
|
|
269
|
|
|
|
|
|
|
void mXPUSHp(char* str, STRLEN len)','name' => 'mXPUSHp'},'CvSTASH' => {'text' => 'Returns the stash of the CV. |
270
|
|
|
|
|
|
|
|
271
|
|
|
|
|
|
|
HV* CvSTASH(CV* cv)','name' => 'CvSTASH'},'sv_taint' => {'text' => 'Taint an SV. Use C instead. |
272
|
|
|
|
|
|
|
void sv_taint(SV* sv)','name' => 'sv_taint'},'SvNOK_off' => {'text' => 'Unsets the NV status of an SV. |
273
|
|
|
|
|
|
|
|
274
|
|
|
|
|
|
|
void SvNOK_off(SV* sv)','name' => 'SvNOK_off'},'sv_replace' => {'text' => 'Make the first argument a copy of the second, then delete the original. |
275
|
|
|
|
|
|
|
The target SV physically takes over ownership of the body of the source SV |
276
|
|
|
|
|
|
|
and inherits its flags; however, the target keeps any magic it owns, |
277
|
|
|
|
|
|
|
and any magic in the source is discarded. |
278
|
|
|
|
|
|
|
Note that this is a rather specialist SV copying operation; most of the |
279
|
|
|
|
|
|
|
time you\'ll want to use C or one of its many macro front-ends. |
280
|
|
|
|
|
|
|
|
281
|
|
|
|
|
|
|
void sv_replace(SV* sv, SV* nsv)','name' => 'sv_replace'},'utf8n_to_uvchr' => {'text' => 'Returns the native character value of the first character in the string C |
282
|
|
|
|
|
|
|
which is assumed to be in UTF-8 encoding; C will be set to the |
283
|
|
|
|
|
|
|
length, in bytes, of that character. |
284
|
|
|
|
|
|
|
|
285
|
|
|
|
|
|
|
Allows length and flags to be passed to low level routine. |
286
|
|
|
|
|
|
|
|
287
|
|
|
|
|
|
|
UV utf8n_to_uvchr(U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags)','name' => 'utf8n_to_uvchr'},'sv_utf8_upgrade' => {'text' => 'Converts the PV of an SV to its UTF-8-encoded form. |
288
|
|
|
|
|
|
|
Forces the SV to string form if it is not already. |
289
|
|
|
|
|
|
|
Always sets the SvUTF8 flag to avoid future validity checks even |
290
|
|
|
|
|
|
|
if all the bytes have hibit clear. |
291
|
|
|
|
|
|
|
|
292
|
|
|
|
|
|
|
This is not as a general purpose byte encoding to Unicode interface: |
293
|
|
|
|
|
|
|
use the Encode extension for that. |
294
|
|
|
|
|
|
|
|
295
|
|
|
|
|
|
|
STRLEN sv_utf8_upgrade(SV *sv)','name' => 'sv_utf8_upgrade'},'SvIOK_notUV' => {'text' => 'Returns a boolean indicating whether the SV contains a signed integer. |
296
|
|
|
|
|
|
|
|
297
|
|
|
|
|
|
|
bool SvIOK_notUV(SV* sv)','name' => 'SvIOK_notUV'},'G_ARRAY' => {'text' => 'Used to indicate list context. See C, C and |
298
|
|
|
|
|
|
|
L.','name' => 'G_ARRAY'},'dXSARGS' => {'text' => 'Sets up stack and mark pointers for an XSUB, calling dSP and dMARK. |
299
|
|
|
|
|
|
|
Sets up the C and C variables by calling C and C. |
300
|
|
|
|
|
|
|
This is usually handled automatically by C. |
301
|
|
|
|
|
|
|
|
302
|
|
|
|
|
|
|
dXSARGS;','name' => 'dXSARGS'},'sv_2iv' => {'text' => 'Return the integer value of an SV, doing any necessary string conversion, |
303
|
|
|
|
|
|
|
magic etc. Normally used via the C and C macros. |
304
|
|
|
|
|
|
|
|
305
|
|
|
|
|
|
|
IV sv_2iv(SV* sv)','name' => 'sv_2iv'},'savesharedpv' => {'text' => 'A version of C which allocates the duplicate string in memory |
306
|
|
|
|
|
|
|
which is shared between threads. |
307
|
|
|
|
|
|
|
|
308
|
|
|
|
|
|
|
char* savesharedpv(const char* pv)','name' => 'savesharedpv'},'XS_VERSION_BOOTCHECK' => {'text' => 'Macro to verify that a PM module\'s $VERSION variable matches the XS |
309
|
|
|
|
|
|
|
module\'s C variable. This is usually handled automatically by |
310
|
|
|
|
|
|
|
C. See L. |
311
|
|
|
|
|
|
|
|
312
|
|
|
|
|
|
|
XS_VERSION_BOOTCHECK;','name' => 'XS_VERSION_BOOTCHECK'},'Safefree' => {'text' => 'The XSUB-writer\'s interface to the C C function. |
313
|
|
|
|
|
|
|
|
314
|
|
|
|
|
|
|
void Safefree(void* ptr)','name' => 'Safefree'},'isSPACE' => {'text' => 'Returns a boolean indicating whether the C C is whitespace. |
315
|
|
|
|
|
|
|
|
316
|
|
|
|
|
|
|
bool isSPACE(char ch)','name' => 'isSPACE'},'SvROK' => {'text' => 'Tests if the SV is an RV. |
317
|
|
|
|
|
|
|
|
318
|
|
|
|
|
|
|
bool SvROK(SV* sv)','name' => 'SvROK'},'mXPUSHn' => {'text' => 'Push a double onto the stack, extending the stack if necessary. Handles |
319
|
|
|
|
|
|
|
\'set\' magic. Does not use C. See also C, C and |
320
|
|
|
|
|
|
|
C. |
321
|
|
|
|
|
|
|
|
322
|
|
|
|
|
|
|
void mXPUSHn(NV nv)','name' => 'mXPUSHn'},'sv_unref' => {'text' => 'Unsets the RV status of the SV, and decrements the reference count of |
323
|
|
|
|
|
|
|
whatever was being referenced by the RV. This can almost be thought of |
324
|
|
|
|
|
|
|
as a reversal of C. This is C with the C |
325
|
|
|
|
|
|
|
being zero. See C. |
326
|
|
|
|
|
|
|
|
327
|
|
|
|
|
|
|
void sv_unref(SV* sv)','name' => 'sv_unref'},'SvSETMAGIC' => {'text' => 'Invokes C on an SV if it has \'set\' magic. This macro evaluates its |
328
|
|
|
|
|
|
|
argument more than once. |
329
|
|
|
|
|
|
|
|
330
|
|
|
|
|
|
|
void SvSETMAGIC(SV* sv)','name' => 'SvSETMAGIC'},'G_EVAL' => {'text' => 'Used to force a Perl C wrapper around a callback. See |
331
|
|
|
|
|
|
|
L.','name' => 'G_EVAL'},'sv_catsv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
332
|
|
|
|
|
|
|
|
333
|
|
|
|
|
|
|
void sv_catsv_mg(SV *dstr, SV *sstr)','name' => 'sv_catsv_mg'},'mPUSHu' => {'text' => 'Push an unsigned integer onto the stack. The stack must have room for this |
334
|
|
|
|
|
|
|
element. Handles \'set\' magic. Does not use C. See also C, |
335
|
|
|
|
|
|
|
C and C. |
336
|
|
|
|
|
|
|
|
337
|
|
|
|
|
|
|
void mPUSHu(UV uv)','name' => 'mPUSHu'},'call_argv' => {'text' => 'Performs a callback to the specified Perl sub. See L. |
338
|
|
|
|
|
|
|
|
339
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
340
|
|
|
|
|
|
|
|
341
|
|
|
|
|
|
|
I32 call_argv(const char* sub_name, I32 flags, char** argv)','name' => 'call_argv'},'SvPV_nolen' => {'text' => 'Returns a pointer to the string in the SV, or a stringified form of |
342
|
|
|
|
|
|
|
the SV if the SV does not contain a string. The SV may cache the |
343
|
|
|
|
|
|
|
stringified form becoming C. Handles \'get\' magic. |
344
|
|
|
|
|
|
|
|
345
|
|
|
|
|
|
|
char* SvPV_nolen(SV* sv)','name' => 'SvPV_nolen'},'perl_clone' => {'text' => 'Create and return a new interpreter by cloning the current one. |
346
|
|
|
|
|
|
|
|
347
|
|
|
|
|
|
|
perl_clone takes these flags as parameters: |
348
|
|
|
|
|
|
|
|
349
|
|
|
|
|
|
|
CLONEf_COPY_STACKS - is used to, well, copy the stacks also, |
350
|
|
|
|
|
|
|
without it we only clone the data and zero the stacks, |
351
|
|
|
|
|
|
|
with it we copy the stacks and the new perl interpreter is |
352
|
|
|
|
|
|
|
ready to run at the exact same point as the previous one. |
353
|
|
|
|
|
|
|
The pseudo-fork code uses COPY_STACKS while the |
354
|
|
|
|
|
|
|
threads->new doesn\'t. |
355
|
|
|
|
|
|
|
|
356
|
|
|
|
|
|
|
CLONEf_KEEP_PTR_TABLE |
357
|
|
|
|
|
|
|
perl_clone keeps a ptr_table with the pointer of the old |
358
|
|
|
|
|
|
|
variable as a key and the new variable as a value, |
359
|
|
|
|
|
|
|
this allows it to check if something has been cloned and not |
360
|
|
|
|
|
|
|
clone it again but rather just use the value and increase the |
361
|
|
|
|
|
|
|
refcount. If KEEP_PTR_TABLE is not set then perl_clone will kill |
362
|
|
|
|
|
|
|
the ptr_table using the function |
363
|
|
|
|
|
|
|
C, |
364
|
|
|
|
|
|
|
reason to keep it around is if you want to dup some of your own |
365
|
|
|
|
|
|
|
variable who are outside the graph perl scans, example of this |
366
|
|
|
|
|
|
|
code is in threads.xs create |
367
|
|
|
|
|
|
|
|
368
|
|
|
|
|
|
|
CLONEf_CLONE_HOST |
369
|
|
|
|
|
|
|
This is a win32 thing, it is ignored on unix, it tells perls |
370
|
|
|
|
|
|
|
win32host code (which is c++) to clone itself, this is needed on |
371
|
|
|
|
|
|
|
win32 if you want to run two threads at the same time, |
372
|
|
|
|
|
|
|
if you just want to do some stuff in a separate perl interpreter |
373
|
|
|
|
|
|
|
and then throw it away and return to the original one, |
374
|
|
|
|
|
|
|
you don\'t need to do anything. |
375
|
|
|
|
|
|
|
|
376
|
|
|
|
|
|
|
PerlInterpreter* perl_clone(PerlInterpreter* interp, UV flags)','name' => 'perl_clone'},'sv_setnv' => {'text' => 'Copies a double into the given SV, upgrading first if necessary. |
377
|
|
|
|
|
|
|
Does not handle \'set\' magic. See also C. |
378
|
|
|
|
|
|
|
|
379
|
|
|
|
|
|
|
void sv_setnv(SV* sv, NV num)','name' => 'sv_setnv'},'sv_2nv' => {'text' => 'Return the num value of an SV, doing any necessary string or integer |
380
|
|
|
|
|
|
|
conversion, magic etc. Normally used via the C and C |
381
|
|
|
|
|
|
|
macros. |
382
|
|
|
|
|
|
|
|
383
|
|
|
|
|
|
|
NV sv_2nv(SV* sv)','name' => 'sv_2nv'},'SvSetSV' => {'text' => 'Calls C if dsv is not the same as ssv. May evaluate arguments |
384
|
|
|
|
|
|
|
more than once. |
385
|
|
|
|
|
|
|
|
386
|
|
|
|
|
|
|
void SvSetSV(SV* dsb, SV* ssv)','name' => 'SvSetSV'},'XPUSHp' => {'text' => 'Push a string onto the stack, extending the stack if necessary. The C |
387
|
|
|
|
|
|
|
indicates the length of the string. Handles \'set\' magic. Uses C, so |
388
|
|
|
|
|
|
|
C or C should be called to declare it. Do not call |
389
|
|
|
|
|
|
|
multiple C-oriented macros to return lists from XSUB\'s - see |
390
|
|
|
|
|
|
|
C instead. See also C and C. |
391
|
|
|
|
|
|
|
|
392
|
|
|
|
|
|
|
void XPUSHp(char* str, STRLEN len)','name' => 'XPUSHp'},'sv_utf8_encode' => {'text' => 'Converts the PV of an SV to UTF-8, but then turns the C |
393
|
|
|
|
|
|
|
flag off so that it looks like octets again. |
394
|
|
|
|
|
|
|
|
395
|
|
|
|
|
|
|
void sv_utf8_encode(SV *sv)','name' => 'sv_utf8_encode'},'newHV' => {'text' => 'Creates a new HV. The reference count is set to 1. |
396
|
|
|
|
|
|
|
|
397
|
|
|
|
|
|
|
HV* newHV()','name' => 'newHV'},'strnNE' => {'text' => 'Test two strings to see if they are different. The C parameter |
398
|
|
|
|
|
|
|
indicates the number of bytes to compare. Returns true or false. (A |
399
|
|
|
|
|
|
|
wrapper for C). |
400
|
|
|
|
|
|
|
|
401
|
|
|
|
|
|
|
bool strnNE(char* s1, char* s2, STRLEN len)','name' => 'strnNE'},'strNE' => {'text' => 'Test two strings to see if they are different. Returns true or |
402
|
|
|
|
|
|
|
false. |
403
|
|
|
|
|
|
|
|
404
|
|
|
|
|
|
|
bool strNE(char* s1, char* s2)','name' => 'strNE'},'SvUTF8_on' => {'text' => 'Turn on the UTF-8 status of an SV (the data is not changed, just the flag). |
405
|
|
|
|
|
|
|
Do not use frivolously. |
406
|
|
|
|
|
|
|
|
407
|
|
|
|
|
|
|
void SvUTF8_on(SV *sv)','name' => 'SvUTF8_on'},'sv_setpvn_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
408
|
|
|
|
|
|
|
|
409
|
|
|
|
|
|
|
void sv_setpvn_mg(SV *sv, const char *ptr, STRLEN len)','name' => 'sv_setpvn_mg'},'sv_pvutf8n_force' => {'text' => 'A private implementation of the C macro for compilers |
410
|
|
|
|
|
|
|
which can\'t cope with complex macro expressions. Always use the macro |
411
|
|
|
|
|
|
|
instead. |
412
|
|
|
|
|
|
|
|
413
|
|
|
|
|
|
|
char* sv_pvutf8n_force(SV* sv, STRLEN* lp)','name' => 'sv_pvutf8n_force'},'savepv' => {'text' => 'Perl\'s version of C. Returns a pointer to a newly allocated |
414
|
|
|
|
|
|
|
string which is a duplicate of C. The size of the string is |
415
|
|
|
|
|
|
|
determined by C. The memory allocated for the new string can |
416
|
|
|
|
|
|
|
be freed with the C function. |
417
|
|
|
|
|
|
|
|
418
|
|
|
|
|
|
|
char* savepv(const char* pv)','name' => 'savepv'},'toLOWER' => {'text' => 'Converts the specified character to lowercase. |
419
|
|
|
|
|
|
|
|
420
|
|
|
|
|
|
|
char toLOWER(char ch)','name' => 'toLOWER'},'bytes_from_utf8' => {'text' => 'Converts a string C of length C from UTF-8 into byte encoding. |
421
|
|
|
|
|
|
|
Unlike but like C, returns a pointer to |
422
|
|
|
|
|
|
|
the newly-created string, and updates C to contain the new |
423
|
|
|
|
|
|
|
length. Returns the original string if no conversion occurs, C |
424
|
|
|
|
|
|
|
is unchanged. Do nothing if C points to 0. Sets C to |
425
|
|
|
|
|
|
|
0 if C is converted or contains all 7bit characters. |
426
|
|
|
|
|
|
|
|
427
|
|
|
|
|
|
|
NOTE: this function is experimental and may change or be |
428
|
|
|
|
|
|
|
removed without notice. |
429
|
|
|
|
|
|
|
|
430
|
|
|
|
|
|
|
U8* bytes_from_utf8(U8 *s, STRLEN *len, bool *is_utf8)','name' => 'bytes_from_utf8'},'newAV' => {'text' => 'Creates a new AV. The reference count is set to 1. |
431
|
|
|
|
|
|
|
|
432
|
|
|
|
|
|
|
AV* newAV()','name' => 'newAV'},'POPp' => {'text' => 'Pops a string off the stack. Deprecated. New code should provide |
433
|
|
|
|
|
|
|
a STRLEN n_a and use POPpx. |
434
|
|
|
|
|
|
|
|
435
|
|
|
|
|
|
|
char* POPp','name' => 'POPp'},'HvNAME' => {'text' => 'Returns the package name of a stash. See C, C. |
436
|
|
|
|
|
|
|
|
437
|
|
|
|
|
|
|
char* HvNAME(HV* stash)','name' => 'HvNAME'},'sv_recode_to_utf8' => {'text' => 'The encoding is assumed to be an Encode object, on entry the PV |
438
|
|
|
|
|
|
|
of the sv is assumed to be octets in that encoding, and the sv |
439
|
|
|
|
|
|
|
will be converted into Unicode (and UTF-8). |
440
|
|
|
|
|
|
|
|
441
|
|
|
|
|
|
|
If the sv already is UTF-8 (or if it is not POK), or if the encoding |
442
|
|
|
|
|
|
|
is not a reference, nothing is done to the sv. If the encoding is not |
443
|
|
|
|
|
|
|
an C Encoding object, bad things will happen. |
444
|
|
|
|
|
|
|
(See F and L). |
445
|
|
|
|
|
|
|
|
446
|
|
|
|
|
|
|
The PV of the sv is returned. |
447
|
|
|
|
|
|
|
|
448
|
|
|
|
|
|
|
char* sv_recode_to_utf8(SV* sv, SV *encoding)','name' => 'sv_recode_to_utf8'},'av_make' => {'text' => 'Creates a new AV and populates it with a list of SVs. The SVs are copied |
449
|
|
|
|
|
|
|
into the array, so they may be freed after the call to av_make. The new AV |
450
|
|
|
|
|
|
|
will have a reference count of 1. |
451
|
|
|
|
|
|
|
|
452
|
|
|
|
|
|
|
AV* av_make(I32 size, SV** svp)','name' => 'av_make'},'RETVAL' => {'text' => 'Variable which is setup by C to hold the return value for an |
453
|
|
|
|
|
|
|
XSUB. This is always the proper type for the XSUB. See |
454
|
|
|
|
|
|
|
L. |
455
|
|
|
|
|
|
|
|
456
|
|
|
|
|
|
|
(whatever) RETVAL','name' => 'RETVAL'},'HeSVKEY' => {'text' => 'Returns the key as an C, or C if the hash entry does not |
457
|
|
|
|
|
|
|
contain an C key. |
458
|
|
|
|
|
|
|
|
459
|
|
|
|
|
|
|
SV* HeSVKEY(HE* he)','name' => 'HeSVKEY'},'SvUV' => {'text' => 'Coerces the given SV to an unsigned integer and returns it. See C |
460
|
|
|
|
|
|
|
for a version which guarantees to evaluate sv only once. |
461
|
|
|
|
|
|
|
|
462
|
|
|
|
|
|
|
UV SvUV(SV* sv)','name' => 'SvUV'},'perl_run' => {'text' => 'Tells a Perl interpreter to run. See L. |
463
|
|
|
|
|
|
|
|
464
|
|
|
|
|
|
|
int perl_run(PerlInterpreter* interp)','name' => 'perl_run'},'sv_pvbyten' => {'text' => 'A private implementation of the C macro for compilers |
465
|
|
|
|
|
|
|
which can\'t cope with complex macro expressions. Always use the macro |
466
|
|
|
|
|
|
|
instead. |
467
|
|
|
|
|
|
|
|
468
|
|
|
|
|
|
|
char* sv_pvbyten(SV *sv, STRLEN *len)','name' => 'sv_pvbyten'},'sv_catsv_flags' => {'text' => 'Concatenates the string from SV C onto the end of the string in |
469
|
|
|
|
|
|
|
SV C. Modifies C but not C. If C has C |
470
|
|
|
|
|
|
|
bit set, will C on the SVs if appropriate, else not. C |
471
|
|
|
|
|
|
|
and C are implemented in terms of this function. |
472
|
|
|
|
|
|
|
|
473
|
|
|
|
|
|
|
void sv_catsv_flags(SV* dsv, SV* ssv, I32 flags)','name' => 'sv_catsv_flags'},'Nullav' => {'text' => 'Null AV pointer.','name' => 'Nullav'},'sv_copypv' => {'text' => 'Copies a stringified representation of the source SV into the |
474
|
|
|
|
|
|
|
destination SV. Automatically performs any necessary mg_get and |
475
|
|
|
|
|
|
|
coercion of numeric values into strings. Guaranteed to preserve |
476
|
|
|
|
|
|
|
UTF-8 flag even from overloaded objects. Similar in nature to |
477
|
|
|
|
|
|
|
sv_2pv[_flags] but operates directly on an SV instead of just the |
478
|
|
|
|
|
|
|
string. Mostly uses sv_2pv_flags to do its work, except when that |
479
|
|
|
|
|
|
|
would lose the UTF-8\'ness of the PV. |
480
|
|
|
|
|
|
|
|
481
|
|
|
|
|
|
|
void sv_copypv(SV* dsv, SV* ssv)','name' => 'sv_copypv'},'sv_pv' => {'text' => 'Use the C macro instead |
482
|
|
|
|
|
|
|
|
483
|
|
|
|
|
|
|
char* sv_pv(SV *sv)','name' => 'sv_pv'},'SvPVutf8_nolen' => {'text' => 'Like C, but converts sv to utf8 first if necessary. |
484
|
|
|
|
|
|
|
|
485
|
|
|
|
|
|
|
char* SvPVutf8_nolen(SV* sv)','name' => 'SvPVutf8_nolen'},'sv_setpviv' => {'text' => 'Copies an integer into the given SV, also updating its string value. |
486
|
|
|
|
|
|
|
Does not handle \'set\' magic. See C. |
487
|
|
|
|
|
|
|
|
488
|
|
|
|
|
|
|
void sv_setpviv(SV* sv, IV num)','name' => 'sv_setpviv'},'sv_setnv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
489
|
|
|
|
|
|
|
|
490
|
|
|
|
|
|
|
void sv_setnv_mg(SV *sv, NV num)','name' => 'sv_setnv_mg'},'sv_true' => {'text' => 'Returns true if the SV has a true value by Perl\'s rules. |
491
|
|
|
|
|
|
|
Use the C macro instead, which may call C or may |
492
|
|
|
|
|
|
|
instead use an in-line version. |
493
|
|
|
|
|
|
|
|
494
|
|
|
|
|
|
|
I32 sv_true(SV *sv)','name' => 'sv_true'},'hv_iternextsv' => {'text' => 'Performs an C, C, and C in one |
495
|
|
|
|
|
|
|
operation. |
496
|
|
|
|
|
|
|
|
497
|
|
|
|
|
|
|
SV* hv_iternextsv(HV* hv, char** key, I32* retlen)','name' => 'hv_iternextsv'},'utf8_to_bytes' => {'text' => 'Converts a string C of length C from UTF-8 into byte encoding. |
498
|
|
|
|
|
|
|
Unlike C, this over-writes the original string, and |
499
|
|
|
|
|
|
|
updates len to contain the new length. |
500
|
|
|
|
|
|
|
Returns zero on failure, setting C to -1. |
501
|
|
|
|
|
|
|
|
502
|
|
|
|
|
|
|
NOTE: this function is experimental and may change or be |
503
|
|
|
|
|
|
|
removed without notice. |
504
|
|
|
|
|
|
|
|
505
|
|
|
|
|
|
|
U8* utf8_to_bytes(U8 *s, STRLEN *len)','name' => 'utf8_to_bytes'},'sv_pvbyten_force' => {'text' => 'A private implementation of the C macro for compilers |
506
|
|
|
|
|
|
|
which can\'t cope with complex macro expressions. Always use the macro |
507
|
|
|
|
|
|
|
instead. |
508
|
|
|
|
|
|
|
|
509
|
|
|
|
|
|
|
char* sv_pvbyten_force(SV* sv, STRLEN* lp)','name' => 'sv_pvbyten_force'},'sv_derived_from' => {'text' => 'Returns a boolean indicating whether the SV is derived from the specified |
510
|
|
|
|
|
|
|
class. This is the function that implements C. It works |
511
|
|
|
|
|
|
|
for class names as well as for objects. |
512
|
|
|
|
|
|
|
|
513
|
|
|
|
|
|
|
bool sv_derived_from(SV* sv, const char* name)','name' => 'sv_derived_from'},'SvIOK_on' => {'text' => 'Tells an SV that it is an integer. |
514
|
|
|
|
|
|
|
|
515
|
|
|
|
|
|
|
void SvIOK_on(SV* sv)','name' => 'SvIOK_on'},'sv_cmp_locale' => {'text' => 'Compares the strings in two SVs in a locale-aware manner. Is UTF-8 and |
516
|
|
|
|
|
|
|
\'use bytes\' aware, handles get magic, and will coerce its args to strings |
517
|
|
|
|
|
|
|
if necessary. See also C. See also C. |
518
|
|
|
|
|
|
|
|
519
|
|
|
|
|
|
|
I32 sv_cmp_locale(SV* sv1, SV* sv2)','name' => 'sv_cmp_locale'},'uvuni_to_utf8_flags' => {'text' => 'Adds the UTF-8 representation of the Unicode codepoint C to the end |
520
|
|
|
|
|
|
|
of the string C; C should be have at least C free |
521
|
|
|
|
|
|
|
bytes available. The return value is the pointer to the byte after the |
522
|
|
|
|
|
|
|
end of the new character. In other words, |
523
|
|
|
|
|
|
|
|
524
|
|
|
|
|
|
|
d = uvuni_to_utf8_flags(d, uv, flags); |
525
|
|
|
|
|
|
|
|
526
|
|
|
|
|
|
|
or, in most cases, |
527
|
|
|
|
|
|
|
|
528
|
|
|
|
|
|
|
d = uvuni_to_utf8(d, uv); |
529
|
|
|
|
|
|
|
|
530
|
|
|
|
|
|
|
(which is equivalent to) |
531
|
|
|
|
|
|
|
|
532
|
|
|
|
|
|
|
d = uvuni_to_utf8_flags(d, uv, 0); |
533
|
|
|
|
|
|
|
|
534
|
|
|
|
|
|
|
is the recommended Unicode-aware way of saying |
535
|
|
|
|
|
|
|
|
536
|
|
|
|
|
|
|
*(d++) = uv; |
537
|
|
|
|
|
|
|
|
538
|
|
|
|
|
|
|
U8* uvuni_to_utf8_flags(U8 *d, UV uv, UV flags)','name' => 'uvuni_to_utf8_flags'},'XST_mIV' => {'text' => 'Place an integer into the specified position C on the stack. The |
539
|
|
|
|
|
|
|
value is stored in a new mortal SV. |
540
|
|
|
|
|
|
|
|
541
|
|
|
|
|
|
|
void XST_mIV(int pos, IV iv)','name' => 'XST_mIV'},'hv_exists' => {'text' => 'Returns a boolean indicating whether the specified hash key exists. The |
542
|
|
|
|
|
|
|
C is the length of the key. |
543
|
|
|
|
|
|
|
|
544
|
|
|
|
|
|
|
bool hv_exists(HV* tb, const char* key, I32 klen)','name' => 'hv_exists'},'dSP' => {'text' => 'Declares a local copy of perl\'s stack pointer for the XSUB, available via |
545
|
|
|
|
|
|
|
the C macro. See C. |
546
|
|
|
|
|
|
|
|
547
|
|
|
|
|
|
|
dSP;','name' => 'dSP'},'G_DISCARD' => {'text' => 'Indicates that arguments returned from a callback should be discarded. See |
548
|
|
|
|
|
|
|
L.','name' => 'G_DISCARD'},'Nullsv' => {'text' => 'Null SV pointer.','name' => 'Nullsv'},'mg_length' => {'text' => 'Report on the SV\'s length. See C. |
549
|
|
|
|
|
|
|
|
550
|
|
|
|
|
|
|
U32 mg_length(SV* sv)','name' => 'mg_length'},'GvSV' => {'text' => 'Return the SV from the GV. |
551
|
|
|
|
|
|
|
|
552
|
|
|
|
|
|
|
SV* GvSV(GV* gv)','name' => 'GvSV'},'SvPVX' => {'text' => 'Returns a pointer to the physical string in the SV. The SV must contain a |
553
|
|
|
|
|
|
|
string. |
554
|
|
|
|
|
|
|
|
555
|
|
|
|
|
|
|
char* SvPVX(SV* sv)','name' => 'SvPVX'},'XST_mNV' => {'text' => 'Place a double into the specified position C on the stack. The value |
556
|
|
|
|
|
|
|
is stored in a new mortal SV. |
557
|
|
|
|
|
|
|
|
558
|
|
|
|
|
|
|
void XST_mNV(int pos, NV nv)','name' => 'XST_mNV'},'XPUSHi' => {'text' => 'Push an integer onto the stack, extending the stack if necessary. Handles |
559
|
|
|
|
|
|
|
\'set\' magic. Uses C, so C or C should be called to |
560
|
|
|
|
|
|
|
declare it. Do not call multiple C-oriented macros to return lists |
561
|
|
|
|
|
|
|
from XSUB\'s - see C instead. See also C and C. |
562
|
|
|
|
|
|
|
|
563
|
|
|
|
|
|
|
void XPUSHi(IV iv)','name' => 'XPUSHi'},'HEf_SVKEY' => {'text' => 'This flag, used in the length slot of hash entries and magic structures, |
564
|
|
|
|
|
|
|
specifies the structure contains an C pointer where a C pointer |
565
|
|
|
|
|
|
|
is to be expected. (For information only--not to be used).','name' => 'HEf_SVKEY'},'pad_sv' => {'text' => 'Get the value at offset po in the current pad. |
566
|
|
|
|
|
|
|
Use macro PAD_SV instead of calling this function directly. |
567
|
|
|
|
|
|
|
|
568
|
|
|
|
|
|
|
SV* pad_sv(PADOFFSET po)','name' => 'pad_sv'},'POPi' => {'text' => 'Pops an integer off the stack. |
569
|
|
|
|
|
|
|
|
570
|
|
|
|
|
|
|
IV POPi','name' => 'POPi'},'utf8_length' => {'text' => 'Return the length of the UTF-8 char encoded string C in characters. |
571
|
|
|
|
|
|
|
Stops at C (inclusive). If C s> or if the scan would end |
572
|
|
|
|
|
|
|
up past C, croaks. |
573
|
|
|
|
|
|
|
|
574
|
|
|
|
|
|
|
STRLEN utf8_length(U8* s, U8 *e)','name' => 'utf8_length'},'SvPVutf8_force' => {'text' => 'Like C, but converts sv to utf8 first if necessary. |
575
|
|
|
|
|
|
|
|
576
|
|
|
|
|
|
|
char* SvPVutf8_force(SV* sv, STRLEN len)','name' => 'SvPVutf8_force'},'sv_2pvutf8_nolen' => {'text' => 'Return a pointer to the UTF-8-encoded representation of the SV. |
577
|
|
|
|
|
|
|
May cause the SV to be upgraded to UTF-8 as a side-effect. |
578
|
|
|
|
|
|
|
|
579
|
|
|
|
|
|
|
Usually accessed via the C macro. |
580
|
|
|
|
|
|
|
|
581
|
|
|
|
|
|
|
char* sv_2pvutf8_nolen(SV* sv)','name' => 'sv_2pvutf8_nolen'},'SvTAINTED_on' => {'text' => 'Marks an SV as tainted if tainting is enabled. |
582
|
|
|
|
|
|
|
|
583
|
|
|
|
|
|
|
void SvTAINTED_on(SV* sv)','name' => 'SvTAINTED_on'},'SvIOK_only_UV' => {'text' => 'Tells and SV that it is an unsigned integer and disables all other OK bits. |
584
|
|
|
|
|
|
|
|
585
|
|
|
|
|
|
|
void SvIOK_only_UV(SV* sv)','name' => 'SvIOK_only_UV'},'SVt_NV' => {'text' => 'Double type flag for scalars. See C.','name' => 'SVt_NV'},'sv_nolocking' => {'text' => 'Dummy routine which "locks" an SV when there is no locking module present. |
586
|
|
|
|
|
|
|
Exists to avoid test for a NULL function pointer and because it could potentially warn under |
587
|
|
|
|
|
|
|
some level of strict-ness. |
588
|
|
|
|
|
|
|
|
589
|
|
|
|
|
|
|
void sv_nolocking(SV *)','name' => 'sv_nolocking'},'sv_vcatpvfn' => {'text' => 'Processes its arguments like C and appends the formatted output |
590
|
|
|
|
|
|
|
to an SV. Uses an array of SVs if the C style variable argument list is |
591
|
|
|
|
|
|
|
missing (NULL). When running with taint checks enabled, indicates via |
592
|
|
|
|
|
|
|
C if results are untrustworthy (often due to the use of |
593
|
|
|
|
|
|
|
locales). |
594
|
|
|
|
|
|
|
|
595
|
|
|
|
|
|
|
Usually used via one of its frontends C and C. |
596
|
|
|
|
|
|
|
|
597
|
|
|
|
|
|
|
void sv_vcatpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)','name' => 'sv_vcatpvfn'},'SvPVbytex' => {'text' => 'Like C, but converts sv to byte representation first if necessary. |
598
|
|
|
|
|
|
|
Guarantees to evaluate sv only once; use the more efficient C |
599
|
|
|
|
|
|
|
otherwise. |
600
|
|
|
|
|
|
|
|
601
|
|
|
|
|
|
|
char* SvPVbytex(SV* sv, STRLEN len)','name' => 'SvPVbytex'},'av_store' => {'text' => 'Stores an SV in an array. The array index is specified as C. The |
602
|
|
|
|
|
|
|
return value will be NULL if the operation failed or if the value did not |
603
|
|
|
|
|
|
|
need to be actually stored within the array (as in the case of tied |
604
|
|
|
|
|
|
|
arrays). Otherwise it can be dereferenced to get the original C. Note |
605
|
|
|
|
|
|
|
that the caller is responsible for suitably incrementing the reference |
606
|
|
|
|
|
|
|
count of C before the call, and decrementing it if the function |
607
|
|
|
|
|
|
|
returned NULL. |
608
|
|
|
|
|
|
|
|
609
|
|
|
|
|
|
|
See L for |
610
|
|
|
|
|
|
|
more information on how to use this function on tied arrays. |
611
|
|
|
|
|
|
|
|
612
|
|
|
|
|
|
|
SV** av_store(AV* ar, I32 key, SV* val)','name' => 'av_store'},'sv_2uv' => {'text' => 'Return the unsigned integer value of an SV, doing any necessary string |
613
|
|
|
|
|
|
|
conversion, magic etc. Normally used via the C and C |
614
|
|
|
|
|
|
|
macros. |
615
|
|
|
|
|
|
|
|
616
|
|
|
|
|
|
|
UV sv_2uv(SV* sv)','name' => 'sv_2uv'},'PUSHMARK' => {'text' => 'Opening bracket for arguments on a callback. See C and |
617
|
|
|
|
|
|
|
L. |
618
|
|
|
|
|
|
|
|
619
|
|
|
|
|
|
|
void PUSHMARK(SP)','name' => 'PUSHMARK'},'ST' => {'text' => 'Used to access elements on the XSUB\'s stack. |
620
|
|
|
|
|
|
|
|
621
|
|
|
|
|
|
|
SV* ST(int ix)','name' => 'ST'},'strLT' => {'text' => 'Test two strings to see if the first, C, is less than the second, |
622
|
|
|
|
|
|
|
C. Returns true or false. |
623
|
|
|
|
|
|
|
|
624
|
|
|
|
|
|
|
bool strLT(char* s1, char* s2)','name' => 'strLT'},'sv_pvutf8n' => {'text' => 'A private implementation of the C macro for compilers |
625
|
|
|
|
|
|
|
which can\'t cope with complex macro expressions. Always use the macro |
626
|
|
|
|
|
|
|
instead. |
627
|
|
|
|
|
|
|
|
628
|
|
|
|
|
|
|
char* sv_pvutf8n(SV *sv, STRLEN *len)','name' => 'sv_pvutf8n'},'call_pv' => {'text' => 'Performs a callback to the specified Perl sub. See L. |
629
|
|
|
|
|
|
|
|
630
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
631
|
|
|
|
|
|
|
|
632
|
|
|
|
|
|
|
I32 call_pv(const char* sub_name, I32 flags)','name' => 'call_pv'},'av_shift' => {'text' => 'Shifts an SV off the beginning of the array. |
633
|
|
|
|
|
|
|
|
634
|
|
|
|
|
|
|
SV* av_shift(AV* ar)','name' => 'av_shift'},'newSV' => {'text' => 'Create a new null SV, or if len > 0, create a new empty SVt_PV type SV |
635
|
|
|
|
|
|
|
with an initial PV allocation of len+1. Normally accessed via the C |
636
|
|
|
|
|
|
|
macro. |
637
|
|
|
|
|
|
|
|
638
|
|
|
|
|
|
|
SV* newSV(STRLEN len)','name' => 'newSV'},'av_fetch' => {'text' => 'Returns the SV at the specified index in the array. The C is the |
639
|
|
|
|
|
|
|
index. If C is set then the fetch will be part of a store. Check |
640
|
|
|
|
|
|
|
that the return value is non-null before dereferencing it to a C. |
641
|
|
|
|
|
|
|
|
642
|
|
|
|
|
|
|
See L for |
643
|
|
|
|
|
|
|
more information on how to use this function on tied arrays. |
644
|
|
|
|
|
|
|
|
645
|
|
|
|
|
|
|
SV** av_fetch(AV* ar, I32 key, I32 lval)','name' => 'av_fetch'},'SvNOK_only' => {'text' => 'Tells an SV that it is a double and disables all other OK bits. |
646
|
|
|
|
|
|
|
|
647
|
|
|
|
|
|
|
void SvNOK_only(SV* sv)','name' => 'SvNOK_only'},'gv_fetchmeth_autoload' => {'text' => 'Same as gv_fetchmeth(), but looks for autoloaded subroutines too. |
648
|
|
|
|
|
|
|
Returns a glob for the subroutine. |
649
|
|
|
|
|
|
|
|
650
|
|
|
|
|
|
|
For an autoloaded subroutine without a GV, will create a GV even |
651
|
|
|
|
|
|
|
if C. For an autoloaded subroutine without a stub, GvCV() |
652
|
|
|
|
|
|
|
of the result may be zero. |
653
|
|
|
|
|
|
|
|
654
|
|
|
|
|
|
|
GV* gv_fetchmeth_autoload(HV* stash, const char* name, STRLEN len, I32 level)','name' => 'gv_fetchmeth_autoload'},'sv_2pvutf8' => {'text' => 'Return a pointer to the UTF-8-encoded representation of the SV, and set *lp |
655
|
|
|
|
|
|
|
to its length. May cause the SV to be upgraded to UTF-8 as a side-effect. |
656
|
|
|
|
|
|
|
|
657
|
|
|
|
|
|
|
Usually accessed via the C macro. |
658
|
|
|
|
|
|
|
|
659
|
|
|
|
|
|
|
char* sv_2pvutf8(SV* sv, STRLEN* lp)','name' => 'sv_2pvutf8'},'sv_nounlocking' => {'text' => 'Dummy routine which "unlocks" an SV when there is no locking module present. |
660
|
|
|
|
|
|
|
Exists to avoid test for a NULL function pointer and because it could potentially warn under |
661
|
|
|
|
|
|
|
some level of strict-ness. |
662
|
|
|
|
|
|
|
|
663
|
|
|
|
|
|
|
void sv_nounlocking(SV *)','name' => 'sv_nounlocking'},'dITEMS' => {'text' => 'Sets up the C variable. |
664
|
|
|
|
|
|
|
This is usually handled automatically by C by calling C. |
665
|
|
|
|
|
|
|
|
666
|
|
|
|
|
|
|
dITEMS;','name' => 'dITEMS'},'hv_iterval' => {'text' => 'Returns the value from the current position of the hash iterator. See |
667
|
|
|
|
|
|
|
C. |
668
|
|
|
|
|
|
|
|
669
|
|
|
|
|
|
|
SV* hv_iterval(HV* tb, HE* entry)','name' => 'hv_iterval'},'sv_reftype' => {'text' => 'Returns a string describing what the SV is a reference to. |
670
|
|
|
|
|
|
|
|
671
|
|
|
|
|
|
|
char* sv_reftype(SV* sv, int ob)','name' => 'sv_reftype'},'sv_pos_b2u' => {'text' => 'Converts the value pointed to by offsetp from a count of bytes from the |
672
|
|
|
|
|
|
|
start of the string, to a count of the equivalent number of UTF-8 chars. |
673
|
|
|
|
|
|
|
Handles magic and type coercion. |
674
|
|
|
|
|
|
|
|
675
|
|
|
|
|
|
|
void sv_pos_b2u(SV* sv, I32* offsetp)','name' => 'sv_pos_b2u'},'SVt_IV' => {'text' => 'Integer type flag for scalars. See C.','name' => 'SVt_IV'},'av_len' => {'text' => 'Returns the highest index in the array. Returns -1 if the array is |
676
|
|
|
|
|
|
|
empty. |
677
|
|
|
|
|
|
|
|
678
|
|
|
|
|
|
|
I32 av_len(AV* ar)','name' => 'av_len'},'SvIsCOW' => {'text' => 'Returns a boolean indicating whether the SV is Copy-On-Write. (either shared |
679
|
|
|
|
|
|
|
hash key scalars, or full Copy On Write scalars if 5.9.0 is configured for |
680
|
|
|
|
|
|
|
COW) |
681
|
|
|
|
|
|
|
|
682
|
|
|
|
|
|
|
bool SvIsCOW(SV* sv)','name' => 'SvIsCOW'},'sv_unmagic' => {'text' => 'Removes all magic of type C from an SV. |
683
|
|
|
|
|
|
|
|
684
|
|
|
|
|
|
|
int sv_unmagic(SV* sv, int type)','name' => 'sv_unmagic'},'sv_setiv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
685
|
|
|
|
|
|
|
|
686
|
|
|
|
|
|
|
void sv_setiv_mg(SV *sv, IV i)','name' => 'sv_setiv_mg'},'sv_catsv' => {'text' => 'Concatenates the string from SV C onto the end of the string in |
687
|
|
|
|
|
|
|
SV C. Modifies C but not C. Handles \'get\' magic, but |
688
|
|
|
|
|
|
|
not \'set\' magic. See C. |
689
|
|
|
|
|
|
|
|
690
|
|
|
|
|
|
|
void sv_catsv(SV* dsv, SV* ssv)','name' => 'sv_catsv'},'SvTAINT' => {'text' => 'Taints an SV if tainting is enabled. |
691
|
|
|
|
|
|
|
|
692
|
|
|
|
|
|
|
void SvTAINT(SV* sv)','name' => 'SvTAINT'},'PUTBACK' => {'text' => 'Closing bracket for XSUB arguments. This is usually handled by C. |
693
|
|
|
|
|
|
|
See C and L for other uses. |
694
|
|
|
|
|
|
|
|
695
|
|
|
|
|
|
|
PUTBACK;','name' => 'PUTBACK'},'SvPOK_on' => {'text' => 'Tells an SV that it is a string. |
696
|
|
|
|
|
|
|
|
697
|
|
|
|
|
|
|
void SvPOK_on(SV* sv)','name' => 'SvPOK_on'},'ax' => {'text' => 'Variable which is setup by C to indicate the stack base offset, |
698
|
|
|
|
|
|
|
used by the C, C and C macros. The C macro |
699
|
|
|
|
|
|
|
must be called prior to setup the C variable. |
700
|
|
|
|
|
|
|
|
701
|
|
|
|
|
|
|
I32 ax','name' => 'ax'},'mg_clear' => {'text' => 'Clear something magical that the SV represents. See C. |
702
|
|
|
|
|
|
|
|
703
|
|
|
|
|
|
|
int mg_clear(SV* sv)','name' => 'mg_clear'},'SvCUR_set' => {'text' => 'Set the length of the string which is in the SV. See C. |
704
|
|
|
|
|
|
|
|
705
|
|
|
|
|
|
|
void SvCUR_set(SV* sv, STRLEN len)','name' => 'SvCUR_set'},'to_utf8_fold' => {'text' => 'Convert the UTF-8 encoded character at p to its foldcase version and |
706
|
|
|
|
|
|
|
store that in UTF-8 in ustrp and its length in bytes in lenp. Note |
707
|
|
|
|
|
|
|
that the ustrp needs to be at least UTF8_MAXLEN_FOLD+1 bytes since the |
708
|
|
|
|
|
|
|
foldcase version may be longer than the original character (up to |
709
|
|
|
|
|
|
|
three characters). |
710
|
|
|
|
|
|
|
|
711
|
|
|
|
|
|
|
The first character of the foldcased version is returned |
712
|
|
|
|
|
|
|
(but note, as explained above, that there may be more.) |
713
|
|
|
|
|
|
|
|
714
|
|
|
|
|
|
|
UV to_utf8_fold(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_fold'},'to_utf8_upper' => {'text' => 'Convert the UTF-8 encoded character at p to its uppercase version and |
715
|
|
|
|
|
|
|
store that in UTF-8 in ustrp and its length in bytes in lenp. Note |
716
|
|
|
|
|
|
|
that the ustrp needs to be at least UTF8_MAXLEN_UCLC+1 bytes since the |
717
|
|
|
|
|
|
|
uppercase version may be longer than the original character (up to two |
718
|
|
|
|
|
|
|
characters). |
719
|
|
|
|
|
|
|
|
720
|
|
|
|
|
|
|
The first character of the uppercased version is returned |
721
|
|
|
|
|
|
|
(but note, as explained above, that there may be more.) |
722
|
|
|
|
|
|
|
|
723
|
|
|
|
|
|
|
UV to_utf8_upper(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_upper'},'SvNOK' => {'text' => 'Returns a boolean indicating whether the SV contains a double. |
724
|
|
|
|
|
|
|
|
725
|
|
|
|
|
|
|
bool SvNOK(SV* sv)','name' => 'SvNOK'},'mPUSHn' => {'text' => 'Push a double onto the stack. The stack must have room for this element. |
726
|
|
|
|
|
|
|
Handles \'set\' magic. Does not use C. See also C, C |
727
|
|
|
|
|
|
|
and C. |
728
|
|
|
|
|
|
|
|
729
|
|
|
|
|
|
|
void mPUSHn(NV nv)','name' => 'mPUSHn'},'gv_stashpv' => {'text' => 'Returns a pointer to the stash for a specified package. C should |
730
|
|
|
|
|
|
|
be a valid UTF-8 string. If C is set then the package will be |
731
|
|
|
|
|
|
|
created if it does not already exist. If C is not set and the |
732
|
|
|
|
|
|
|
package does not exist then NULL is returned. |
733
|
|
|
|
|
|
|
|
734
|
|
|
|
|
|
|
HV* gv_stashpv(const char* name, I32 create)','name' => 'gv_stashpv'},'G_SCALAR' => {'text' => 'Used to indicate scalar context. See C, C, and |
735
|
|
|
|
|
|
|
L.','name' => 'G_SCALAR'},'SvPVutf8x_force' => {'text' => 'Like C, but converts sv to utf8 first if necessary. |
736
|
|
|
|
|
|
|
Guarantees to evaluate sv only once; use the more efficient C |
737
|
|
|
|
|
|
|
otherwise. |
738
|
|
|
|
|
|
|
|
739
|
|
|
|
|
|
|
char* SvPVutf8x_force(SV* sv, STRLEN len)','name' => 'SvPVutf8x_force'},'PUSHi' => {'text' => 'Push an integer onto the stack. The stack must have room for this element. |
740
|
|
|
|
|
|
|
Handles \'set\' magic. Uses C, so C or C should be |
741
|
|
|
|
|
|
|
called to declare it. Do not call multiple C-oriented macros to |
742
|
|
|
|
|
|
|
return lists from XSUB\'s - see C instead. See also C and |
743
|
|
|
|
|
|
|
C. |
744
|
|
|
|
|
|
|
|
745
|
|
|
|
|
|
|
void PUSHi(IV iv)','name' => 'PUSHi'},'sv_reset' => {'text' => 'Underlying implementation for the C Perl function. |
746
|
|
|
|
|
|
|
Note that the perl-level function is vaguely deprecated. |
747
|
|
|
|
|
|
|
|
748
|
|
|
|
|
|
|
void sv_reset(char* s, HV* stash)','name' => 'sv_reset'},'mXPUSHu' => {'text' => 'Push an unsigned integer onto the stack, extending the stack if necessary. |
749
|
|
|
|
|
|
|
Handles \'set\' magic. Does not use C. See also C, C |
750
|
|
|
|
|
|
|
and C. |
751
|
|
|
|
|
|
|
|
752
|
|
|
|
|
|
|
void mXPUSHu(UV uv)','name' => 'mXPUSHu'},'hv_exists_ent' => {'text' => 'Returns a boolean indicating whether the specified hash key exists. C |
753
|
|
|
|
|
|
|
can be a valid precomputed hash value, or 0 to ask for it to be |
754
|
|
|
|
|
|
|
computed. |
755
|
|
|
|
|
|
|
|
756
|
|
|
|
|
|
|
bool hv_exists_ent(HV* tb, SV* key, U32 hash)','name' => 'hv_exists_ent'},'to_utf8_lower' => {'text' => 'Convert the UTF-8 encoded character at p to its lowercase version and |
757
|
|
|
|
|
|
|
store that in UTF-8 in ustrp and its length in bytes in lenp. Note |
758
|
|
|
|
|
|
|
that the ustrp needs to be at least UTF8_MAXLEN_UCLC+1 bytes since the |
759
|
|
|
|
|
|
|
lowercase version may be longer than the original character (up to two |
760
|
|
|
|
|
|
|
characters). |
761
|
|
|
|
|
|
|
|
762
|
|
|
|
|
|
|
The first character of the lowercased version is returned |
763
|
|
|
|
|
|
|
(but note, as explained above, that there may be more.) |
764
|
|
|
|
|
|
|
|
765
|
|
|
|
|
|
|
UV to_utf8_lower(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_lower'},'SvNIOK' => {'text' => 'Returns a boolean indicating whether the SV contains a number, integer or |
766
|
|
|
|
|
|
|
double. |
767
|
|
|
|
|
|
|
|
768
|
|
|
|
|
|
|
bool SvNIOK(SV* sv)','name' => 'SvNIOK'},'sv_2pv_flags' => {'text' => 'Returns a pointer to the string value of an SV, and sets *lp to its length. |
769
|
|
|
|
|
|
|
If flags includes SV_GMAGIC, does an mg_get() first. Coerces sv to a string |
770
|
|
|
|
|
|
|
if necessary. |
771
|
|
|
|
|
|
|
Normally invoked via the C macro. C and C |
772
|
|
|
|
|
|
|
usually end up here too. |
773
|
|
|
|
|
|
|
|
774
|
|
|
|
|
|
|
char* sv_2pv_flags(SV* sv, STRLEN* lp, I32 flags)','name' => 'sv_2pv_flags'},'SvTAINTED_off' => {'text' => 'Untaints an SV. Be I careful with this routine, as it short-circuits |
775
|
|
|
|
|
|
|
some of Perl\'s fundamental security features. XS module authors should not |
776
|
|
|
|
|
|
|
use this function unless they fully understand all the implications of |
777
|
|
|
|
|
|
|
unconditionally untainting the value. Untainting should be done in the |
778
|
|
|
|
|
|
|
standard perl fashion, via a carefully crafted regexp, rather than directly |
779
|
|
|
|
|
|
|
untainting variables. |
780
|
|
|
|
|
|
|
|
781
|
|
|
|
|
|
|
void SvTAINTED_off(SV* sv)','name' => 'SvTAINTED_off'},'SvNVx' => {'text' => 'Coerces the given SV to a double and returns it. Guarantees to evaluate |
782
|
|
|
|
|
|
|
sv only once. Use the more efficient C otherwise. |
783
|
|
|
|
|
|
|
|
784
|
|
|
|
|
|
|
NV SvNVx(SV* sv)','name' => 'SvNVx'},'unpack_str' => {'text' => 'The engine implementing unpack() Perl function. Note: parameters strbeg, new_s |
785
|
|
|
|
|
|
|
and ocnt are not used. This call should not be used, use unpackstring instead. |
786
|
|
|
|
|
|
|
|
787
|
|
|
|
|
|
|
I32 unpack_str(char *pat, char *patend, char *s, char *strbeg, char *strend, char **new_s, I32 ocnt, U32 flags)','name' => 'unpack_str'},'newSVpvf' => {'text' => 'Creates a new SV and initializes it with the string formatted like |
788
|
|
|
|
|
|
|
C. |
789
|
|
|
|
|
|
|
|
790
|
|
|
|
|
|
|
SV* newSVpvf(const char* pat, ...)','name' => 'newSVpvf'},'require_pv' => {'text' => 'Tells Perl to C the file named by the string argument. It is |
791
|
|
|
|
|
|
|
analogous to the Perl code C. It\'s even |
792
|
|
|
|
|
|
|
implemented that way; consider using load_module instead. |
793
|
|
|
|
|
|
|
|
794
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
795
|
|
|
|
|
|
|
|
796
|
|
|
|
|
|
|
void require_pv(const char* pv)','name' => 'require_pv'},'sv_upgrade' => {'text' => 'Upgrade an SV to a more complex form. Generally adds a new body type to the |
797
|
|
|
|
|
|
|
SV, then copies across as much information as possible from the old body. |
798
|
|
|
|
|
|
|
You generally want to use the C macro wrapper. See also C. |
799
|
|
|
|
|
|
|
|
800
|
|
|
|
|
|
|
bool sv_upgrade(SV* sv, U32 mt)','name' => 'sv_upgrade'},'strEQ' => {'text' => 'Test two strings to see if they are equal. Returns true or false. |
801
|
|
|
|
|
|
|
|
802
|
|
|
|
|
|
|
bool strEQ(char* s1, char* s2)','name' => 'strEQ'},'sv_newref' => {'text' => 'Increment an SV\'s reference count. Use the C wrapper |
803
|
|
|
|
|
|
|
instead. |
804
|
|
|
|
|
|
|
|
805
|
|
|
|
|
|
|
SV* sv_newref(SV* sv)','name' => 'sv_newref'},'hv_store' => {'text' => 'Stores an SV in a hash. The hash key is specified as C and C is |
806
|
|
|
|
|
|
|
the length of the key. The C parameter is the precomputed hash |
807
|
|
|
|
|
|
|
value; if it is zero then Perl will compute it. The return value will be |
808
|
|
|
|
|
|
|
NULL if the operation failed or if the value did not need to be actually |
809
|
|
|
|
|
|
|
stored within the hash (as in the case of tied hashes). Otherwise it can |
810
|
|
|
|
|
|
|
be dereferenced to get the original C. Note that the caller is |
811
|
|
|
|
|
|
|
responsible for suitably incrementing the reference count of C before |
812
|
|
|
|
|
|
|
the call, and decrementing it if the function returned NULL. Effectively |
813
|
|
|
|
|
|
|
a successful hv_store takes ownership of one reference to C. This is |
814
|
|
|
|
|
|
|
usually what you want; a newly created SV has a reference count of one, so |
815
|
|
|
|
|
|
|
if all your code does is create SVs then store them in a hash, hv_store |
816
|
|
|
|
|
|
|
will own the only reference to the new SV, and your code doesn\'t need to do |
817
|
|
|
|
|
|
|
anything further to tidy up. hv_store is not implemented as a call to |
818
|
|
|
|
|
|
|
hv_store_ent, and does not create a temporary SV for the key, so if your |
819
|
|
|
|
|
|
|
key data is not already in SV form then use hv_store in preference to |
820
|
|
|
|
|
|
|
hv_store_ent. |
821
|
|
|
|
|
|
|
|
822
|
|
|
|
|
|
|
See L for more |
823
|
|
|
|
|
|
|
information on how to use this function on tied hashes. |
824
|
|
|
|
|
|
|
|
825
|
|
|
|
|
|
|
SV** hv_store(HV* tb, const char* key, I32 klen, SV* val, U32 hash)','name' => 'hv_store'},'SvIVX' => {'text' => 'Returns the raw value in the SV\'s IV slot, without checks or conversions. |
826
|
|
|
|
|
|
|
Only use when you are sure SvIOK is true. See also C. |
827
|
|
|
|
|
|
|
|
828
|
|
|
|
|
|
|
IV SvIVX(SV* sv)','name' => 'SvIVX'},'XSRETURN_IV' => {'text' => 'Return an integer from an XSUB immediately. Uses C. |
829
|
|
|
|
|
|
|
|
830
|
|
|
|
|
|
|
void XSRETURN_IV(IV iv)','name' => 'XSRETURN_IV'},'perl_destruct' => {'text' => 'Shuts down a Perl interpreter. See L. |
831
|
|
|
|
|
|
|
|
832
|
|
|
|
|
|
|
int perl_destruct(PerlInterpreter* interp)','name' => 'perl_destruct'},'sv_uni_display' => {'text' => 'Build to the scalar dsv a displayable version of the scalar sv, |
833
|
|
|
|
|
|
|
the displayable version being at most pvlim bytes long |
834
|
|
|
|
|
|
|
(if longer, the rest is truncated and "..." will be appended). |
835
|
|
|
|
|
|
|
|
836
|
|
|
|
|
|
|
The flags argument is as in pv_uni_display(). |
837
|
|
|
|
|
|
|
|
838
|
|
|
|
|
|
|
The pointer to the PV of the dsv is returned. |
839
|
|
|
|
|
|
|
|
840
|
|
|
|
|
|
|
char* sv_uni_display(SV *dsv, SV *ssv, STRLEN pvlim, UV flags)','name' => 'sv_uni_display'},'isUPPER' => {'text' => 'Returns a boolean indicating whether the C C is an uppercase |
841
|
|
|
|
|
|
|
character. |
842
|
|
|
|
|
|
|
|
843
|
|
|
|
|
|
|
bool isUPPER(char ch)','name' => 'isUPPER'},'SvREFCNT_dec' => {'text' => 'Decrements the reference count of the given SV. |
844
|
|
|
|
|
|
|
|
845
|
|
|
|
|
|
|
void SvREFCNT_dec(SV* sv)','name' => 'SvREFCNT_dec'},'sv_setsv' => {'text' => 'Copies the contents of the source SV C into the destination SV |
846
|
|
|
|
|
|
|
C. The source SV may be destroyed if it is mortal, so don\'t use this |
847
|
|
|
|
|
|
|
function if the source SV needs to be reused. Does not handle \'set\' magic. |
848
|
|
|
|
|
|
|
Loosely speaking, it performs a copy-by-value, obliterating any previous |
849
|
|
|
|
|
|
|
content of the destination. |
850
|
|
|
|
|
|
|
|
851
|
|
|
|
|
|
|
You probably want to use one of the assortment of wrappers, such as |
852
|
|
|
|
|
|
|
C, C, C and |
853
|
|
|
|
|
|
|
C. |
854
|
|
|
|
|
|
|
|
855
|
|
|
|
|
|
|
void sv_setsv(SV* dsv, SV* ssv)','name' => 'sv_setsv'},'SvIOK_off' => {'text' => 'Unsets the IV status of an SV. |
856
|
|
|
|
|
|
|
|
857
|
|
|
|
|
|
|
void SvIOK_off(SV* sv)','name' => 'SvIOK_off'},'XST_mYES' => {'text' => 'Place C<&PL_sv_yes> into the specified position C on the |
858
|
|
|
|
|
|
|
stack. |
859
|
|
|
|
|
|
|
|
860
|
|
|
|
|
|
|
void XST_mYES(int pos)','name' => 'XST_mYES'},'POPs' => {'text' => 'Pops an SV off the stack. |
861
|
|
|
|
|
|
|
|
862
|
|
|
|
|
|
|
SV* POPs','name' => 'POPs'},'SvNV' => {'text' => 'Coerce the given SV to a double and return it. See C for a version |
863
|
|
|
|
|
|
|
which guarantees to evaluate sv only once. |
864
|
|
|
|
|
|
|
|
865
|
|
|
|
|
|
|
NV SvNV(SV* sv)','name' => 'SvNV'},'packlist' => {'text' => 'The engine implementing pack() Perl function. |
866
|
|
|
|
|
|
|
|
867
|
|
|
|
|
|
|
void packlist(SV *cat, char *pat, char *patend, SV **beglist, SV **endlist)','name' => 'packlist'},'SvUTF8' => {'text' => 'Returns a boolean indicating whether the SV contains UTF-8 encoded data. |
868
|
|
|
|
|
|
|
|
869
|
|
|
|
|
|
|
bool SvUTF8(SV* sv)','name' => 'SvUTF8'},'gv_fetchmethod_autoload' => {'text' => 'Returns the glob which contains the subroutine to call to invoke the method |
870
|
|
|
|
|
|
|
on the C. In fact in the presence of autoloading this may be the |
871
|
|
|
|
|
|
|
glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is |
872
|
|
|
|
|
|
|
already setup. |
873
|
|
|
|
|
|
|
|
874
|
|
|
|
|
|
|
The third parameter of C determines whether |
875
|
|
|
|
|
|
|
AUTOLOAD lookup is performed if the given method is not present: non-zero |
876
|
|
|
|
|
|
|
means yes, look for AUTOLOAD; zero means no, don\'t look for AUTOLOAD. |
877
|
|
|
|
|
|
|
Calling C is equivalent to calling C |
878
|
|
|
|
|
|
|
with a non-zero C parameter. |
879
|
|
|
|
|
|
|
|
880
|
|
|
|
|
|
|
These functions grant C<"SUPER"> token as a prefix of the method name. Note |
881
|
|
|
|
|
|
|
that if you want to keep the returned glob for a long time, you need to |
882
|
|
|
|
|
|
|
check for it being "AUTOLOAD", since at the later time the call may load a |
883
|
|
|
|
|
|
|
different subroutine due to $AUTOLOAD changing its value. Use the glob |
884
|
|
|
|
|
|
|
created via a side effect to do this. |
885
|
|
|
|
|
|
|
|
886
|
|
|
|
|
|
|
These functions have the same side-effects and as C with |
887
|
|
|
|
|
|
|
C. C should be writable if contains C<\':\'> or C<\' |
888
|
|
|
|
|
|
|
\'\'>. The warning against passing the GV returned by C to |
889
|
|
|
|
|
|
|
C apply equally to these functions. |
890
|
|
|
|
|
|
|
|
891
|
|
|
|
|
|
|
GV* gv_fetchmethod_autoload(HV* stash, const char* name, I32 autoload)','name' => 'gv_fetchmethod_autoload'},'sv_setsv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
892
|
|
|
|
|
|
|
|
893
|
|
|
|
|
|
|
void sv_setsv_mg(SV *dstr, SV *sstr)','name' => 'sv_setsv_mg'},'hv_fetch_ent' => {'text' => 'Returns the hash entry which corresponds to the specified key in the hash. |
894
|
|
|
|
|
|
|
C must be a valid precomputed hash number for the given C, or 0 |
895
|
|
|
|
|
|
|
if you want the function to compute it. IF C is set then the fetch |
896
|
|
|
|
|
|
|
will be part of a store. Make sure the return value is non-null before |
897
|
|
|
|
|
|
|
accessing it. The return value when C is a tied hash is a pointer to a |
898
|
|
|
|
|
|
|
static location, so be sure to make a copy of the structure if you need to |
899
|
|
|
|
|
|
|
store it somewhere. |
900
|
|
|
|
|
|
|
|
901
|
|
|
|
|
|
|
See L for more |
902
|
|
|
|
|
|
|
information on how to use this function on tied hashes. |
903
|
|
|
|
|
|
|
|
904
|
|
|
|
|
|
|
HE* hv_fetch_ent(HV* tb, SV* key, I32 lval, U32 hash)','name' => 'hv_fetch_ent'},'isLOWER' => {'text' => 'Returns a boolean indicating whether the C C is a lowercase |
905
|
|
|
|
|
|
|
character. |
906
|
|
|
|
|
|
|
|
907
|
|
|
|
|
|
|
bool isLOWER(char ch)','name' => 'isLOWER'},'ENTER' => {'text' => 'Opening bracket on a callback. See C and L. |
908
|
|
|
|
|
|
|
|
909
|
|
|
|
|
|
|
ENTER;','name' => 'ENTER'},'sv_eq' => {'text' => 'Returns a boolean indicating whether the strings in the two SVs are |
910
|
|
|
|
|
|
|
identical. Is UTF-8 and \'use bytes\' aware, handles get magic, and will |
911
|
|
|
|
|
|
|
coerce its args to strings if necessary. |
912
|
|
|
|
|
|
|
|
913
|
|
|
|
|
|
|
I32 sv_eq(SV* sv1, SV* sv2)','name' => 'sv_eq'},'SvTAINTED' => {'text' => 'Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if |
914
|
|
|
|
|
|
|
not. |
915
|
|
|
|
|
|
|
|
916
|
|
|
|
|
|
|
bool SvTAINTED(SV* sv)','name' => 'SvTAINTED'},'PL_sv_no' => {'text' => 'This is the C SV. See C. Always refer to this as |
917
|
|
|
|
|
|
|
C<&PL_sv_no>. |
918
|
|
|
|
|
|
|
|
919
|
|
|
|
|
|
|
SV PL_sv_no','name' => 'PL_sv_no'},'hv_iterkey' => {'text' => 'Returns the key from the current position of the hash iterator. See |
920
|
|
|
|
|
|
|
C. |
921
|
|
|
|
|
|
|
|
922
|
|
|
|
|
|
|
char* hv_iterkey(HE* entry, I32* retlen)','name' => 'hv_iterkey'},'ix' => {'text' => 'Variable which is setup by C to indicate which of an |
923
|
|
|
|
|
|
|
XSUB\'s aliases was used to invoke it. See L. |
924
|
|
|
|
|
|
|
|
925
|
|
|
|
|
|
|
I32 ix','name' => 'ix'},'SvNOKp' => {'text' => 'Returns a boolean indicating whether the SV contains a double. Checks the |
926
|
|
|
|
|
|
|
B setting. Use C. |
927
|
|
|
|
|
|
|
|
928
|
|
|
|
|
|
|
bool SvNOKp(SV* sv)','name' => 'SvNOKp'},'XSRETURN_UV' => {'text' => 'Return an integer from an XSUB immediately. Uses C. |
929
|
|
|
|
|
|
|
|
930
|
|
|
|
|
|
|
void XSRETURN_UV(IV uv)','name' => 'XSRETURN_UV'},'StructCopy' => {'text' => 'This is an architecture-independent macro to copy one structure to another. |
931
|
|
|
|
|
|
|
|
932
|
|
|
|
|
|
|
void StructCopy(type src, type dest, type)','name' => 'StructCopy'},'cv_undef' => {'text' => 'Clear out all the active components of a CV. This can happen either |
933
|
|
|
|
|
|
|
by an explicit C, or by the reference count going to zero. |
934
|
|
|
|
|
|
|
In the former case, we keep the CvOUTSIDE pointer, so that any anonymous |
935
|
|
|
|
|
|
|
children can still follow the full lexical scope chain. |
936
|
|
|
|
|
|
|
|
937
|
|
|
|
|
|
|
void cv_undef(CV* cv)','name' => 'cv_undef'},'PUSHs' => {'text' => 'Push an SV onto the stack. The stack must have room for this element. |
938
|
|
|
|
|
|
|
Does not handle \'set\' magic. Does not use C. See also C, |
939
|
|
|
|
|
|
|
C and C. |
940
|
|
|
|
|
|
|
|
941
|
|
|
|
|
|
|
void PUSHs(SV* sv)','name' => 'PUSHs'},'sv_setuv' => {'text' => 'Copies an unsigned integer into the given SV, upgrading first if necessary. |
942
|
|
|
|
|
|
|
Does not handle \'set\' magic. See also C. |
943
|
|
|
|
|
|
|
|
944
|
|
|
|
|
|
|
void sv_setuv(SV* sv, UV num)','name' => 'sv_setuv'},'SvUPGRADE' => {'text' => 'Used to upgrade an SV to a more complex form. Uses C to |
945
|
|
|
|
|
|
|
perform the upgrade if necessary. See C. |
946
|
|
|
|
|
|
|
|
947
|
|
|
|
|
|
|
void SvUPGRADE(SV* sv, svtype type)','name' => 'SvUPGRADE'},'utf8_to_uvchr' => {'text' => 'Returns the native character value of the first character in the string C |
948
|
|
|
|
|
|
|
which is assumed to be in UTF-8 encoding; C will be set to the |
949
|
|
|
|
|
|
|
length, in bytes, of that character. |
950
|
|
|
|
|
|
|
|
951
|
|
|
|
|
|
|
If C does not point to a well-formed UTF-8 character, zero is |
952
|
|
|
|
|
|
|
returned and retlen is set, if possible, to -1. |
953
|
|
|
|
|
|
|
|
954
|
|
|
|
|
|
|
UV utf8_to_uvchr(U8 *s, STRLEN* retlen)','name' => 'utf8_to_uvchr'},'nothreadhook' => {'text' => 'Stub that provides thread hook for perl_destruct when there are |
955
|
|
|
|
|
|
|
no threads. |
956
|
|
|
|
|
|
|
|
957
|
|
|
|
|
|
|
int nothreadhook()','name' => 'nothreadhook'},'items' => {'text' => 'Variable which is setup by C to indicate the number of |
958
|
|
|
|
|
|
|
items on the stack. See L. |
959
|
|
|
|
|
|
|
|
960
|
|
|
|
|
|
|
I32 items','name' => 'items'},'bytes_to_utf8' => {'text' => 'Converts a string C of length C from ASCII into UTF-8 encoding. |
961
|
|
|
|
|
|
|
Returns a pointer to the newly-created string, and sets C to |
962
|
|
|
|
|
|
|
reflect the new length. |
963
|
|
|
|
|
|
|
|
964
|
|
|
|
|
|
|
If you want to convert to UTF-8 from other encodings than ASCII, |
965
|
|
|
|
|
|
|
see sv_recode_to_utf8(). |
966
|
|
|
|
|
|
|
|
967
|
|
|
|
|
|
|
NOTE: this function is experimental and may change or be |
968
|
|
|
|
|
|
|
removed without notice. |
969
|
|
|
|
|
|
|
|
970
|
|
|
|
|
|
|
U8* bytes_to_utf8(U8 *s, STRLEN *len)','name' => 'bytes_to_utf8'},'sv_pvn' => {'text' => 'A private implementation of the C macro for compilers which can\'t |
971
|
|
|
|
|
|
|
cope with complex macro expressions. Always use the macro instead. |
972
|
|
|
|
|
|
|
|
973
|
|
|
|
|
|
|
char* sv_pvn(SV *sv, STRLEN *len)','name' => 'sv_pvn'},'SvIsCOW_shared_hash' => {'text' => 'Returns a boolean indicating whether the SV is Copy-On-Write shared hash key |
974
|
|
|
|
|
|
|
scalar. |
975
|
|
|
|
|
|
|
|
976
|
|
|
|
|
|
|
bool SvIsCOW_shared_hash(SV* sv)','name' => 'SvIsCOW_shared_hash'},'XST_mPV' => {'text' => 'Place a copy of a string into the specified position C on the stack. |
977
|
|
|
|
|
|
|
The value is stored in a new mortal SV. |
978
|
|
|
|
|
|
|
|
979
|
|
|
|
|
|
|
void XST_mPV(int pos, char* str)','name' => 'XST_mPV'},'dXSI32' => {'text' => 'Sets up the C variable for an XSUB which has aliases. This is usually |
980
|
|
|
|
|
|
|
handled automatically by C. |
981
|
|
|
|
|
|
|
|
982
|
|
|
|
|
|
|
dXSI32;','name' => 'dXSI32'},'sv_setref_iv' => {'text' => 'Copies an integer into a new SV, optionally blessing the SV. The C |
983
|
|
|
|
|
|
|
argument will be upgraded to an RV. That RV will be modified to point to |
984
|
|
|
|
|
|
|
the new SV. The C argument indicates the package for the |
985
|
|
|
|
|
|
|
blessing. Set C to C to avoid the blessing. The new SV |
986
|
|
|
|
|
|
|
will have a reference count of 1, and the RV will be returned. |
987
|
|
|
|
|
|
|
|
988
|
|
|
|
|
|
|
SV* sv_setref_iv(SV* rv, const char* classname, IV iv)','name' => 'sv_setref_iv'},'sv_chop' => {'text' => 'Efficient removal of characters from the beginning of the string buffer. |
989
|
|
|
|
|
|
|
SvPOK(sv) must be true and the C must be a pointer to somewhere inside |
990
|
|
|
|
|
|
|
the string buffer. The C becomes the first character of the adjusted |
991
|
|
|
|
|
|
|
string. Uses the "OOK hack". |
992
|
|
|
|
|
|
|
Beware: after this function returns, C and SvPVX(sv) may no longer |
993
|
|
|
|
|
|
|
refer to the same chunk of data. |
994
|
|
|
|
|
|
|
|
995
|
|
|
|
|
|
|
void sv_chop(SV* sv, char* ptr)','name' => 'sv_chop'},'SvPVx' => {'text' => 'A version of C which guarantees to evaluate sv only once. |
996
|
|
|
|
|
|
|
|
997
|
|
|
|
|
|
|
char* SvPVx(SV* sv, STRLEN len)','name' => 'SvPVx'},'sv_backoff' => {'text' => 'Remove any string offset. You should normally use the C macro |
998
|
|
|
|
|
|
|
wrapper instead. |
999
|
|
|
|
|
|
|
|
1000
|
|
|
|
|
|
|
int sv_backoff(SV* sv)','name' => 'sv_backoff'},'sv_tainted' => {'text' => 'Test an SV for taintedness. Use C instead. |
1001
|
|
|
|
|
|
|
bool sv_tainted(SV* sv)','name' => 'sv_tainted'},'sv_grow' => {'text' => 'Expands the character buffer in the SV. If necessary, uses C and |
1002
|
|
|
|
|
|
|
upgrades the SV to C. Returns a pointer to the character buffer. |
1003
|
|
|
|
|
|
|
Use the C wrapper instead. |
1004
|
|
|
|
|
|
|
|
1005
|
|
|
|
|
|
|
char* sv_grow(SV* sv, STRLEN newlen)','name' => 'sv_grow'},'XPUSHu' => {'text' => 'Push an unsigned integer onto the stack, extending the stack if necessary. |
1006
|
|
|
|
|
|
|
Handles \'set\' magic. Uses C, so C or C should be |
1007
|
|
|
|
|
|
|
called to declare it. Do not call multiple C-oriented macros to |
1008
|
|
|
|
|
|
|
return lists from XSUB\'s - see C instead. See also C and |
1009
|
|
|
|
|
|
|
C. |
1010
|
|
|
|
|
|
|
|
1011
|
|
|
|
|
|
|
void XPUSHu(UV uv)','name' => 'XPUSHu'},'sv_setuv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
1012
|
|
|
|
|
|
|
|
1013
|
|
|
|
|
|
|
void sv_setuv_mg(SV *sv, UV u)','name' => 'sv_setuv_mg'},'cv_const_sv' => {'text' => 'If C is a constant sub eligible for inlining. returns the constant |
1014
|
|
|
|
|
|
|
value returned by the sub. Otherwise, returns NULL. |
1015
|
|
|
|
|
|
|
|
1016
|
|
|
|
|
|
|
Constant subs can be created with C or as described in |
1017
|
|
|
|
|
|
|
L. |
1018
|
|
|
|
|
|
|
|
1019
|
|
|
|
|
|
|
SV* cv_const_sv(CV* cv)','name' => 'cv_const_sv'},'XS_VERSION' => {'text' => 'The version identifier for an XS module. This is usually |
1020
|
|
|
|
|
|
|
handled automatically by C. See C.','name' => 'XS_VERSION'},'newSVnv' => {'text' => 'Creates a new SV and copies a floating point value into it. |
1021
|
|
|
|
|
|
|
The reference count for the SV is set to 1. |
1022
|
|
|
|
|
|
|
|
1023
|
|
|
|
|
|
|
SV* newSVnv(NV n)','name' => 'newSVnv'},'XPUSHs' => {'text' => 'Push an SV onto the stack, extending the stack if necessary. Does not |
1024
|
|
|
|
|
|
|
handle \'set\' magic. Does not use C. See also C, |
1025
|
|
|
|
|
|
|
C and C. |
1026
|
|
|
|
|
|
|
|
1027
|
|
|
|
|
|
|
void XPUSHs(SV* sv)','name' => 'XPUSHs'},'HeVAL' => {'text' => 'Returns the value slot (type C) stored in the hash entry. |
1028
|
|
|
|
|
|
|
|
1029
|
|
|
|
|
|
|
SV* HeVAL(HE* he)','name' => 'HeVAL'},'PL_na' => {'text' => 'A convenience variable which is typically used with C when one |
1030
|
|
|
|
|
|
|
doesn\'t care about the length of the string. It is usually more efficient |
1031
|
|
|
|
|
|
|
to either declare a local variable and use that instead or to use the |
1032
|
|
|
|
|
|
|
C macro. |
1033
|
|
|
|
|
|
|
|
1034
|
|
|
|
|
|
|
STRLEN PL_na','name' => 'PL_na'},'HePV' => {'text' => 'Returns the key slot of the hash entry as a C value, doing any |
1035
|
|
|
|
|
|
|
necessary dereferencing of possibly C keys. The length of the string |
1036
|
|
|
|
|
|
|
is placed in C (this is a macro, so do I use C<&len>). If you do |
1037
|
|
|
|
|
|
|
not care about what the length of the key is, you may use the global |
1038
|
|
|
|
|
|
|
variable C, though this is rather less efficient than using a local |
1039
|
|
|
|
|
|
|
variable. Remember though, that hash keys in perl are free to contain |
1040
|
|
|
|
|
|
|
embedded nulls, so using C or similar is not a good way to find |
1041
|
|
|
|
|
|
|
the length of hash keys. This is very similar to the C macro |
1042
|
|
|
|
|
|
|
described elsewhere in this document. |
1043
|
|
|
|
|
|
|
|
1044
|
|
|
|
|
|
|
char* HePV(HE* he, STRLEN len)','name' => 'HePV'},'newSViv' => {'text' => 'Creates a new SV and copies an integer into it. The reference count for the |
1045
|
|
|
|
|
|
|
SV is set to 1. |
1046
|
|
|
|
|
|
|
|
1047
|
|
|
|
|
|
|
SV* newSViv(IV i)','name' => 'newSViv'},'sv_untaint' => {'text' => 'Untaint an SV. Use C instead. |
1048
|
|
|
|
|
|
|
void sv_untaint(SV* sv)','name' => 'sv_untaint'},'sv_setpv' => {'text' => 'Copies a string into an SV. The string must be null-terminated. Does not |
1049
|
|
|
|
|
|
|
handle \'set\' magic. See C. |
1050
|
|
|
|
|
|
|
|
1051
|
|
|
|
|
|
|
void sv_setpv(SV* sv, const char* ptr)','name' => 'sv_setpv'},'SVt_PVHV' => {'text' => 'Type flag for hashes. See C.','name' => 'SVt_PVHV'},'pv_uni_display' => {'text' => 'Build to the scalar dsv a displayable version of the string spv, |
1052
|
|
|
|
|
|
|
length len, the displayable version being at most pvlim bytes long |
1053
|
|
|
|
|
|
|
(if longer, the rest is truncated and "..." will be appended). |
1054
|
|
|
|
|
|
|
|
1055
|
|
|
|
|
|
|
The flags argument can have UNI_DISPLAY_ISPRINT set to display |
1056
|
|
|
|
|
|
|
isPRINT()able characters as themselves, UNI_DISPLAY_BACKSLASH |
1057
|
|
|
|
|
|
|
to display the \\\\[nrfta\\\\] as the backslashed versions (like \'\\n\') |
1058
|
|
|
|
|
|
|
(UNI_DISPLAY_BACKSLASH is preferred over UNI_DISPLAY_ISPRINT for \\\\). |
1059
|
|
|
|
|
|
|
UNI_DISPLAY_QQ (and its alias UNI_DISPLAY_REGEX) have both |
1060
|
|
|
|
|
|
|
UNI_DISPLAY_BACKSLASH and UNI_DISPLAY_ISPRINT turned on. |
1061
|
|
|
|
|
|
|
|
1062
|
|
|
|
|
|
|
The pointer to the PV of the dsv is returned. |
1063
|
|
|
|
|
|
|
|
1064
|
|
|
|
|
|
|
char* pv_uni_display(SV *dsv, U8 *spv, STRLEN len, STRLEN pvlim, UV flags)','name' => 'pv_uni_display'},'gv_fetchmethod' => {'text' => 'See L. |
1065
|
|
|
|
|
|
|
|
1066
|
|
|
|
|
|
|
GV* gv_fetchmethod(HV* stash, const char* name)','name' => 'gv_fetchmethod'},'SvGETMAGIC' => {'text' => 'Invokes C on an SV if it has \'get\' magic. This macro evaluates its |
1067
|
|
|
|
|
|
|
argument more than once. |
1068
|
|
|
|
|
|
|
|
1069
|
|
|
|
|
|
|
void SvGETMAGIC(SV* sv)','name' => 'SvGETMAGIC'},'SvGROW' => {'text' => 'Expands the character buffer in the SV so that it has room for the |
1070
|
|
|
|
|
|
|
indicated number of bytes (remember to reserve space for an extra trailing |
1071
|
|
|
|
|
|
|
NUL character). Calls C to perform the expansion if necessary. |
1072
|
|
|
|
|
|
|
Returns a pointer to the character buffer. |
1073
|
|
|
|
|
|
|
|
1074
|
|
|
|
|
|
|
char * SvGROW(SV* sv, STRLEN len)','name' => 'SvGROW'},'sv_inc' => {'text' => 'Auto-increment of the value in the SV, doing string to numeric conversion |
1075
|
|
|
|
|
|
|
if necessary. Handles \'get\' magic. |
1076
|
|
|
|
|
|
|
|
1077
|
|
|
|
|
|
|
void sv_inc(SV* sv)','name' => 'sv_inc'},'sv_usepvn' => {'text' => 'Tells an SV to use C to find its string value. Normally the string is |
1078
|
|
|
|
|
|
|
stored inside the SV but sv_usepvn allows the SV to use an outside string. |
1079
|
|
|
|
|
|
|
The C should point to memory that was allocated by C. The |
1080
|
|
|
|
|
|
|
string length, C, must be supplied. This function will realloc the |
1081
|
|
|
|
|
|
|
memory pointed to by C, so that pointer should not be freed or used by |
1082
|
|
|
|
|
|
|
the programmer after giving it to sv_usepvn. Does not handle \'set\' magic. |
1083
|
|
|
|
|
|
|
See C. |
1084
|
|
|
|
|
|
|
|
1085
|
|
|
|
|
|
|
void sv_usepvn(SV* sv, char* ptr, STRLEN len)','name' => 'sv_usepvn'},'SvPVbytex_force' => {'text' => 'Like C, but converts sv to byte representation first if necessary. |
1086
|
|
|
|
|
|
|
Guarantees to evaluate sv only once; use the more efficient C |
1087
|
|
|
|
|
|
|
otherwise. |
1088
|
|
|
|
|
|
|
|
1089
|
|
|
|
|
|
|
char* SvPVbytex_force(SV* sv, STRLEN len)','name' => 'SvPVbytex_force'},'sv_catpv' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. |
1090
|
|
|
|
|
|
|
If the SV has the UTF-8 status set, then the bytes appended should be |
1091
|
|
|
|
|
|
|
valid UTF-8. Handles \'get\' magic, but not \'set\' magic. See C. |
1092
|
|
|
|
|
|
|
|
1093
|
|
|
|
|
|
|
void sv_catpv(SV* sv, const char* ptr)','name' => 'sv_catpv'},'SvREFCNT' => {'text' => 'Returns the value of the object\'s reference count. |
1094
|
|
|
|
|
|
|
|
1095
|
|
|
|
|
|
|
U32 SvREFCNT(SV* sv)','name' => 'SvREFCNT'},'sv_len' => {'text' => 'Returns the length of the string in the SV. Handles magic and type |
1096
|
|
|
|
|
|
|
coercion. See also C, which gives raw access to the xpv_cur slot. |
1097
|
|
|
|
|
|
|
|
1098
|
|
|
|
|
|
|
STRLEN sv_len(SV* sv)','name' => 'sv_len'},'warn' => {'text' => 'This is the XSUB-writer\'s interface to Perl\'s C function. Call this |
1099
|
|
|
|
|
|
|
function the same way you call the C C function. See C. |
1100
|
|
|
|
|
|
|
|
1101
|
|
|
|
|
|
|
void warn(const char* pat, ...)','name' => 'warn'},'sv_pvutf8' => {'text' => 'Use the C macro instead |
1102
|
|
|
|
|
|
|
|
1103
|
|
|
|
|
|
|
char* sv_pvutf8(SV *sv)','name' => 'sv_pvutf8'},'SvPVbyte_nolen' => {'text' => 'Like C, but converts sv to byte representation first if necessary. |
1104
|
|
|
|
|
|
|
|
1105
|
|
|
|
|
|
|
char* SvPVbyte_nolen(SV* sv)','name' => 'SvPVbyte_nolen'},'LEAVE' => {'text' => 'Closing bracket on a callback. See C and L. |
1106
|
|
|
|
|
|
|
|
1107
|
|
|
|
|
|
|
LEAVE;','name' => 'LEAVE'},'SVt_PVAV' => {'text' => 'Type flag for arrays. See C.','name' => 'SVt_PVAV'},'hv_delete' => {'text' => 'Deletes a key/value pair in the hash. The value SV is removed from the |
1108
|
|
|
|
|
|
|
hash and returned to the caller. The C is the length of the key. |
1109
|
|
|
|
|
|
|
The C value will normally be zero; if set to G_DISCARD then NULL |
1110
|
|
|
|
|
|
|
will be returned. |
1111
|
|
|
|
|
|
|
|
1112
|
|
|
|
|
|
|
SV* hv_delete(HV* tb, const char* key, I32 klen, I32 flags)','name' => 'hv_delete'},'hv_undef' => {'text' => 'Undefines the hash. |
1113
|
|
|
|
|
|
|
|
1114
|
|
|
|
|
|
|
void hv_undef(HV* tb)','name' => 'hv_undef'},'SvSetMagicSV_nosteal' => {'text' => 'Like C, but does any set magic required afterwards. |
1115
|
|
|
|
|
|
|
|
1116
|
|
|
|
|
|
|
void SvSetMagicSV_nosteal(SV* dsv, SV* ssv)','name' => 'SvSetMagicSV_nosteal'},'hv_delete_ent' => {'text' => 'Deletes a key/value pair in the hash. The value SV is removed from the |
1117
|
|
|
|
|
|
|
hash and returned to the caller. The C value will normally be zero; |
1118
|
|
|
|
|
|
|
if set to G_DISCARD then NULL will be returned. C can be a valid |
1119
|
|
|
|
|
|
|
precomputed hash value, or 0 to ask for it to be computed. |
1120
|
|
|
|
|
|
|
|
1121
|
|
|
|
|
|
|
SV* hv_delete_ent(HV* tb, SV* key, I32 flags, U32 hash)','name' => 'hv_delete_ent'},'CLASS' => {'text' => 'Variable which is setup by C to indicate the |
1122
|
|
|
|
|
|
|
class name for a C++ XS constructor. This is always a C. See C. |
1123
|
|
|
|
|
|
|
|
1124
|
|
|
|
|
|
|
char* CLASS','name' => 'CLASS'},'sv_isobject' => {'text' => 'Returns a boolean indicating whether the SV is an RV pointing to a blessed |
1125
|
|
|
|
|
|
|
object. If the SV is not an RV, or if the object is not blessed, then this |
1126
|
|
|
|
|
|
|
will return false. |
1127
|
|
|
|
|
|
|
|
1128
|
|
|
|
|
|
|
int sv_isobject(SV* sv)','name' => 'sv_isobject'},'Newc' => {'text' => 'The XSUB-writer\'s interface to the C C function, with |
1129
|
|
|
|
|
|
|
cast. |
1130
|
|
|
|
|
|
|
|
1131
|
|
|
|
|
|
|
void Newc(int id, void* ptr, int nitems, type, cast)','name' => 'Newc'},'sv_pvn_force_flags' => {'text' => 'Get a sensible string out of the SV somehow. |
1132
|
|
|
|
|
|
|
If C has C bit set, will C on C if |
1133
|
|
|
|
|
|
|
appropriate, else not. C and C are |
1134
|
|
|
|
|
|
|
implemented in terms of this function. |
1135
|
|
|
|
|
|
|
You normally want to use the various wrapper macros instead: see |
1136
|
|
|
|
|
|
|
C and C |
1137
|
|
|
|
|
|
|
|
1138
|
|
|
|
|
|
|
char* sv_pvn_force_flags(SV* sv, STRLEN* lp, I32 flags)','name' => 'sv_pvn_force_flags'},'HeKLEN' => {'text' => 'If this is negative, and amounts to C, it indicates the entry |
1139
|
|
|
|
|
|
|
holds an C key. Otherwise, holds the actual length of the key. Can |
1140
|
|
|
|
|
|
|
be assigned to. The C macro is usually preferable for finding key |
1141
|
|
|
|
|
|
|
lengths. |
1142
|
|
|
|
|
|
|
|
1143
|
|
|
|
|
|
|
STRLEN HeKLEN(HE* he)','name' => 'HeKLEN'},'to_utf8_title' => {'text' => 'Convert the UTF-8 encoded character at p to its titlecase version and |
1144
|
|
|
|
|
|
|
store that in UTF-8 in ustrp and its length in bytes in lenp. Note |
1145
|
|
|
|
|
|
|
that the ustrp needs to be at least UTF8_MAXLEN_UCLC+1 bytes since the |
1146
|
|
|
|
|
|
|
titlecase version may be longer than the original character (up to two |
1147
|
|
|
|
|
|
|
characters). |
1148
|
|
|
|
|
|
|
|
1149
|
|
|
|
|
|
|
The first character of the titlecased version is returned |
1150
|
|
|
|
|
|
|
(but note, as explained above, that there may be more.) |
1151
|
|
|
|
|
|
|
|
1152
|
|
|
|
|
|
|
UV to_utf8_title(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_title'},'sv_cat_decode' => {'text' => 'The encoding is assumed to be an Encode object, the PV of the ssv is |
1153
|
|
|
|
|
|
|
assumed to be octets in that encoding and decoding the input starts |
1154
|
|
|
|
|
|
|
from the position which (PV + *offset) pointed to. The dsv will be |
1155
|
|
|
|
|
|
|
concatenated the decoded UTF-8 string from ssv. Decoding will terminate |
1156
|
|
|
|
|
|
|
when the string tstr appears in decoding output or the input ends on |
1157
|
|
|
|
|
|
|
the PV of the ssv. The value which the offset points will be modified |
1158
|
|
|
|
|
|
|
to the last input position on the ssv. |
1159
|
|
|
|
|
|
|
|
1160
|
|
|
|
|
|
|
Returns TRUE if the terminator was found, else returns FALSE. |
1161
|
|
|
|
|
|
|
|
1162
|
|
|
|
|
|
|
bool sv_cat_decode(SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen)','name' => 'sv_cat_decode'},'mPUSHi' => {'text' => 'Push an integer onto the stack. The stack must have room for this element. |
1163
|
|
|
|
|
|
|
Handles \'set\' magic. Does not use C. See also C, C |
1164
|
|
|
|
|
|
|
and C. |
1165
|
|
|
|
|
|
|
|
1166
|
|
|
|
|
|
|
void mPUSHi(IV iv)','name' => 'mPUSHi'},'PUSHn' => {'text' => 'Push a double onto the stack. The stack must have room for this element. |
1167
|
|
|
|
|
|
|
Handles \'set\' magic. Uses C, so C or C should be |
1168
|
|
|
|
|
|
|
called to declare it. Do not call multiple C-oriented macros to |
1169
|
|
|
|
|
|
|
return lists from XSUB\'s - see C instead. See also C and |
1170
|
|
|
|
|
|
|
C. |
1171
|
|
|
|
|
|
|
|
1172
|
|
|
|
|
|
|
void PUSHn(NV nv)','name' => 'PUSHn'},'sv_setiv' => {'text' => 'Copies an integer into the given SV, upgrading first if necessary. |
1173
|
|
|
|
|
|
|
Does not handle \'set\' magic. See also C. |
1174
|
|
|
|
|
|
|
|
1175
|
|
|
|
|
|
|
void sv_setiv(SV* sv, IV num)','name' => 'sv_setiv'},'SvIV' => {'text' => 'Coerces the given SV to an integer and returns it. See C for a |
1176
|
|
|
|
|
|
|
version which guarantees to evaluate sv only once. |
1177
|
|
|
|
|
|
|
|
1178
|
|
|
|
|
|
|
IV SvIV(SV* sv)','name' => 'SvIV'},'sv_report_used' => {'text' => 'Dump the contents of all SVs not yet freed. (Debugging aid). |
1179
|
|
|
|
|
|
|
|
1180
|
|
|
|
|
|
|
void sv_report_used()','name' => 'sv_report_used'},'EXTEND' => {'text' => 'Used to extend the argument stack for an XSUB\'s return values. Once |
1181
|
|
|
|
|
|
|
used, guarantees that there is room for at least C to be pushed |
1182
|
|
|
|
|
|
|
onto the stack. |
1183
|
|
|
|
|
|
|
|
1184
|
|
|
|
|
|
|
void EXTEND(SP, int nitems)','name' => 'EXTEND'},'PL_sv_yes' => {'text' => 'This is the C SV. See C. Always refer to this as |
1185
|
|
|
|
|
|
|
C<&PL_sv_yes>. |
1186
|
|
|
|
|
|
|
|
1187
|
|
|
|
|
|
|
SV PL_sv_yes','name' => 'PL_sv_yes'},'SvNVX' => {'text' => 'Returns the raw value in the SV\'s NV slot, without checks or conversions. |
1188
|
|
|
|
|
|
|
Only use when you are sure SvNOK is true. See also C. |
1189
|
|
|
|
|
|
|
|
1190
|
|
|
|
|
|
|
NV SvNVX(SV* sv)','name' => 'SvNVX'},'newSVuv' => {'text' => 'Creates a new SV and copies an unsigned integer into it. |
1191
|
|
|
|
|
|
|
The reference count for the SV is set to 1. |
1192
|
|
|
|
|
|
|
|
1193
|
|
|
|
|
|
|
SV* newSVuv(UV u)','name' => 'newSVuv'},'gv_fetchmeth' => {'text' => 'Returns the glob with the given C and a defined subroutine or |
1194
|
|
|
|
|
|
|
C. The glob lives in the given C, or in the stashes |
1195
|
|
|
|
|
|
|
accessible via @ISA and UNIVERSAL::. |
1196
|
|
|
|
|
|
|
|
1197
|
|
|
|
|
|
|
The argument C should be either 0 or -1. If C, as a |
1198
|
|
|
|
|
|
|
side-effect creates a glob with the given C in the given C |
1199
|
|
|
|
|
|
|
which in the case of success contains an alias for the subroutine, and sets |
1200
|
|
|
|
|
|
|
up caching info for this glob. Similarly for all the searched stashes. |
1201
|
|
|
|
|
|
|
|
1202
|
|
|
|
|
|
|
This function grants C<"SUPER"> token as a postfix of the stash name. The |
1203
|
|
|
|
|
|
|
GV returned from C may be a method cache entry, which is not |
1204
|
|
|
|
|
|
|
visible to Perl code. So when calling C, you should not use |
1205
|
|
|
|
|
|
|
the GV directly; instead, you should use the method\'s CV, which can be |
1206
|
|
|
|
|
|
|
obtained from the GV with the C macro. |
1207
|
|
|
|
|
|
|
|
1208
|
|
|
|
|
|
|
GV* gv_fetchmeth(HV* stash, const char* name, STRLEN len, I32 level)','name' => 'gv_fetchmeth'},'sv_nosharing' => {'text' => 'Dummy routine which "shares" an SV when there is no sharing module present. |
1209
|
|
|
|
|
|
|
Exists to avoid test for a NULL function pointer and because it could potentially warn under |
1210
|
|
|
|
|
|
|
some level of strict-ness. |
1211
|
|
|
|
|
|
|
|
1212
|
|
|
|
|
|
|
void sv_nosharing(SV *)','name' => 'sv_nosharing'},'SvUTF8_off' => {'text' => 'Unsets the UTF-8 status of an SV. |
1213
|
|
|
|
|
|
|
|
1214
|
|
|
|
|
|
|
void SvUTF8_off(SV *sv)','name' => 'SvUTF8_off'},'looks_like_number' => {'text' => 'Test if the content of an SV looks like a number (or is a number). |
1215
|
|
|
|
|
|
|
C and C are treated as numbers (so will not issue a |
1216
|
|
|
|
|
|
|
non-numeric warning), even if your atof() doesn\'t grok them. |
1217
|
|
|
|
|
|
|
|
1218
|
|
|
|
|
|
|
I32 looks_like_number(SV* sv)','name' => 'looks_like_number'},'sv_catpv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
1219
|
|
|
|
|
|
|
|
1220
|
|
|
|
|
|
|
void sv_catpv_mg(SV *sv, const char *ptr)','name' => 'sv_catpv_mg'},'HeHASH' => {'text' => 'Returns the computed hash stored in the hash entry. |
1221
|
|
|
|
|
|
|
|
1222
|
|
|
|
|
|
|
U32 HeHASH(HE* he)','name' => 'HeHASH'},'XSRETURN_EMPTY' => {'text' => 'Return an empty list from an XSUB immediately. |
1223
|
|
|
|
|
|
|
|
1224
|
|
|
|
|
|
|
XSRETURN_EMPTY;','name' => 'XSRETURN_EMPTY'},'sv_setref_uv' => {'text' => 'Copies an unsigned integer into a new SV, optionally blessing the SV. The C |
1225
|
|
|
|
|
|
|
argument will be upgraded to an RV. That RV will be modified to point to |
1226
|
|
|
|
|
|
|
the new SV. The C argument indicates the package for the |
1227
|
|
|
|
|
|
|
blessing. Set C to C to avoid the blessing. The new SV |
1228
|
|
|
|
|
|
|
will have a reference count of 1, and the RV will be returned. |
1229
|
|
|
|
|
|
|
|
1230
|
|
|
|
|
|
|
SV* sv_setref_uv(SV* rv, const char* classname, UV uv)','name' => 'sv_setref_uv'},'SvIOK' => {'text' => 'Returns a boolean indicating whether the SV contains an integer. |
1231
|
|
|
|
|
|
|
|
1232
|
|
|
|
|
|
|
bool SvIOK(SV* sv)','name' => 'SvIOK'},'getcwd_sv' => {'text' => 'Fill the sv with current working directory |
1233
|
|
|
|
|
|
|
|
1234
|
|
|
|
|
|
|
int getcwd_sv(SV* sv)','name' => 'getcwd_sv'},'newSVpv' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the |
1235
|
|
|
|
|
|
|
SV is set to 1. If C is zero, Perl will compute the length using |
1236
|
|
|
|
|
|
|
strlen(). For efficiency, consider using C instead. |
1237
|
|
|
|
|
|
|
|
1238
|
|
|
|
|
|
|
SV* newSVpv(const char* s, STRLEN len)','name' => 'newSVpv'},'sv_2pvbyte' => {'text' => 'Return a pointer to the byte-encoded representation of the SV, and set *lp |
1239
|
|
|
|
|
|
|
to its length. May cause the SV to be downgraded from UTF-8 as a |
1240
|
|
|
|
|
|
|
side-effect. |
1241
|
|
|
|
|
|
|
|
1242
|
|
|
|
|
|
|
Usually accessed via the C macro. |
1243
|
|
|
|
|
|
|
|
1244
|
|
|
|
|
|
|
char* sv_2pvbyte(SV* sv, STRLEN* lp)','name' => 'sv_2pvbyte'},'fbm_instr' => {'text' => 'Returns the location of the SV in the string delimited by C and |
1245
|
|
|
|
|
|
|
C. It returns C if the string can\'t be found. The C |
1246
|
|
|
|
|
|
|
does not have to be fbm_compiled, but the search will not be as fast |
1247
|
|
|
|
|
|
|
then. |
1248
|
|
|
|
|
|
|
|
1249
|
|
|
|
|
|
|
char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)','name' => 'fbm_instr'},'sv_setpvf' => {'text' => 'Processes its arguments like C and sets an SV to the formatted |
1250
|
|
|
|
|
|
|
output. Does not handle \'set\' magic. See C. |
1251
|
|
|
|
|
|
|
|
1252
|
|
|
|
|
|
|
void sv_setpvf(SV* sv, const char* pat, ...)','name' => 'sv_setpvf'},'SvPV_force' => {'text' => 'Like C but will force the SV into containing just a string |
1253
|
|
|
|
|
|
|
(C). You want force if you are going to update the C |
1254
|
|
|
|
|
|
|
directly. |
1255
|
|
|
|
|
|
|
|
1256
|
|
|
|
|
|
|
char* SvPV_force(SV* sv, STRLEN len)','name' => 'SvPV_force'},'XPUSHn' => {'text' => 'Push a double onto the stack, extending the stack if necessary. Handles |
1257
|
|
|
|
|
|
|
\'set\' magic. Uses C, so C or C should be called to |
1258
|
|
|
|
|
|
|
declare it. Do not call multiple C-oriented macros to return lists |
1259
|
|
|
|
|
|
|
from XSUB\'s - see C instead. See also C and C. |
1260
|
|
|
|
|
|
|
|
1261
|
|
|
|
|
|
|
void XPUSHn(NV nv)','name' => 'XPUSHn'},'SvLEN' => {'text' => 'Returns the size of the string buffer in the SV, not including any part |
1262
|
|
|
|
|
|
|
attributable to C. See C. |
1263
|
|
|
|
|
|
|
|
1264
|
|
|
|
|
|
|
STRLEN SvLEN(SV* sv)','name' => 'SvLEN'},'call_sv' => {'text' => 'Performs a callback to the Perl sub whose name is in the SV. See |
1265
|
|
|
|
|
|
|
L. |
1266
|
|
|
|
|
|
|
|
1267
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
1268
|
|
|
|
|
|
|
|
1269
|
|
|
|
|
|
|
I32 call_sv(SV* sv, I32 flags)','name' => 'call_sv'},'SVt_PV' => {'text' => 'Pointer type flag for scalars. See C.','name' => 'SVt_PV'},'strGT' => {'text' => 'Test two strings to see if the first, C, is greater than the second, |
1270
|
|
|
|
|
|
|
C. Returns true or false. |
1271
|
|
|
|
|
|
|
|
1272
|
|
|
|
|
|
|
bool strGT(char* s1, char* s2)','name' => 'strGT'},'SvPOK_only_UTF8' => {'text' => 'Tells an SV that it is a string and disables all other OK bits, |
1273
|
|
|
|
|
|
|
and leaves the UTF-8 status as it was. |
1274
|
|
|
|
|
|
|
|
1275
|
|
|
|
|
|
|
void SvPOK_only_UTF8(SV* sv)','name' => 'SvPOK_only_UTF8'},'mg_get' => {'text' => 'Do magic after a value is retrieved from the SV. See C. |
1276
|
|
|
|
|
|
|
|
1277
|
|
|
|
|
|
|
int mg_get(SV* sv)','name' => 'mg_get'},'sv_pos_u2b' => {'text' => 'Converts the value pointed to by offsetp from a count of UTF-8 chars from |
1278
|
|
|
|
|
|
|
the start of the string, to a count of the equivalent number of bytes; if |
1279
|
|
|
|
|
|
|
lenp is non-zero, it does the same to lenp, but this time starting from |
1280
|
|
|
|
|
|
|
the offset, rather than from the start of the string. Handles magic and |
1281
|
|
|
|
|
|
|
type coercion. |
1282
|
|
|
|
|
|
|
|
1283
|
|
|
|
|
|
|
void sv_pos_u2b(SV* sv, I32* offsetp, I32* lenp)','name' => 'sv_pos_u2b'},'SvTRUE' => {'text' => 'Returns a boolean indicating whether Perl would evaluate the SV as true or |
1284
|
|
|
|
|
|
|
false, defined or undefined. Does not handle \'get\' magic. |
1285
|
|
|
|
|
|
|
|
1286
|
|
|
|
|
|
|
bool SvTRUE(SV* sv)','name' => 'SvTRUE'},'HeSVKEY_set' => {'text' => 'Sets the key to a given C, taking care to set the appropriate flags to |
1287
|
|
|
|
|
|
|
indicate the presence of an C key, and returns the same |
1288
|
|
|
|
|
|
|
C. |
1289
|
|
|
|
|
|
|
|
1290
|
|
|
|
|
|
|
SV* HeSVKEY_set(HE* he, SV* sv)','name' => 'HeSVKEY_set'},'POPl' => {'text' => 'Pops a long off the stack. |
1291
|
|
|
|
|
|
|
|
1292
|
|
|
|
|
|
|
long POPl','name' => 'POPl'},'hv_iternext_flags' => {'text' => 'Returns entries from a hash iterator. See C and C. |
1293
|
|
|
|
|
|
|
The C value will normally be zero; if HV_ITERNEXT_WANTPLACEHOLDERS is |
1294
|
|
|
|
|
|
|
set the placeholders keys (for restricted hashes) will be returned in addition |
1295
|
|
|
|
|
|
|
to normal keys. By default placeholders are automatically skipped over. |
1296
|
|
|
|
|
|
|
Currently a placeholder is implemented with a value that is |
1297
|
|
|
|
|
|
|
C<&Perl_sv_placeholder>. Note that the implementation of placeholders and |
1298
|
|
|
|
|
|
|
restricted hashes may change, and the implementation currently is |
1299
|
|
|
|
|
|
|
insufficiently abstracted for any change to be tidy. |
1300
|
|
|
|
|
|
|
|
1301
|
|
|
|
|
|
|
NOTE: this function is experimental and may change or be |
1302
|
|
|
|
|
|
|
removed without notice. |
1303
|
|
|
|
|
|
|
|
1304
|
|
|
|
|
|
|
HE* hv_iternext_flags(HV* tb, I32 flags)','name' => 'hv_iternext_flags'},'grok_hex' => {'text' => 'converts a string representing a hex number to numeric form. |
1305
|
|
|
|
|
|
|
|
1306
|
|
|
|
|
|
|
On entry I and I<*len> give the string to scan, I<*flags> gives |
1307
|
|
|
|
|
|
|
conversion flags, and I should be NULL or a pointer to an NV. |
1308
|
|
|
|
|
|
|
The scan stops at the end of the string, or the first non-hex-digit character. |
1309
|
|
|
|
|
|
|
On return I<*len> is set to the length scanned string, and I<*flags> gives |
1310
|
|
|
|
|
|
|
output flags. |
1311
|
|
|
|
|
|
|
|
1312
|
|
|
|
|
|
|
If the value is <= UV_MAX it is returned as a UV, the output flags are clear, |
1313
|
|
|
|
|
|
|
and nothing is written to I<*result>. If the value is > UV_MAX C |
1314
|
|
|
|
|
|
|
returns UV_MAX, sets C in the output flags, |
1315
|
|
|
|
|
|
|
and writes the value to I<*result> (or the value is discarded if I |
1316
|
|
|
|
|
|
|
is NULL). |
1317
|
|
|
|
|
|
|
|
1318
|
|
|
|
|
|
|
The hex number may optionally be prefixed with "0x" or "x" unless |
1319
|
|
|
|
|
|
|
C is set in I<*flags> on entry. If |
1320
|
|
|
|
|
|
|
C is set in I<*flags> then the hex |
1321
|
|
|
|
|
|
|
number may use \'_\' characters to separate digits. |
1322
|
|
|
|
|
|
|
|
1323
|
|
|
|
|
|
|
UV grok_hex(char* start, STRLEN* len, I32* flags, NV *result)','name' => 'grok_hex'},'SPAGAIN' => {'text' => 'Refetch the stack pointer. Used after a callback. See L. |
1324
|
|
|
|
|
|
|
|
1325
|
|
|
|
|
|
|
SPAGAIN;','name' => 'SPAGAIN'},'call_method' => {'text' => 'Performs a callback to the specified Perl method. The blessed object must |
1326
|
|
|
|
|
|
|
be on the stack. See L. |
1327
|
|
|
|
|
|
|
|
1328
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
1329
|
|
|
|
|
|
|
|
1330
|
|
|
|
|
|
|
I32 call_method(const char* methname, I32 flags)','name' => 'call_method'},'SvLOCK' => {'text' => 'Arranges for a mutual exclusion lock to be obtained on sv if a suitable module |
1331
|
|
|
|
|
|
|
has been loaded. |
1332
|
|
|
|
|
|
|
|
1333
|
|
|
|
|
|
|
void SvLOCK(SV* sv)','name' => 'SvLOCK'},'sv_vsetpvfn' => {'text' => 'Works like C but copies the text into the SV instead of |
1334
|
|
|
|
|
|
|
appending it. |
1335
|
|
|
|
|
|
|
|
1336
|
|
|
|
|
|
|
Usually used via one of its frontends C and C. |
1337
|
|
|
|
|
|
|
|
1338
|
|
|
|
|
|
|
void sv_vsetpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)','name' => 'sv_vsetpvfn'},'get_cv' => {'text' => 'Returns the CV of the specified Perl subroutine. If C is set and |
1339
|
|
|
|
|
|
|
the Perl subroutine does not exist then it will be declared (which has the |
1340
|
|
|
|
|
|
|
same effect as saying C). If C is not set and the |
1341
|
|
|
|
|
|
|
subroutine does not exist then NULL is returned. |
1342
|
|
|
|
|
|
|
|
1343
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
1344
|
|
|
|
|
|
|
|
1345
|
|
|
|
|
|
|
CV* get_cv(const char* name, I32 create)','name' => 'get_cv'},'SvIOKp' => {'text' => 'Returns a boolean indicating whether the SV contains an integer. Checks |
1346
|
|
|
|
|
|
|
the B setting. Use C. |
1347
|
|
|
|
|
|
|
|
1348
|
|
|
|
|
|
|
bool SvIOKp(SV* sv)','name' => 'SvIOKp'},'XST_mUNDEF' => {'text' => 'Place C<&PL_sv_undef> into the specified position C on the |
1349
|
|
|
|
|
|
|
stack. |
1350
|
|
|
|
|
|
|
|
1351
|
|
|
|
|
|
|
void XST_mUNDEF(int pos)','name' => 'XST_mUNDEF'},'perl_parse' => {'text' => 'Tells a Perl interpreter to parse a Perl script. See L. |
1352
|
|
|
|
|
|
|
|
1353
|
|
|
|
|
|
|
int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env)','name' => 'perl_parse'},'to_utf8_case' => {'text' => 'The "p" contains the pointer to the UTF-8 string encoding |
1354
|
|
|
|
|
|
|
the character that is being converted. |
1355
|
|
|
|
|
|
|
|
1356
|
|
|
|
|
|
|
The "ustrp" is a pointer to the character buffer to put the |
1357
|
|
|
|
|
|
|
conversion result to. The "lenp" is a pointer to the length |
1358
|
|
|
|
|
|
|
of the result. |
1359
|
|
|
|
|
|
|
|
1360
|
|
|
|
|
|
|
The "swashp" is a pointer to the swash to use. |
1361
|
|
|
|
|
|
|
|
1362
|
|
|
|
|
|
|
Both the special and normal mappings are stored lib/unicore/To/Foo.pl, |
1363
|
|
|
|
|
|
|
and loaded by SWASHGET, using lib/utf8_heavy.pl. The special (usually, |
1364
|
|
|
|
|
|
|
but not always, a multicharacter mapping), is tried first. |
1365
|
|
|
|
|
|
|
|
1366
|
|
|
|
|
|
|
The "special" is a string like "utf8::ToSpecLower", which means the |
1367
|
|
|
|
|
|
|
hash %utf8::ToSpecLower. The access to the hash is through |
1368
|
|
|
|
|
|
|
Perl_to_utf8_case(). |
1369
|
|
|
|
|
|
|
|
1370
|
|
|
|
|
|
|
The "normal" is a string like "ToLower" which means the swash |
1371
|
|
|
|
|
|
|
%utf8::ToLower. |
1372
|
|
|
|
|
|
|
|
1373
|
|
|
|
|
|
|
UV to_utf8_case(U8 *p, U8* ustrp, STRLEN *lenp, SV **swash, char *normal, char *special)','name' => 'to_utf8_case'},'av_clear' => {'text' => 'Clears an array, making it empty. Does not free the memory used by the |
1374
|
|
|
|
|
|
|
array itself. |
1375
|
|
|
|
|
|
|
|
1376
|
|
|
|
|
|
|
void av_clear(AV* ar)','name' => 'av_clear'},'sv_force_normal' => {'text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make |
1377
|
|
|
|
|
|
|
a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to |
1378
|
|
|
|
|
|
|
an xpvmg. See also C. |
1379
|
|
|
|
|
|
|
|
1380
|
|
|
|
|
|
|
void sv_force_normal(SV *sv)','name' => 'sv_force_normal'},'av_unshift' => {'text' => 'Unshift the given number of C values onto the beginning of the |
1381
|
|
|
|
|
|
|
array. The array will grow automatically to accommodate the addition. You |
1382
|
|
|
|
|
|
|
must then use C to assign values to these new elements. |
1383
|
|
|
|
|
|
|
|
1384
|
|
|
|
|
|
|
void av_unshift(AV* ar, I32 num)','name' => 'av_unshift'},'SvUNLOCK' => {'text' => 'Releases a mutual exclusion lock on sv if a suitable module |
1385
|
|
|
|
|
|
|
has been loaded. |
1386
|
|
|
|
|
|
|
|
1387
|
|
|
|
|
|
|
void SvUNLOCK(SV* sv)','name' => 'SvUNLOCK'},'mg_set' => {'text' => 'Do magic after a value is assigned to the SV. See C. |
1388
|
|
|
|
|
|
|
|
1389
|
|
|
|
|
|
|
int mg_set(SV* sv)','name' => 'mg_set'},'sv_mortalcopy' => {'text' => 'Creates a new SV which is a copy of the original SV (using C). |
1390
|
|
|
|
|
|
|
The new SV is marked as mortal. It will be destroyed "soon", either by an |
1391
|
|
|
|
|
|
|
explicit call to FREETMPS, or by an implicit call at places such as |
1392
|
|
|
|
|
|
|
statement boundaries. See also C and C. |
1393
|
|
|
|
|
|
|
|
1394
|
|
|
|
|
|
|
SV* sv_mortalcopy(SV* oldsv)','name' => 'sv_mortalcopy'},'POPpbytex' => {'text' => 'Pops a string off the stack which must consist of bytes i.e. characters < 256. |
1395
|
|
|
|
|
|
|
Requires a variable STRLEN n_a in scope. |
1396
|
|
|
|
|
|
|
|
1397
|
|
|
|
|
|
|
char* POPpbytex','name' => 'POPpbytex'},'SvUVX' => {'text' => 'Returns the raw value in the SV\'s UV slot, without checks or conversions. |
1398
|
|
|
|
|
|
|
Only use when you are sure SvIOK is true. See also C. |
1399
|
|
|
|
|
|
|
|
1400
|
|
|
|
|
|
|
UV SvUVX(SV* sv)','name' => 'SvUVX'},'G_NOARGS' => {'text' => 'Indicates that no arguments are being sent to a callback. See |
1401
|
|
|
|
|
|
|
L.','name' => 'G_NOARGS'},'SvSetMagicSV' => {'text' => 'Like C, but does any set magic required afterwards. |
1402
|
|
|
|
|
|
|
|
1403
|
|
|
|
|
|
|
void SvSetMagicSV(SV* dsb, SV* ssv)','name' => 'SvSetMagicSV'},'sv_utf8_decode' => {'text' => 'If the PV of the SV is an octet sequence in UTF-8 |
1404
|
|
|
|
|
|
|
and contains a multiple-byte character, the C flag is turned on |
1405
|
|
|
|
|
|
|
so that it looks like a character. If the PV contains only single-byte |
1406
|
|
|
|
|
|
|
characters, the C flag stays being off. |
1407
|
|
|
|
|
|
|
Scans PV for validity and returns false if the PV is invalid UTF-8. |
1408
|
|
|
|
|
|
|
|
1409
|
|
|
|
|
|
|
NOTE: this function is experimental and may change or be |
1410
|
|
|
|
|
|
|
removed without notice. |
1411
|
|
|
|
|
|
|
|
1412
|
|
|
|
|
|
|
bool sv_utf8_decode(SV *sv)','name' => 'sv_utf8_decode'},'Newz' => {'text' => 'The XSUB-writer\'s interface to the C C function. The allocated |
1413
|
|
|
|
|
|
|
memory is zeroed with C. |
1414
|
|
|
|
|
|
|
|
1415
|
|
|
|
|
|
|
void Newz(int id, void* ptr, int nitems, type)','name' => 'Newz'},'savepvn' => {'text' => 'Perl\'s version of what C would be if it existed. Returns a |
1416
|
|
|
|
|
|
|
pointer to a newly allocated string which is a duplicate of the first |
1417
|
|
|
|
|
|
|
C bytes from C. The memory allocated for the new string can be |
1418
|
|
|
|
|
|
|
freed with the C function. |
1419
|
|
|
|
|
|
|
|
1420
|
|
|
|
|
|
|
char* savepvn(const char* pv, I32 len)','name' => 'savepvn'},'eval_sv' => {'text' => 'Tells Perl to C the string in the SV. |
1421
|
|
|
|
|
|
|
|
1422
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
1423
|
|
|
|
|
|
|
|
1424
|
|
|
|
|
|
|
I32 eval_sv(SV* sv, I32 flags)','name' => 'eval_sv'},'FREETMPS' => {'text' => 'Closing bracket for temporaries on a callback. See C and |
1425
|
|
|
|
|
|
|
L. |
1426
|
|
|
|
|
|
|
|
1427
|
|
|
|
|
|
|
FREETMPS;','name' => 'FREETMPS'},'av_exists' => {'text' => 'Returns true if the element indexed by C has been initialized. |
1428
|
|
|
|
|
|
|
|
1429
|
|
|
|
|
|
|
This relies on the fact that uninitialized array elements are set to |
1430
|
|
|
|
|
|
|
C<&PL_sv_undef>. |
1431
|
|
|
|
|
|
|
|
1432
|
|
|
|
|
|
|
bool av_exists(AV* ar, I32 key)','name' => 'av_exists'},'SvCUR' => {'text' => 'Returns the length of the string which is in the SV. See C. |
1433
|
|
|
|
|
|
|
|
1434
|
|
|
|
|
|
|
STRLEN SvCUR(SV* sv)','name' => 'SvCUR'},'Move' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the |
1435
|
|
|
|
|
|
|
source, C is the destination, C is the number of items, and C is |
1436
|
|
|
|
|
|
|
the type. Can do overlapping moves. See also C. |
1437
|
|
|
|
|
|
|
|
1438
|
|
|
|
|
|
|
void Move(void* src, void* dest, int nitems, type)','name' => 'Move'},'sv_pvn_force' => {'text' => 'Get a sensible string out of the SV somehow. |
1439
|
|
|
|
|
|
|
A private implementation of the C macro for compilers which |
1440
|
|
|
|
|
|
|
can\'t cope with complex macro expressions. Always use the macro instead. |
1441
|
|
|
|
|
|
|
|
1442
|
|
|
|
|
|
|
char* sv_pvn_force(SV* sv, STRLEN* lp)','name' => 'sv_pvn_force'},'sv_catpvn_flags' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. The |
1443
|
|
|
|
|
|
|
C indicates number of bytes to copy. If the SV has the UTF-8 |
1444
|
|
|
|
|
|
|
status set, then the bytes appended should be valid UTF-8. |
1445
|
|
|
|
|
|
|
If C has C bit set, will C on C if |
1446
|
|
|
|
|
|
|
appropriate, else not. C and C are implemented |
1447
|
|
|
|
|
|
|
in terms of this function. |
1448
|
|
|
|
|
|
|
|
1449
|
|
|
|
|
|
|
void sv_catpvn_flags(SV* sv, const char* ptr, STRLEN len, I32 flags)','name' => 'sv_catpvn_flags'},'GIMME' => {'text' => 'A backward-compatible version of C which can only return |
1450
|
|
|
|
|
|
|
C or C; in a void context, it returns C. |
1451
|
|
|
|
|
|
|
Deprecated. Use C instead. |
1452
|
|
|
|
|
|
|
|
1453
|
|
|
|
|
|
|
U32 GIMME','name' => 'GIMME'},'sv_bless' => {'text' => 'Blesses an SV into a specified package. The SV must be an RV. The package |
1454
|
|
|
|
|
|
|
must be designated by its stash (see C). The reference count |
1455
|
|
|
|
|
|
|
of the SV is unaffected. |
1456
|
|
|
|
|
|
|
|
1457
|
|
|
|
|
|
|
SV* sv_bless(SV* sv, HV* stash)','name' => 'sv_bless'},'NEWSV' => {'text' => 'Creates a new SV. A non-zero C parameter indicates the number of |
1458
|
|
|
|
|
|
|
bytes of preallocated string space the SV should have. An extra byte for a |
1459
|
|
|
|
|
|
|
tailing NUL is also reserved. (SvPOK is not set for the SV even if string |
1460
|
|
|
|
|
|
|
space is allocated.) The reference count for the new SV is set to 1. |
1461
|
|
|
|
|
|
|
C is an integer id between 0 and 1299 (used to identify leaks). |
1462
|
|
|
|
|
|
|
|
1463
|
|
|
|
|
|
|
SV* NEWSV(int id, STRLEN len)','name' => 'NEWSV'},'sv_isa' => {'text' => 'Returns a boolean indicating whether the SV is blessed into the specified |
1464
|
|
|
|
|
|
|
class. This does not check for subtypes; use C to verify |
1465
|
|
|
|
|
|
|
an inheritance relationship. |
1466
|
|
|
|
|
|
|
|
1467
|
|
|
|
|
|
|
int sv_isa(SV* sv, const char* name)','name' => 'sv_isa'},'isALNUM' => {'text' => 'Returns a boolean indicating whether the C C is an ASCII alphanumeric |
1468
|
|
|
|
|
|
|
character (including underscore) or digit. |
1469
|
|
|
|
|
|
|
|
1470
|
|
|
|
|
|
|
bool isALNUM(char ch)','name' => 'isALNUM'},'newXS' => {'text' => 'Used by C to hook up XSUBs as Perl subs.','name' => 'newXS'},'sv_catpvf' => {'text' => 'Processes its arguments like C and appends the formatted |
1471
|
|
|
|
|
|
|
output to an SV. If the appended data contains "wide" characters |
1472
|
|
|
|
|
|
|
(including, but not limited to, SVs with a UTF-8 PV formatted with %s, |
1473
|
|
|
|
|
|
|
and characters >255 formatted with %c), the original SV might get |
1474
|
|
|
|
|
|
|
upgraded to UTF-8. Handles \'get\' magic, but not \'set\' magic. |
1475
|
|
|
|
|
|
|
C must typically be called after calling this function |
1476
|
|
|
|
|
|
|
to handle \'set\' magic. |
1477
|
|
|
|
|
|
|
|
1478
|
|
|
|
|
|
|
void sv_catpvf(SV* sv, const char* pat, ...)','name' => 'sv_catpvf'},'SvIOK_UV' => {'text' => 'Returns a boolean indicating whether the SV contains an unsigned integer. |
1479
|
|
|
|
|
|
|
|
1480
|
|
|
|
|
|
|
bool SvIOK_UV(SV* sv)','name' => 'SvIOK_UV'},'XSRETURN_PV' => {'text' => 'Return a copy of a string from an XSUB immediately. Uses C. |
1481
|
|
|
|
|
|
|
|
1482
|
|
|
|
|
|
|
void XSRETURN_PV(char* str)','name' => 'XSRETURN_PV'},'utf8_to_uvuni' => {'text' => 'Returns the Unicode code point of the first character in the string C |
1483
|
|
|
|
|
|
|
which is assumed to be in UTF-8 encoding; C will be set to the |
1484
|
|
|
|
|
|
|
length, in bytes, of that character. |
1485
|
|
|
|
|
|
|
|
1486
|
|
|
|
|
|
|
This function should only be used when returned UV is considered |
1487
|
|
|
|
|
|
|
an index into the Unicode semantic tables (e.g. swashes). |
1488
|
|
|
|
|
|
|
|
1489
|
|
|
|
|
|
|
If C does not point to a well-formed UTF-8 character, zero is |
1490
|
|
|
|
|
|
|
returned and retlen is set, if possible, to -1. |
1491
|
|
|
|
|
|
|
|
1492
|
|
|
|
|
|
|
UV utf8_to_uvuni(U8 *s, STRLEN* retlen)','name' => 'utf8_to_uvuni'},'sv_2io' => {'text' => 'Using various gambits, try to get an IO from an SV: the IO slot if its a |
1493
|
|
|
|
|
|
|
GV; or the recursive result if we\'re an RV; or the IO slot of the symbol |
1494
|
|
|
|
|
|
|
named after the PV if we\'re a string. |
1495
|
|
|
|
|
|
|
|
1496
|
|
|
|
|
|
|
IO* sv_2io(SV* sv)','name' => 'sv_2io'},'PUSHmortal' => {'text' => 'Push a new mortal SV onto the stack. The stack must have room for this |
1497
|
|
|
|
|
|
|
element. Does not handle \'set\' magic. Does not use C. See also |
1498
|
|
|
|
|
|
|
C, C and C. |
1499
|
|
|
|
|
|
|
|
1500
|
|
|
|
|
|
|
void PUSHmortal()','name' => 'PUSHmortal'},'perl_alloc' => {'text' => 'Allocates a new Perl interpreter. See L. |
1501
|
|
|
|
|
|
|
|
1502
|
|
|
|
|
|
|
PerlInterpreter* perl_alloc()','name' => 'perl_alloc'},'isALPHA' => {'text' => 'Returns a boolean indicating whether the C C is an ASCII alphabetic |
1503
|
|
|
|
|
|
|
character. |
1504
|
|
|
|
|
|
|
|
1505
|
|
|
|
|
|
|
bool isALPHA(char ch)','name' => 'isALPHA'},'Nullhv' => {'text' => 'Null HV pointer.','name' => 'Nullhv'},'av_fill' => {'text' => 'Ensure than an array has a given number of elements, equivalent to |
1506
|
|
|
|
|
|
|
Perl\'s C<$#array = $fill;>. |
1507
|
|
|
|
|
|
|
|
1508
|
|
|
|
|
|
|
void av_fill(AV* ar, I32 fill)','name' => 'av_fill'},'SvREFCNT_inc' => {'text' => 'Increments the reference count of the given SV. |
1509
|
|
|
|
|
|
|
|
1510
|
|
|
|
|
|
|
SV* SvREFCNT_inc(SV* sv)','name' => 'SvREFCNT_inc'},'SvTYPE' => {'text' => 'Returns the type of the SV. See C. |
1511
|
|
|
|
|
|
|
|
1512
|
|
|
|
|
|
|
svtype SvTYPE(SV* sv)','name' => 'SvTYPE'},'perl_construct' => {'text' => 'Initializes a new Perl interpreter. See L. |
1513
|
|
|
|
|
|
|
|
1514
|
|
|
|
|
|
|
void perl_construct(PerlInterpreter* interp)','name' => 'perl_construct'},'SvUOK' => {'text' => 'Returns a boolean indicating whether the SV contains an unsigned integer. |
1515
|
|
|
|
|
|
|
|
1516
|
|
|
|
|
|
|
void SvUOK(SV* sv)','name' => 'SvUOK'},'sv_dec' => {'text' => 'Auto-decrement of the value in the SV, doing string to numeric conversion |
1517
|
|
|
|
|
|
|
if necessary. Handles \'get\' magic. |
1518
|
|
|
|
|
|
|
|
1519
|
|
|
|
|
|
|
void sv_dec(SV* sv)','name' => 'sv_dec'},'SvIOK_only' => {'text' => 'Tells an SV that it is an integer and disables all other OK bits. |
1520
|
|
|
|
|
|
|
|
1521
|
|
|
|
|
|
|
void SvIOK_only(SV* sv)','name' => 'SvIOK_only'},'strLE' => {'text' => 'Test two strings to see if the first, C, is less than or equal to the |
1522
|
|
|
|
|
|
|
second, C. Returns true or false. |
1523
|
|
|
|
|
|
|
|
1524
|
|
|
|
|
|
|
bool strLE(char* s1, char* s2)','name' => 'strLE'},'SvROK_off' => {'text' => 'Unsets the RV status of an SV. |
1525
|
|
|
|
|
|
|
|
1526
|
|
|
|
|
|
|
void SvROK_off(SV* sv)','name' => 'SvROK_off'},'Renew' => {'text' => 'The XSUB-writer\'s interface to the C C function. |
1527
|
|
|
|
|
|
|
|
1528
|
|
|
|
|
|
|
void Renew(void* ptr, int nitems, type)','name' => 'Renew'},'grok_bin' => {'text' => 'converts a string representing a binary number to numeric form. |
1529
|
|
|
|
|
|
|
|
1530
|
|
|
|
|
|
|
On entry I and I<*len> give the string to scan, I<*flags> gives |
1531
|
|
|
|
|
|
|
conversion flags, and I should be NULL or a pointer to an NV. |
1532
|
|
|
|
|
|
|
The scan stops at the end of the string, or the first invalid character. |
1533
|
|
|
|
|
|
|
On return I<*len> is set to the length scanned string, and I<*flags> gives |
1534
|
|
|
|
|
|
|
output flags. |
1535
|
|
|
|
|
|
|
|
1536
|
|
|
|
|
|
|
If the value is <= UV_MAX it is returned as a UV, the output flags are clear, |
1537
|
|
|
|
|
|
|
and nothing is written to I<*result>. If the value is > UV_MAX C |
1538
|
|
|
|
|
|
|
returns UV_MAX, sets C in the output flags, |
1539
|
|
|
|
|
|
|
and writes the value to I<*result> (or the value is discarded if I |
1540
|
|
|
|
|
|
|
is NULL). |
1541
|
|
|
|
|
|
|
|
1542
|
|
|
|
|
|
|
The hex number may optionally be prefixed with "0b" or "b" unless |
1543
|
|
|
|
|
|
|
C is set in I<*flags> on entry. If |
1544
|
|
|
|
|
|
|
C is set in I<*flags> then the binary |
1545
|
|
|
|
|
|
|
number may use \'_\' characters to separate digits. |
1546
|
|
|
|
|
|
|
|
1547
|
|
|
|
|
|
|
UV grok_bin(char* start, STRLEN* len, I32* flags, NV *result)','name' => 'grok_bin'},'sv_2pvbyte_nolen' => {'text' => 'Return a pointer to the byte-encoded representation of the SV. |
1548
|
|
|
|
|
|
|
May cause the SV to be downgraded from UTF-8 as a side-effect. |
1549
|
|
|
|
|
|
|
|
1550
|
|
|
|
|
|
|
Usually accessed via the C macro. |
1551
|
|
|
|
|
|
|
|
1552
|
|
|
|
|
|
|
char* sv_2pvbyte_nolen(SV* sv)','name' => 'sv_2pvbyte_nolen'},'SvOK' => {'text' => 'Returns a boolean indicating whether the value is an SV. It also tells |
1553
|
|
|
|
|
|
|
whether the value is defined or not. |
1554
|
|
|
|
|
|
|
|
1555
|
|
|
|
|
|
|
bool SvOK(SV* sv)','name' => 'SvOK'},'perl_free' => {'text' => 'Releases a Perl interpreter. See L. |
1556
|
|
|
|
|
|
|
|
1557
|
|
|
|
|
|
|
void perl_free(PerlInterpreter* interp)','name' => 'perl_free'},'sv_setref_nv' => {'text' => 'Copies a double into a new SV, optionally blessing the SV. The C |
1558
|
|
|
|
|
|
|
argument will be upgraded to an RV. That RV will be modified to point to |
1559
|
|
|
|
|
|
|
the new SV. The C argument indicates the package for the |
1560
|
|
|
|
|
|
|
blessing. Set C to C to avoid the blessing. The new SV |
1561
|
|
|
|
|
|
|
will have a reference count of 1, and the RV will be returned. |
1562
|
|
|
|
|
|
|
|
1563
|
|
|
|
|
|
|
SV* sv_setref_nv(SV* rv, const char* classname, NV nv)','name' => 'sv_setref_nv'},'uvchr_to_utf8' => {'text' => 'Adds the UTF-8 representation of the Native codepoint C to the end |
1564
|
|
|
|
|
|
|
of the string C; C should be have at least C free |
1565
|
|
|
|
|
|
|
bytes available. The return value is the pointer to the byte after the |
1566
|
|
|
|
|
|
|
end of the new character. In other words, |
1567
|
|
|
|
|
|
|
|
1568
|
|
|
|
|
|
|
d = uvchr_to_utf8(d, uv); |
1569
|
|
|
|
|
|
|
|
1570
|
|
|
|
|
|
|
is the recommended wide native character-aware way of saying |
1571
|
|
|
|
|
|
|
|
1572
|
|
|
|
|
|
|
*(d++) = uv; |
1573
|
|
|
|
|
|
|
|
1574
|
|
|
|
|
|
|
U8* uvchr_to_utf8(U8 *d, UV uv)','name' => 'uvchr_to_utf8'},'mg_find' => {'text' => 'Finds the magic pointer for type matching the SV. See C. |
1575
|
|
|
|
|
|
|
|
1576
|
|
|
|
|
|
|
MAGIC* mg_find(SV* sv, int type)','name' => 'mg_find'},'isDIGIT' => {'text' => 'Returns a boolean indicating whether the C C is an ASCII |
1577
|
|
|
|
|
|
|
digit. |
1578
|
|
|
|
|
|
|
|
1579
|
|
|
|
|
|
|
bool isDIGIT(char ch)','name' => 'isDIGIT'},'SvNOK_on' => {'text' => 'Tells an SV that it is a double. |
1580
|
|
|
|
|
|
|
|
1581
|
|
|
|
|
|
|
void SvNOK_on(SV* sv)','name' => 'SvNOK_on'},'XPUSHmortal' => {'text' => 'Push a new mortal SV onto the stack, extending the stack if necessary. Does |
1582
|
|
|
|
|
|
|
not handle \'set\' magic. Does not use C. See also C, |
1583
|
|
|
|
|
|
|
C and C. |
1584
|
|
|
|
|
|
|
|
1585
|
|
|
|
|
|
|
void XPUSHmortal()','name' => 'XPUSHmortal'},'eval_pv' => {'text' => 'Tells Perl to C the given string and return an SV* result. |
1586
|
|
|
|
|
|
|
|
1587
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
1588
|
|
|
|
|
|
|
|
1589
|
|
|
|
|
|
|
SV* eval_pv(const char* p, I32 croak_on_error)','name' => 'eval_pv'},'newSVpvn_share' => {'text' => 'Creates a new SV with its SvPVX pointing to a shared string in the string |
1590
|
|
|
|
|
|
|
table. If the string does not already exist in the table, it is created |
1591
|
|
|
|
|
|
|
first. Turns on READONLY and FAKE. The string\'s hash is stored in the UV |
1592
|
|
|
|
|
|
|
slot of the SV; if the C parameter is non-zero, that value is used; |
1593
|
|
|
|
|
|
|
otherwise the hash is computed. The idea here is that as the string table |
1594
|
|
|
|
|
|
|
is used for shared hash keys these strings will have SvPVX == HeKEY and |
1595
|
|
|
|
|
|
|
hash lookup will avoid string compare. |
1596
|
|
|
|
|
|
|
|
1597
|
|
|
|
|
|
|
SV* newSVpvn_share(const char* s, I32 len, U32 hash)','name' => 'newSVpvn_share'},'sv_setpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
1598
|
|
|
|
|
|
|
|
1599
|
|
|
|
|
|
|
void sv_setpvf_mg(SV *sv, const char* pat, ...)','name' => 'sv_setpvf_mg'},'SvPOKp' => {'text' => 'Returns a boolean indicating whether the SV contains a character string. |
1600
|
|
|
|
|
|
|
Checks the B setting. Use C. |
1601
|
|
|
|
|
|
|
|
1602
|
|
|
|
|
|
|
bool SvPOKp(SV* sv)','name' => 'SvPOKp'},'sv_free' => {'text' => 'Decrement an SV\'s reference count, and if it drops to zero, call |
1603
|
|
|
|
|
|
|
C to invoke destructors and free up any memory used by |
1604
|
|
|
|
|
|
|
the body; finally, deallocate the SV\'s head itself. |
1605
|
|
|
|
|
|
|
Normally called via a wrapper macro C. |
1606
|
|
|
|
|
|
|
|
1607
|
|
|
|
|
|
|
void sv_free(SV* sv)','name' => 'sv_free'},'sv_catpvn' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. The |
1608
|
|
|
|
|
|
|
C indicates number of bytes to copy. If the SV has the UTF-8 |
1609
|
|
|
|
|
|
|
status set, then the bytes appended should be valid UTF-8. |
1610
|
|
|
|
|
|
|
Handles \'get\' magic, but not \'set\' magic. See C. |
1611
|
|
|
|
|
|
|
|
1612
|
|
|
|
|
|
|
void sv_catpvn(SV* sv, const char* ptr, STRLEN len)','name' => 'sv_catpvn'},'SvPVbyte_force' => {'text' => 'Like C, but converts sv to byte representation first if necessary. |
1613
|
|
|
|
|
|
|
|
1614
|
|
|
|
|
|
|
char* SvPVbyte_force(SV* sv, STRLEN len)','name' => 'SvPVbyte_force'},'newCONSTSUB' => {'text' => 'Creates a constant sub equivalent to Perl C which is |
1615
|
|
|
|
|
|
|
eligible for inlining at compile-time. |
1616
|
|
|
|
|
|
|
|
1617
|
|
|
|
|
|
|
CV* newCONSTSUB(HV* stash, char* name, SV* sv)','name' => 'newCONSTSUB'},'sv_setref_pv' => {'text' => 'Copies a pointer into a new SV, optionally blessing the SV. The C |
1618
|
|
|
|
|
|
|
argument will be upgraded to an RV. That RV will be modified to point to |
1619
|
|
|
|
|
|
|
the new SV. If the C argument is NULL then C will be placed |
1620
|
|
|
|
|
|
|
into the SV. The C argument indicates the package for the |
1621
|
|
|
|
|
|
|
blessing. Set C to C to avoid the blessing. The new SV |
1622
|
|
|
|
|
|
|
will have a reference count of 1, and the RV will be returned. |
1623
|
|
|
|
|
|
|
|
1624
|
|
|
|
|
|
|
Do not use with other Perl types such as HV, AV, SV, CV, because those |
1625
|
|
|
|
|
|
|
objects will become corrupted by the pointer copy process. |
1626
|
|
|
|
|
|
|
|
1627
|
|
|
|
|
|
|
Note that C copies the string while this copies the pointer. |
1628
|
|
|
|
|
|
|
|
1629
|
|
|
|
|
|
|
SV* sv_setref_pv(SV* rv, const char* classname, void* pv)','name' => 'sv_setref_pv'},'SvSHARE' => {'text' => 'Arranges for sv to be shared between threads if a suitable module |
1630
|
|
|
|
|
|
|
has been loaded. |
1631
|
|
|
|
|
|
|
|
1632
|
|
|
|
|
|
|
void SvSHARE(SV* sv)','name' => 'SvSHARE'},'av_pop' => {'text' => 'Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array |
1633
|
|
|
|
|
|
|
is empty. |
1634
|
|
|
|
|
|
|
|
1635
|
|
|
|
|
|
|
SV* av_pop(AV* ar)','name' => 'av_pop'},'fbm_compile' => {'text' => 'Analyses the string in order to make fast searches on it using fbm_instr() |
1636
|
|
|
|
|
|
|
-- the Boyer-Moore algorithm. |
1637
|
|
|
|
|
|
|
|
1638
|
|
|
|
|
|
|
void fbm_compile(SV* sv, U32 flags)','name' => 'fbm_compile'},'sv_utf8_downgrade' => {'text' => 'Attempts to convert the PV of an SV from characters to bytes. |
1639
|
|
|
|
|
|
|
If the PV contains a character beyond byte, this conversion will fail; |
1640
|
|
|
|
|
|
|
in this case, either returns false or, if C is not |
1641
|
|
|
|
|
|
|
true, croaks. |
1642
|
|
|
|
|
|
|
|
1643
|
|
|
|
|
|
|
This is not as a general purpose Unicode to byte encoding interface: |
1644
|
|
|
|
|
|
|
use the Encode extension for that. |
1645
|
|
|
|
|
|
|
|
1646
|
|
|
|
|
|
|
NOTE: this function is experimental and may change or be |
1647
|
|
|
|
|
|
|
removed without notice. |
1648
|
|
|
|
|
|
|
|
1649
|
|
|
|
|
|
|
bool sv_utf8_downgrade(SV *sv, bool fail_ok)','name' => 'sv_utf8_downgrade'},'SvNIOKp' => {'text' => 'Returns a boolean indicating whether the SV contains a number, integer or |
1650
|
|
|
|
|
|
|
double. Checks the B setting. Use C. |
1651
|
|
|
|
|
|
|
|
1652
|
|
|
|
|
|
|
bool SvNIOKp(SV* sv)','name' => 'SvNIOKp'},'croak' => {'text' => 'This is the XSUB-writer\'s interface to Perl\'s C function. |
1653
|
|
|
|
|
|
|
Normally call this function the same way you call the C C |
1654
|
|
|
|
|
|
|
function. Calling C returns control directly to Perl, |
1655
|
|
|
|
|
|
|
sidestepping the normal C order of execution. See C. |
1656
|
|
|
|
|
|
|
|
1657
|
|
|
|
|
|
|
If you want to throw an exception object, assign the object to |
1658
|
|
|
|
|
|
|
C<$@> and then pass C to croak(): |
1659
|
|
|
|
|
|
|
|
1660
|
|
|
|
|
|
|
errsv = get_sv("@", TRUE); |
1661
|
|
|
|
|
|
|
sv_setsv(errsv, exception_object); |
1662
|
|
|
|
|
|
|
croak(Nullch); |
1663
|
|
|
|
|
|
|
|
1664
|
|
|
|
|
|
|
void croak(const char* pat, ...)','name' => 'croak'},'sortsv' => {'text' => 'Sort an array. Here is an example: |
1665
|
|
|
|
|
|
|
|
1666
|
|
|
|
|
|
|
sortsv(AvARRAY(av), av_len(av)+1, Perl_sv_cmp_locale); |
1667
|
|
|
|
|
|
|
|
1668
|
|
|
|
|
|
|
See lib/sort.pm for details about controlling the sorting algorithm. |
1669
|
|
|
|
|
|
|
|
1670
|
|
|
|
|
|
|
void sortsv(SV ** array, size_t num_elts, SVCOMPARE_t cmp)','name' => 'sortsv'},'THIS' => {'text' => 'Variable which is setup by C to designate the object in a C++ |
1671
|
|
|
|
|
|
|
XSUB. This is always the proper type for the C++ object. See C and |
1672
|
|
|
|
|
|
|
L. |
1673
|
|
|
|
|
|
|
|
1674
|
|
|
|
|
|
|
(whatever) THIS','name' => 'THIS'},'utf8_hop' => {'text' => 'Return the UTF-8 pointer C displaced by C characters, either |
1675
|
|
|
|
|
|
|
forward or backward. |
1676
|
|
|
|
|
|
|
|
1677
|
|
|
|
|
|
|
WARNING: do not use the following unless you *know* C is within |
1678
|
|
|
|
|
|
|
the UTF-8 data pointed to by C *and* that on entry C is aligned |
1679
|
|
|
|
|
|
|
on the first byte of character or just after the last byte of a character. |
1680
|
|
|
|
|
|
|
|
1681
|
|
|
|
|
|
|
U8* utf8_hop(U8 *s, I32 off)','name' => 'utf8_hop'},'sv_len_utf8' => {'text' => 'Returns the number of characters in the string in an SV, counting wide |
1682
|
|
|
|
|
|
|
UTF-8 bytes as a single character. Handles magic and type coercion. |
1683
|
|
|
|
|
|
|
|
1684
|
|
|
|
|
|
|
STRLEN sv_len_utf8(SV* sv)','name' => 'sv_len_utf8'},'XSRETURN' => {'text' => 'Return from XSUB, indicating number of items on the stack. This is usually |
1685
|
|
|
|
|
|
|
handled by C. |
1686
|
|
|
|
|
|
|
|
1687
|
|
|
|
|
|
|
void XSRETURN(int nitems)','name' => 'XSRETURN'},'sv_setref_pvn' => {'text' => 'Copies a string into a new SV, optionally blessing the SV. The length of the |
1688
|
|
|
|
|
|
|
string must be specified with C. The C argument will be upgraded to |
1689
|
|
|
|
|
|
|
an RV. That RV will be modified to point to the new SV. The C |
1690
|
|
|
|
|
|
|
argument indicates the package for the blessing. Set C to |
1691
|
|
|
|
|
|
|
C to avoid the blessing. The new SV will have a reference count |
1692
|
|
|
|
|
|
|
of 1, and the RV will be returned. |
1693
|
|
|
|
|
|
|
|
1694
|
|
|
|
|
|
|
Note that C copies the pointer while this copies the string. |
1695
|
|
|
|
|
|
|
|
1696
|
|
|
|
|
|
|
SV* sv_setref_pvn(SV* rv, const char* classname, char* pv, STRLEN n)','name' => 'sv_setref_pvn'},'SVt_PVMG' => {'text' => 'Type flag for blessed scalars. See C.','name' => 'SVt_PVMG'},'PUSHp' => {'text' => 'Push a string onto the stack. The stack must have room for this element. |
1697
|
|
|
|
|
|
|
The C indicates the length of the string. Handles \'set\' magic. Uses |
1698
|
|
|
|
|
|
|
C, so C or C should be called to declare it. Do not |
1699
|
|
|
|
|
|
|
call multiple C-oriented macros to return lists from XSUB\'s - see |
1700
|
|
|
|
|
|
|
C instead. See also C and C. |
1701
|
|
|
|
|
|
|
|
1702
|
|
|
|
|
|
|
void PUSHp(char* str, STRLEN len)','name' => 'PUSHp'},'scan_bin' => {'text' => 'For backwards compatibility. Use C instead. |
1703
|
|
|
|
|
|
|
|
1704
|
|
|
|
|
|
|
NV scan_bin(char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_bin'},'Nullcv' => {'text' => 'Null CV pointer.','name' => 'Nullcv'},'hv_clear_placeholders' => {'text' => 'Clears any placeholders from a hash. If a restricted hash has any of its keys |
1705
|
|
|
|
|
|
|
marked as readonly and the key is subsequently deleted, the key is not actually |
1706
|
|
|
|
|
|
|
deleted but is marked by assigning it a value of &PL_sv_placeholder. This tags |
1707
|
|
|
|
|
|
|
it so it will be ignored by future operations such as iterating over the hash, |
1708
|
|
|
|
|
|
|
but will still allow the hash to have a value reaasigned to the key at some |
1709
|
|
|
|
|
|
|
future point. This function clears any such placeholder keys from the hash. |
1710
|
|
|
|
|
|
|
See Hash::Util::lock_keys() for an example of its use. |
1711
|
|
|
|
|
|
|
|
1712
|
|
|
|
|
|
|
void hv_clear_placeholders(HV* hb)','name' => 'hv_clear_placeholders'},'mXPUSHi' => {'text' => 'Push an integer onto the stack, extending the stack if necessary. Handles |
1713
|
|
|
|
|
|
|
\'set\' magic. Does not use C. See also C, C and |
1714
|
|
|
|
|
|
|
C. |
1715
|
|
|
|
|
|
|
|
1716
|
|
|
|
|
|
|
void mXPUSHi(IV iv)','name' => 'mXPUSHi'},'dAX' => {'text' => 'Sets up the C variable. |
1717
|
|
|
|
|
|
|
This is usually handled automatically by C by calling C. |
1718
|
|
|
|
|
|
|
|
1719
|
|
|
|
|
|
|
dAX;','name' => 'dAX'},'sv_2pv_nolen' => {'text' => 'Like C, but doesn\'t return the length too. You should usually |
1720
|
|
|
|
|
|
|
use the macro wrapper C instead. |
1721
|
|
|
|
|
|
|
char* sv_2pv_nolen(SV* sv)','name' => 'sv_2pv_nolen'},'get_av' => {'text' => 'Returns the AV of the specified Perl array. If C is set and the |
1722
|
|
|
|
|
|
|
Perl variable does not exist then it will be created. If C is not |
1723
|
|
|
|
|
|
|
set and the variable does not exist then NULL is returned. |
1724
|
|
|
|
|
|
|
|
1725
|
|
|
|
|
|
|
NOTE: the perl_ form of this function is deprecated. |
1726
|
|
|
|
|
|
|
|
1727
|
|
|
|
|
|
|
AV* get_av(const char* name, I32 create)','name' => 'get_av'},'PL_sv_undef' => {'text' => 'This is the C SV. Always refer to this as C<&PL_sv_undef>. |
1728
|
|
|
|
|
|
|
|
1729
|
|
|
|
|
|
|
SV PL_sv_undef','name' => 'PL_sv_undef'},'SvPVbyte' => {'text' => 'Like C, but converts sv to byte representation first if necessary. |
1730
|
|
|
|
|
|
|
|
1731
|
|
|
|
|
|
|
char* SvPVbyte(SV* sv, STRLEN len)','name' => 'SvPVbyte'},'hv_iterkeysv' => {'text' => 'Returns the key as an C from the current position of the hash |
1732
|
|
|
|
|
|
|
iterator. The return value will always be a mortal copy of the key. Also |
1733
|
|
|
|
|
|
|
see C. |
1734
|
|
|
|
|
|
|
|
1735
|
|
|
|
|
|
|
SV* hv_iterkeysv(HE* entry)','name' => 'hv_iterkeysv'},'grok_number' => {'text' => 'Recognise (or not) a number. The type of the number is returned |
1736
|
|
|
|
|
|
|
(0 if unrecognised), otherwise it is a bit-ORed combination of |
1737
|
|
|
|
|
|
|
IS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT, |
1738
|
|
|
|
|
|
|
IS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h). |
1739
|
|
|
|
|
|
|
|
1740
|
|
|
|
|
|
|
If the value of the number can fit an in UV, it is returned in the *valuep |
1741
|
|
|
|
|
|
|
IS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV |
1742
|
|
|
|
|
|
|
will never be set unless *valuep is valid, but *valuep may have been assigned |
1743
|
|
|
|
|
|
|
to during processing even though IS_NUMBER_IN_UV is not set on return. |
1744
|
|
|
|
|
|
|
If valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when |
1745
|
|
|
|
|
|
|
valuep is non-NULL, but no actual assignment (or SEGV) will occur. |
1746
|
|
|
|
|
|
|
|
1747
|
|
|
|
|
|
|
IS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were |
1748
|
|
|
|
|
|
|
seen (in which case *valuep gives the true value truncated to an integer), and |
1749
|
|
|
|
|
|
|
IS_NUMBER_NEG if the number is negative (in which case *valuep holds the |
1750
|
|
|
|
|
|
|
absolute value). IS_NUMBER_IN_UV is not set if e notation was used or the |
1751
|
|
|
|
|
|
|
number is larger than a UV. |
1752
|
|
|
|
|
|
|
|
1753
|
|
|
|
|
|
|
int grok_number(const char *pv, STRLEN len, UV *valuep)','name' => 'grok_number'},'SvIVx' => {'text' => 'Coerces the given SV to an integer and returns it. Guarantees to evaluate |
1754
|
|
|
|
|
|
|
sv only once. Use the more efficient C otherwise. |
1755
|
|
|
|
|
|
|
|
1756
|
|
|
|
|
|
|
IV SvIVx(SV* sv)','name' => 'SvIVx'},'grok_numeric_radix' => {'text' => 'Scan and skip for a numeric decimal separator (radix). |
1757
|
|
|
|
|
|
|
|
1758
|
|
|
|
|
|
|
bool grok_numeric_radix(const char **sp, const char *send)','name' => 'grok_numeric_radix'},'XST_mNO' => {'text' => 'Place C<&PL_sv_no> into the specified position C on the |
1759
|
|
|
|
|
|
|
stack. |
1760
|
|
|
|
|
|
|
|
1761
|
|
|
|
|
|
|
void XST_mNO(int pos)','name' => 'XST_mNO'},'toUPPER' => {'text' => 'Converts the specified character to uppercase. |
1762
|
|
|
|
|
|
|
|
1763
|
|
|
|
|
|
|
char toUPPER(char ch)','name' => 'toUPPER'},'mPUSHp' => {'text' => 'Push a string onto the stack. The stack must have room for this element. |
1764
|
|
|
|
|
|
|
The C indicates the length of the string. Handles \'set\' magic. Does |
1765
|
|
|
|
|
|
|
not use C. See also C, C and C. |
1766
|
|
|
|
|
|
|
|
1767
|
|
|
|
|
|
|
void mPUSHp(char* str, STRLEN len)','name' => 'mPUSHp'},'av_delete' => {'text' => 'Deletes the element indexed by C from the array. Returns the |
1768
|
|
|
|
|
|
|
deleted element. C is currently ignored. |
1769
|
|
|
|
|
|
|
|
1770
|
|
|
|
|
|
|
SV* av_delete(AV* ar, I32 key, I32 flags)','name' => 'av_delete'},'is_utf8_string_loc' => {'text' => 'Like is_ut8_string but store the location of the failure in |
1771
|
|
|
|
|
|
|
the last argument. |
1772
|
|
|
|
|
|
|
|
1773
|
|
|
|
|
|
|
bool is_utf8_string_loc(U8 *s, STRLEN len, U8 **p)','name' => 'is_utf8_string_loc'},'utf8_distance' => {'text' => 'Returns the number of UTF-8 characters between the UTF-8 pointers C |
1774
|
|
|
|
|
|
|
and C. |
1775
|
|
|
|
|
|
|
|
1776
|
|
|
|
|
|
|
WARNING: use only if you *know* that the pointers point inside the |
1777
|
|
|
|
|
|
|
same UTF-8 buffer. |
1778
|
|
|
|
|
|
|
|
1779
|
|
|
|
|
|
|
IV utf8_distance(U8 *a, U8 *b)','name' => 'utf8_distance'},'SAVETMPS' => {'text' => 'Opening bracket for temporaries on a callback. See C and |
1780
|
|
|
|
|
|
|
L. |
1781
|
|
|
|
|
|
|
|
1782
|
|
|
|
|
|
|
SAVETMPS;','name' => 'SAVETMPS'},'sv_gets' => {'text' => 'Get a line from the filehandle and store it into the SV, optionally |
1783
|
|
|
|
|
|
|
appending to the currently-stored string. |
1784
|
|
|
|
|
|
|
|
1785
|
|
|
|
|
|
|
char* sv_gets(SV* sv, PerlIO* fp, I32 append)','name' => 'sv_gets'},'AvFILL' => {'text' => 'Same as C. Deprecated, use C instead. |
1786
|
|
|
|
|
|
|
|
1787
|
|
|
|
|
|
|
int AvFILL(AV* av)','name' => 'AvFILL'},'SvPVutf8x' => {'text' => 'Like C, but converts sv to utf8 first if necessary. |
1788
|
|
|
|
|
|
|
Guarantees to evaluate sv only once; use the more efficient C |
1789
|
|
|
|
|
|
|
otherwise. |
1790
|
|
|
|
|
|
|
|
1791
|
|
|
|
|
|
|
char* SvPVutf8x(SV* sv, STRLEN len)','name' => 'SvPVutf8x'},'ORIGMARK' => {'text' => 'The original stack mark for the XSUB. See C.','name' => 'ORIGMARK'},'sv_collxfrm' => {'text' => 'Add Collate Transform magic to an SV if it doesn\'t already have it. |
1792
|
|
|
|
|
|
|
|
1793
|
|
|
|
|
|
|
Any scalar variable may carry PERL_MAGIC_collxfrm magic that contains the |
1794
|
|
|
|
|
|
|
scalar data of the variable, but transformed to such a format that a normal |
1795
|
|
|
|
|
|
|
memory comparison can be used to compare the data according to the locale |
1796
|
|
|
|
|
|
|
settings. |
1797
|
|
|
|
|
|
|
|
1798
|
|
|
|
|
|
|
char* sv_collxfrm(SV* sv, STRLEN* nxp)','name' => 'sv_collxfrm'},'sv_2cv' => {'text' => 'Using various gambits, try to get a CV from an SV; in addition, try if |
1799
|
|
|
|
|
|
|
possible to set C<*st> and C<*gvp> to the stash and GV associated with it. |
1800
|
|
|
|
|
|
|
|
1801
|
|
|
|
|
|
|
CV* sv_2cv(SV* sv, HV** st, GV** gvp, I32 lref)','name' => 'sv_2cv'},'SvPV_force_nomg' => {'text' => 'Like C but will force the SV into containing just a string |
1802
|
|
|
|
|
|
|
(C). You want force if you are going to update the C |
1803
|
|
|
|
|
|
|
directly. Doesn\'t process magic. |
1804
|
|
|
|
|
|
|
|
1805
|
|
|
|
|
|
|
char* SvPV_force_nomg(SV* sv, STRLEN len)','name' => 'SvPV_force_nomg'},'SP' => {'text' => 'Stack pointer. This is usually handled by C. See C and |
1806
|
|
|
|
|
|
|
C.','name' => 'SP'},'SvPOK_only' => {'text' => 'Tells an SV that it is a string and disables all other OK bits. |
1807
|
|
|
|
|
|
|
Will also turn off the UTF-8 status. |
1808
|
|
|
|
|
|
|
|
1809
|
|
|
|
|
|
|
void SvPOK_only(SV* sv)','name' => 'SvPOK_only'},'SvSetSV_nosteal' => {'text' => 'Calls a non-destructive version of C if dsv is not the same as |
1810
|
|
|
|
|
|
|
ssv. May evaluate arguments more than once. |
1811
|
|
|
|
|
|
|
|
1812
|
|
|
|
|
|
|
void SvSetSV_nosteal(SV* dsv, SV* ssv)','name' => 'SvSetSV_nosteal'},'sv_catpvn_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
1813
|
|
|
|
|
|
|
|
1814
|
|
|
|
|
|
|
void sv_catpvn_mg(SV *sv, const char *ptr, STRLEN len)','name' => 'sv_catpvn_mg'},'POPpx' => {'text' => 'Pops a string off the stack. |
1815
|
|
|
|
|
|
|
Requires a variable STRLEN n_a in scope. |
1816
|
|
|
|
|
|
|
|
1817
|
|
|
|
|
|
|
char* POPpx','name' => 'POPpx'},'sv_usepvn_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
1818
|
|
|
|
|
|
|
|
1819
|
|
|
|
|
|
|
void sv_usepvn_mg(SV *sv, char *ptr, STRLEN len)','name' => 'sv_usepvn_mg'},'sv_uv' => {'text' => 'A private implementation of the C macro for compilers which can\'t |
1820
|
|
|
|
|
|
|
cope with complex macro expressions. Always use the macro instead. |
1821
|
|
|
|
|
|
|
|
1822
|
|
|
|
|
|
|
UV sv_uv(SV* sv)','name' => 'sv_uv'},'sv_pvbyte' => {'text' => 'Use C instead. |
1823
|
|
|
|
|
|
|
|
1824
|
|
|
|
|
|
|
char* sv_pvbyte(SV *sv)','name' => 'sv_pvbyte'},'SvSTASH' => {'text' => 'Returns the stash of the SV. |
1825
|
|
|
|
|
|
|
|
1826
|
|
|
|
|
|
|
HV* SvSTASH(SV* sv)','name' => 'SvSTASH'},'hv_fetch' => {'text' => 'Returns the SV which corresponds to the specified key in the hash. The |
1827
|
|
|
|
|
|
|
C is the length of the key. If C is set then the fetch will be |
1828
|
|
|
|
|
|
|
part of a store. Check that the return value is non-null before |
1829
|
|
|
|
|
|
|
dereferencing it to an C. |
1830
|
|
|
|
|
|
|
|
1831
|
|
|
|
|
|
|
See L for more |
1832
|
|
|
|
|
|
|
information on how to use this function on tied hashes. |
1833
|
|
|
|
|
|
|
|
1834
|
|
|
|
|
|
|
SV** hv_fetch(HV* tb, const char* key, I32 klen, I32 lval)','name' => 'hv_fetch'},'Zero' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the |
1835
|
|
|
|
|
|
|
destination, C is the number of items, and C is the type. |
1836
|
|
|
|
|
|
|
|
1837
|
|
|
|
|
|
|
void Zero(void* dest, int nitems, type)','name' => 'Zero'},'PL_modglobal' => {'text' => 'C is a general purpose, interpreter global HV for use by |
1838
|
|
|
|
|
|
|
extensions that need to keep information on a per-interpreter basis. |
1839
|
|
|
|
|
|
|
In a pinch, it can also be used as a symbol table for extensions |
1840
|
|
|
|
|
|
|
to share data among each other. It is a good idea to use keys |
1841
|
|
|
|
|
|
|
prefixed by the package name of the extension that owns the data. |
1842
|
|
|
|
|
|
|
|
1843
|
|
|
|
|
|
|
HV* PL_modglobal','name' => 'PL_modglobal'},'XSRETURN_UNDEF' => {'text' => 'Return C<&PL_sv_undef> from an XSUB immediately. Uses C. |
1844
|
|
|
|
|
|
|
|
1845
|
|
|
|
|
|
|
XSRETURN_UNDEF;','name' => 'XSRETURN_UNDEF'},'sv_unref_flags' => {'text' => 'Unsets the RV status of the SV, and decrements the reference count of |
1846
|
|
|
|
|
|
|
whatever was being referenced by the RV. This can almost be thought of |
1847
|
|
|
|
|
|
|
as a reversal of C. The C argument can contain |
1848
|
|
|
|
|
|
|
C to force the reference count to be decremented |
1849
|
|
|
|
|
|
|
(otherwise the decrementing is conditional on the reference count being |
1850
|
|
|
|
|
|
|
different from one or the reference being a readonly SV). |
1851
|
|
|
|
|
|
|
See C. |
1852
|
|
|
|
|
|
|
|
1853
|
|
|
|
|
|
|
void sv_unref_flags(SV* sv, U32 flags)','name' => 'sv_unref_flags'},'sv_iv' => {'text' => 'A private implementation of the C macro for compilers which can\'t |
1854
|
|
|
|
|
|
|
cope with complex macro expressions. Always use the macro instead. |
1855
|
|
|
|
|
|
|
|
1856
|
|
|
|
|
|
|
IV sv_iv(SV* sv)','name' => 'sv_iv'},'SvRV' => {'text' => 'Dereferences an RV to return the SV. |
1857
|
|
|
|
|
|
|
|
1858
|
|
|
|
|
|
|
SV* SvRV(SV* sv)','name' => 'SvRV'},'hv_scalar' => {'text' => 'Evaluates the hash in scalar context and returns the result. Handles magic when the hash is tied. |
1859
|
|
|
|
|
|
|
|
1860
|
|
|
|
|
|
|
SV* hv_scalar(HV* hv)','name' => 'hv_scalar'},'Nullch' => {'text' => 'Null character pointer.','name' => 'Nullch'},'mg_copy' => {'text' => 'Copies the magic from one SV to another. See C. |
1861
|
|
|
|
|
|
|
|
1862
|
|
|
|
|
|
|
int mg_copy(SV* sv, SV* nsv, const char* key, I32 klen)','name' => 'mg_copy'},'HeSVKEY_force' => {'text' => 'Returns the key as an C. Will create and return a temporary mortal |
1863
|
|
|
|
|
|
|
C if the hash entry contains only a C key. |
1864
|
|
|
|
|
|
|
|
1865
|
|
|
|
|
|
|
SV* HeSVKEY_force(HE* he)','name' => 'HeSVKEY_force'},'sv_rvweaken' => {'text' => 'Weaken a reference: set the C flag on this RV; give the |
1866
|
|
|
|
|
|
|
referred-to SV C magic if it hasn\'t already; and |
1867
|
|
|
|
|
|
|
push a back-reference to this RV onto the array of backreferences |
1868
|
|
|
|
|
|
|
associated with that magic. |
1869
|
|
|
|
|
|
|
|
1870
|
|
|
|
|
|
|
SV* sv_rvweaken(SV *sv)','name' => 'sv_rvweaken'},'grok_oct' => {'text' => 'UV grok_oct(char* start, STRLEN* len, I32* flags, NV *result)','name' => 'grok_oct'},'MARK' => {'text' => 'Stack marker variable for the XSUB. See C.','name' => 'MARK'},'scan_hex' => {'text' => 'For backwards compatibility. Use C instead. |
1871
|
|
|
|
|
|
|
|
1872
|
|
|
|
|
|
|
NV scan_hex(char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_hex'},'newSVpvn' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the |
1873
|
|
|
|
|
|
|
SV is set to 1. Note that if C is zero, Perl will create a zero length |
1874
|
|
|
|
|
|
|
string. You are responsible for ensuring that the source string is at least |
1875
|
|
|
|
|
|
|
C bytes long. If the C argument is NULL the new SV will be undefined. |
1876
|
|
|
|
|
|
|
|
1877
|
|
|
|
|
|
|
SV* newSVpvn(const char* s, STRLEN len)','name' => 'newSVpvn'},'sv_magicext' => {'text' => 'Adds magic to an SV, upgrading it if necessary. Applies the |
1878
|
|
|
|
|
|
|
supplied vtable and returns pointer to the magic added. |
1879
|
|
|
|
|
|
|
|
1880
|
|
|
|
|
|
|
Note that sv_magicext will allow things that sv_magic will not. |
1881
|
|
|
|
|
|
|
In particular you can add magic to SvREADONLY SVs and and more than |
1882
|
|
|
|
|
|
|
one instance of the same \'how\' |
1883
|
|
|
|
|
|
|
|
1884
|
|
|
|
|
|
|
I C is greater then zero then a savepvn() I of C is stored, |
1885
|
|
|
|
|
|
|
if C is zero then C is stored as-is and - as another special |
1886
|
|
|
|
|
|
|
case - if C<(name && namelen == HEf_SVKEY)> then C is assumed to contain |
1887
|
|
|
|
|
|
|
an C and has its REFCNT incremented |
1888
|
|
|
|
|
|
|
|
1889
|
|
|
|
|
|
|
(This is now used as a subroutine by sv_magic.) |
1890
|
|
|
|
|
|
|
|
1891
|
|
|
|
|
|
|
MAGIC * sv_magicext(SV* sv, SV* obj, int how, MGVTBL *vtbl, const char* name, I32 namlen )','name' => 'sv_magicext'},'newRV_inc' => {'text' => 'Creates an RV wrapper for an SV. The reference count for the original SV is |
1892
|
|
|
|
|
|
|
incremented. |
1893
|
|
|
|
|
|
|
|
1894
|
|
|
|
|
|
|
SV* newRV_inc(SV* sv)','name' => 'newRV_inc'},'SVt_PVCV' => {'text' => 'Type flag for code refs. See C.','name' => 'SVt_PVCV'},'av_push' => {'text' => 'Pushes an SV onto the end of the array. The array will grow automatically |
1895
|
|
|
|
|
|
|
to accommodate the addition. |
1896
|
|
|
|
|
|
|
|
1897
|
|
|
|
|
|
|
void av_push(AV* ar, SV* val)','name' => 'av_push'},'unpackstring' => {'text' => 'The engine implementing unpack() Perl function. C puts the |
1898
|
|
|
|
|
|
|
extracted list items on the stack and returns the number of elements. |
1899
|
|
|
|
|
|
|
Issue C before and C after the call to this function. |
1900
|
|
|
|
|
|
|
|
1901
|
|
|
|
|
|
|
I32 unpackstring(char *pat, char *patend, char *s, char *strend, U32 flags)','name' => 'unpackstring'},'POPn' => {'text' => 'Pops a double off the stack. |
1902
|
|
|
|
|
|
|
|
1903
|
|
|
|
|
|
|
NV POPn','name' => 'POPn'},'XSRETURN_NO' => {'text' => 'Return C<&PL_sv_no> from an XSUB immediately. Uses C. |
1904
|
|
|
|
|
|
|
|
1905
|
|
|
|
|
|
|
XSRETURN_NO;','name' => 'XSRETURN_NO'},'av_extend' => {'text' => 'Pre-extend an array. The C is the index to which the array should be |
1906
|
|
|
|
|
|
|
extended. |
1907
|
|
|
|
|
|
|
|
1908
|
|
|
|
|
|
|
void av_extend(AV* ar, I32 key)','name' => 'av_extend'},'newRV_noinc' => {'text' => 'Creates an RV wrapper for an SV. The reference count for the original |
1909
|
|
|
|
|
|
|
SV is B incremented. |
1910
|
|
|
|
|
|
|
|
1911
|
|
|
|
|
|
|
SV* newRV_noinc(SV *sv)','name' => 'newRV_noinc'},'sv_setpviv_mg' => {'text' => 'Like C, but also handles \'set\' magic. |
1912
|
|
|
|
|
|
|
|
1913
|
|
|
|
|
|
|
void sv_setpviv_mg(SV *sv, IV iv)','name' => 'sv_setpviv_mg'},'SvUVx' => {'text' => 'Coerces the given SV to an unsigned integer and returns it. Guarantees to |
1914
|
|
|
|
|
|
|
evaluate sv only once. Use the more efficient C otherwise. |
1915
|
|
|
|
|
|
|
|
1916
|
|
|
|
|
|
|
UV SvUVx(SV* sv)','name' => 'SvUVx'},'SvROK_on' => {'text' => 'Tells an SV that it is an RV. |
1917
|
|
|
|
|
|
|
|
1918
|
|
|
|
|
|
|
void SvROK_on(SV* sv)','name' => 'SvROK_on'},'sv_2bool' => {'text' => 'This function is only called on magical items, and is only used by |
1919
|
|
|
|
|
|
|
sv_true() or its macro equivalent. |
1920
|
|
|
|
|
|
|
|
1921
|
|
|
|
|
|
|
bool sv_2bool(SV* sv)','name' => 'sv_2bool'},'hv_iternext' => {'text' => 'Returns entries from a hash iterator. See C. |
1922
|
|
|
|
|
|
|
|
1923
|
|
|
|
|
|
|
You may call C or C on the hash entry that the |
1924
|
|
|
|
|
|
|
iterator currently points to, without losing your place or invalidating your |
1925
|
|
|
|
|
|
|
iterator. Note that in this case the current entry is deleted from the hash |
1926
|
|
|
|
|
|
|
with your iterator holding the last reference to it. Your iterator is flagged |
1927
|
|
|
|
|
|
|
to free the entry on the next call to C, so you must not discard |
1928
|
|
|
|
|
|
|
your iterator immediately else the entry will leak - call C to |
1929
|
|
|
|
|
|
|
trigger the resource deallocation. |
1930
|
|
|
|
|
|
|
|
1931
|
|
|
|
|
|
|
HE* hv_iternext(HV* tb)','name' => 'hv_iternext'},'G_VOID' => {'text' => 'Used to indicate void context. See C and L.','name' => 'G_VOID'},'dORIGMARK' => {'text' => 'Saves the original stack mark for the XSUB. See C. |
1932
|
|
|
|
|
|
|
|
1933
|
|
|
|
|
|
|
dORIGMARK;','name' => 'dORIGMARK'},'sv_newmortal' => {'text' => 'Creates a new null SV which is mortal. The reference count of the SV is |
1934
|
|
|
|
|
|
|
set to 1. It will be destroyed "soon", either by an explicit call to |
1935
|
|
|
|
|
|
|
FREETMPS, or by an implicit call at places such as statement boundaries. |
1936
|
|
|
|
|
|
|
See also C and C. |
1937
|
|
|
|
|
|
|
|
1938
|
|
|
|
|
|
|
SV* sv_newmortal()','name' => 'sv_newmortal'},'sv_clear' => {'text' => 'Clear an SV: call any destructors, free up any memory used by the body, |
1939
|
|
|
|
|
|
|
and free the body itself. The SV\'s head is I freed, although |
1940
|
|
|
|
|
|
|
its type is set to all 1\'s so that it won\'t inadvertently be assumed |
1941
|
|
|
|
|
|
|
to be live during global destruction etc. |
1942
|
|
|
|
|
|
|
This function should only be called when REFCNT is zero. Most of the time |
1943
|
|
|
|
|
|
|
you\'ll want to call C (or its macro wrapper C) |
1944
|
|
|
|
|
|
|
instead. |
1945
|
|
|
|
|
|
|
|
1946
|
|
|
|
|
|
|
void sv_clear(SV* sv)','name' => 'sv_clear'},'hv_iterinit' => {'text' => 'Prepares a starting point to traverse a hash table. Returns the number of |
1947
|
|
|
|
|
|
|
keys in the hash (i.e. the same as C). The return value is |
1948
|
|
|
|
|
|
|
currently only meaningful for hashes without tie magic. |
1949
|
|
|
|
|
|
|
|
1950
|
|
|
|
|
|
|
NOTE: Before version 5.004_65, C used to return the number of |
1951
|
|
|
|
|
|
|
hash buckets that happen to be in use. If you still need that esoteric |
1952
|
|
|
|
|
|
|
value, you can get it through the macro C. |
1953
|
|
|
|
|
|
|
|
1954
|
|
|
|
|
|
|
|
1955
|
|
|
|
|
|
|
I32 hv_iterinit(HV* tb)','name' => 'hv_iterinit'}};}; |
1956
|
|
|
|
|
|
|
|
1957
|
1
|
|
|
|
|
23
|
my $self = bless({ |
1958
|
|
|
|
|
|
|
'index' => $VAR1, |
1959
|
|
|
|
|
|
|
perl_version => '5.008005', |
1960
|
|
|
|
|
|
|
} => $class); |
1961
|
1
|
|
|
|
|
267
|
return $self; |
1962
|
|
|
|
|
|
|
} |
1963
|
|
|
|
|
|
|
|
1964
|
|
|
|
|
|
|
1; |