Clears an array, making it empty. Does not free the memory used by the
array itself.
- void av_clear(AV* ar)
+ void av_clear(AV *av)
=for hackers
Found in file av.c
deleted element. If C<flags> equals C<G_DISCARD>, the element is freed
and null is returned.
- SV* av_delete(AV* ar, I32 key, I32 flags)
+ SV* av_delete(AV *av, I32 key, I32 flags)
=for hackers
Found in file av.c
This relies on the fact that uninitialized array elements are set to
C<&PL_sv_undef>.
- bool av_exists(AV* ar, I32 key)
+ bool av_exists(AV *av, I32 key)
=for hackers
Found in file av.c
Pre-extend an array. The C<key> is the index to which the array should be
extended.
- void av_extend(AV* ar, I32 key)
+ void av_extend(AV *av, I32 key)
=for hackers
Found in file av.c
See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for
more information on how to use this function on tied arrays.
- SV** av_fetch(AV* ar, I32 key, I32 lval)
+ SV** av_fetch(AV *av, I32 key, I32 lval)
=for hackers
Found in file av.c
was longer, then the excess elements are freed. C<av_fill(av, -1)> is
the same as C<av_clear(av)>.
- void av_fill(AV* ar, I32 fill)
+ void av_fill(AV *av, I32 fill)
=for hackers
Found in file av.c
Returns the highest index in the array. The number of elements in the
array is C<av_len(av) + 1>. Returns -1 if the array is empty.
- I32 av_len(const AV* ar)
+ I32 av_len(const AV *av)
=for hackers
Found in file av.c
into the array, so they may be freed after the call to av_make. The new AV
will have a reference count of 1.
- AV* av_make(I32 size, SV** svp)
+ AV* av_make(I32 size, SV **strp)
=for hackers
Found in file av.c
Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array
is empty.
- SV* av_pop(AV* ar)
+ SV* av_pop(AV *av)
=for hackers
Found in file av.c
Pushes an SV onto the end of the array. The array will grow automatically
to accommodate the addition.
- void av_push(AV* ar, SV* val)
+ void av_push(AV *av, SV *val)
=for hackers
Found in file av.c
Shifts an SV off the beginning of the array.
- SV* av_shift(AV* ar)
+ SV* av_shift(AV *av)
=for hackers
Found in file av.c
See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for
more information on how to use this function on tied arrays.
- SV** av_store(AV* ar, I32 key, SV* val)
+ SV** av_store(AV *av, I32 key, SV *val)
=for hackers
Found in file av.c
Undefines the array. Frees the memory used by the array itself.
- void av_undef(AV* ar)
+ void av_undef(AV *av)
=for hackers
Found in file av.c
array. The array will grow automatically to accommodate the addition. You
must then use C<av_store> to assign values to these new elements.
- void av_unshift(AV* ar, I32 num)
+ void av_unshift(AV *av, I32 num)
=for hackers
Found in file av.c
and then throw it away and return to the original one,
you don't need to do anything.
- PerlInterpreter* perl_clone(PerlInterpreter* interp, UV flags)
+ PerlInterpreter* perl_clone(PerlInterpreter *proto_perl, UV flags)
=for hackers
Found in file sv.c
Initializes a new Perl interpreter. See L<perlembed>.
- void perl_construct(PerlInterpreter* interp)
+ void perl_construct(PerlInterpreter *my_perl)
=for hackers
Found in file perl.c
Shuts down a Perl interpreter. See L<perlembed>.
- int perl_destruct(PerlInterpreter* interp)
+ int perl_destruct(PerlInterpreter *my_perl)
=for hackers
Found in file perl.c
Releases a Perl interpreter. See L<perlembed>.
- void perl_free(PerlInterpreter* interp)
+ void perl_free(PerlInterpreter *my_perl)
=for hackers
Found in file perl.c
Tells a Perl interpreter to parse a Perl script. See L<perlembed>.
- int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env)
+ int perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env)
=for hackers
Found in file perl.c
Tells a Perl interpreter to run. See L<perlembed>.
- int perl_run(PerlInterpreter* interp)
+ int perl_run(PerlInterpreter *my_perl)
=for hackers
Found in file perl.c
Like C<sv_catsv>, but also handles 'set' magic.
- void sv_catsv_mg(SV *dstr, SV *sstr)
+ void sv_catsv_mg(SV *dsv, SV *ssv)
=for hackers
Found in file mathoms.c
which can't cope with complex macro expressions. Always use the macro
instead.
- char* sv_pvbyten(SV *sv, STRLEN *len)
+ char* sv_pvbyten(SV *sv, STRLEN *lp)
=for hackers
Found in file mathoms.c
A private implementation of the C<SvPV> macro for compilers which can't
cope with complex macro expressions. Always use the macro instead.
- char* sv_pvn(SV *sv, STRLEN *len)
+ char* sv_pvn(SV *sv, STRLEN *lp)
=for hackers
Found in file mathoms.c
which can't cope with complex macro expressions. Always use the macro
instead.
- char* sv_pvutf8n(SV *sv, STRLEN *len)
+ char* sv_pvutf8n(SV *sv, STRLEN *lp)
=for hackers
Found in file mathoms.c
Check that a hash is in an internally consistent state.
- void hv_assert(HV* tb)
+ void hv_assert(HV *hv)
=for hackers
Found in file hv.c
Clears a hash, making it empty.
- void hv_clear(HV* tb)
+ void hv_clear(HV *hv)
=for hackers
Found in file hv.c
future point. This function clears any such placeholder keys from the hash.
See Hash::Util::lock_keys() for an example of its use.
- void hv_clear_placeholders(HV* hb)
+ void hv_clear_placeholders(HV *hv)
=for hackers
Found in file hv.c
The C<flags> value will normally be zero; if set to G_DISCARD then NULL
will be returned.
- SV* hv_delete(HV* tb, const char* key, I32 klen, I32 flags)
+ SV* hv_delete(HV *hv, const char *key, I32 klen, I32 flags)
=for hackers
Found in file hv.c
if set to G_DISCARD then NULL will be returned. C<hash> can be a valid
precomputed hash value, or 0 to ask for it to be computed.
- SV* hv_delete_ent(HV* tb, SV* key, I32 flags, U32 hash)
+ SV* hv_delete_ent(HV *hv, SV *keysv, I32 flags, U32 hash)
=for hackers
Found in file hv.c
Returns a boolean indicating whether the specified hash key exists. The
C<klen> is the length of the key.
- bool hv_exists(HV* tb, const char* key, I32 klen)
+ bool hv_exists(HV *hv, const char *key, I32 klen)
=for hackers
Found in file hv.c
can be a valid precomputed hash value, or 0 to ask for it to be
computed.
- bool hv_exists_ent(HV* tb, SV* key, U32 hash)
+ bool hv_exists_ent(HV *hv, SV *keysv, U32 hash)
=for hackers
Found in file hv.c
See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
information on how to use this function on tied hashes.
- SV** hv_fetch(HV* tb, const char* key, I32 klen, I32 lval)
+ SV** hv_fetch(HV *hv, const char *key, I32 klen, I32 lval)
=for hackers
Found in file hv.c
See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
information on how to use this function on tied hashes.
- HE* hv_fetch_ent(HV* tb, SV* key, I32 lval, U32 hash)
+ HE* hv_fetch_ent(HV *hv, SV *keysv, I32 lval, U32 hash)
=for hackers
Found in file hv.c
value, you can get it through the macro C<HvFILL(tb)>.
- I32 hv_iterinit(HV* tb)
+ I32 hv_iterinit(HV *hv)
=for hackers
Found in file hv.c
your iterator immediately else the entry will leak - call C<hv_iternext> to
trigger the resource deallocation.
- HE* hv_iternext(HV* tb)
+ HE* hv_iternext(HV *hv)
=for hackers
Found in file hv.c
Performs an C<hv_iternext>, C<hv_iterkey>, and C<hv_iterval> in one
operation.
- SV* hv_iternextsv(HV* hv, char** key, I32* retlen)
+ SV* hv_iternextsv(HV *hv, char **key, I32 *retlen)
=for hackers
Found in file hv.c
NOTE: this function is experimental and may change or be
removed without notice.
- HE* hv_iternext_flags(HV* tb, I32 flags)
+ HE* hv_iternext_flags(HV *hv, I32 flags)
=for hackers
Found in file hv.c
Returns the value from the current position of the hash iterator. See
C<hv_iterkey>.
- SV* hv_iterval(HV* tb, HE* entry)
+ SV* hv_iterval(HV *hv, HE *entry)
=for hackers
Found in file hv.c
Adds magic to a hash. See C<sv_magic>.
- void hv_magic(HV* hv, GV* gv, int how)
+ void hv_magic(HV *hv, GV *gv, int how)
=for hackers
Found in file hv.c
Evaluates the hash in scalar context and returns the result. Handles magic when the hash is tied.
- SV* hv_scalar(HV* hv)
+ SV* hv_scalar(HV *hv)
=for hackers
Found in file hv.c
See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
information on how to use this function on tied hashes.
- SV** hv_store(HV* tb, const char* key, I32 klen, SV* val, U32 hash)
+ SV** hv_store(HV *hv, const char *key, I32 klen, SV *val, U32 hash)
=for hackers
Found in file hv.c
See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
information on how to use this function on tied hashes.
- HE* hv_store_ent(HV* tb, SV* key, SV* val, U32 hash)
+ HE* hv_store_ent(HV *hv, SV *key, SV *val, U32 hash)
=for hackers
Found in file hv.c
Undefines the hash.
- void hv_undef(HV* tb)
+ void hv_undef(HV *hv)
=for hackers
Found in file hv.c
Copies the magic from one SV to another. See C<sv_magic>.
- int mg_copy(SV* sv, SV* nsv, const char* key, I32 klen)
+ int mg_copy(SV *sv, SV *nsv, const char *key, I32 klen)
=for hackers
Found in file mg.c
does not have to be fbm_compiled, but the search will not be as fast
then.
- char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)
+ char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlestr, U32 flags)
=for hackers
Found in file util.c
should be interpreted as if it had multiple decimals, even if
it doesn't.
- const char* scan_version(const char *vstr, SV *sv, bool qv)
+ const char* scan_version(const char *s, SV *rv, bool qv)
=for hackers
Found in file util.c
Version object aware cmp. Both operands must already have been
converted into version objects.
- int vcmp(SV *lvs, SV *rvs)
+ int vcmp(SV *lhv, SV *rhv)
=for hackers
Found in file util.c
=over 8
+=item croak_xs_usage
+X<croak_xs_usage>
+
+A specialised variant of C<croak()> for emitting the usage message for xsubs
+
+ croak_xs_usage(cv, "eee_yow");
+
+works out the package name and subroutine name from C<cv>, and then calls
+C<croak()>. Hence if C<cv> is C<&ouch::awk>, it would call C<croak> as:
+
+ Perl_croak(aTHX_ "Usage %s::%s(%s)", "ouch" "awk", "eee_yow");
+
+ void croak_xs_usage(CV *const cv, const char *const params)
+
+=for hackers
+Found in file universal.c
+
=item get_sv
X<get_sv>
Creates an RV wrapper for an SV. The reference count for the original
SV is B<not> incremented.
- SV* newRV_noinc(SV* sv)
+ SV* newRV_noinc(SV *const sv)
=for hackers
Found in file sv.c
L<perlhack/PERL_MEM_LOG>). The older API is still there for use in XS
modules supporting older perls.
- SV* newSV(STRLEN len)
+ SV* newSV(const STRLEN len)
=for hackers
Found in file sv.c
point to the shared string table where possible. Returns a new (undefined)
SV if the hek is NULL.
- SV* newSVhek(const HEK *hek)
+ SV* newSVhek(const HEK *const hek)
=for hackers
Found in file sv.c
Creates a new SV and copies an integer into it. The reference count for the
SV is set to 1.
- SV* newSViv(IV i)
+ SV* newSViv(const IV i)
=for hackers
Found in file sv.c
Creates a new SV and copies a floating point value into it.
The reference count for the SV is set to 1.
- SV* newSVnv(NV n)
+ SV* newSVnv(const NV n)
=for hackers
Found in file sv.c
SV is set to 1. If C<len> is zero, Perl will compute the length using
strlen(). For efficiency, consider using C<newSVpvn> instead.
- SV* newSVpv(const char* s, STRLEN len)
+ SV* newSVpv(const char *const s, const STRLEN len)
=for hackers
Found in file sv.c
Creates a new SV and initializes it with the string formatted like
C<sprintf>.
- SV* newSVpvf(const char* pat, ...)
+ SV* newSVpvf(const char *const pat, ...)
=for hackers
Found in file sv.c
string. You are responsible for ensuring that the source string is at least
C<len> bytes long. If the C<s> argument is NULL the new SV will be undefined.
- SV* newSVpvn(const char* s, STRLEN len)
+ SV* newSVpvn(const char *const s, const STRLEN len)
=for hackers
Found in file sv.c
#define newSVpvn_utf8(s, len, u) \
newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
- SV* newSVpvn_flags(const char* s, STRLEN len, U32 flags)
+ SV* newSVpvn_flags(const char *const s, const STRLEN len, const U32 flags)
=for hackers
Found in file sv.c
be blessed in the specified package. The new SV is returned and its
reference count is 1.
- SV* newSVrv(SV* rv, const char* classname)
+ SV* newSVrv(SV *const rv, const char *const classname)
=for hackers
Found in file sv.c
Creates a new SV which is an exact duplicate of the original SV.
(Uses C<sv_setsv>).
- SV* newSVsv(SV* old)
+ SV* newSVsv(SV *const old)
=for hackers
Found in file sv.c
Creates a new SV and copies an unsigned integer into it.
The reference count for the SV is set to 1.
- SV* newSVuv(UV u)
+ SV* newSVuv(const UV u)
=for hackers
Found in file sv.c
Creates a new SV, of the type specified. The reference count for the new SV
is set to 1.
- SV* newSV_type(svtype type)
+ SV* newSV_type(const svtype type)
=for hackers
Found in file sv.c
This function is only called on magical items, and is only used by
sv_true() or its macro equivalent.
- bool sv_2bool(SV* sv)
+ bool sv_2bool(SV *const sv)
=for hackers
Found in file sv.c
possible to set C<*st> and C<*gvp> to the stash and GV associated with it.
The flags in C<lref> are passed to sv_fetchsv.
- CV* sv_2cv(SV* sv, HV** st, GV** gvp, I32 lref)
+ CV* sv_2cv(SV* sv, HV **const st, GV **const gvp, const I32 lref)
=for hackers
Found in file sv.c
GV; or the recursive result if we're an RV; or the IO slot of the symbol
named after the PV if we're a string.
- IO* sv_2io(SV* sv)
+ IO* sv_2io(SV *const sv)
=for hackers
Found in file sv.c
string buffer can be "stolen" if this SV is copied. See also C<sv_newmortal>
and C<sv_mortalcopy>.
- SV* sv_2mortal(SV* sv)
+ SV* sv_2mortal(SV *const sv)
=for hackers
Found in file sv.c
Usually accessed via the C<SvPVutf8> macro.
- char* sv_2pvutf8(SV* sv, STRLEN* lp)
+ char* sv_2pvutf8(SV *const sv, STRLEN *const lp)
=for hackers
Found in file sv.c
must be designated by its stash (see C<gv_stashpv()>). The reference count
of the SV is unaffected.
- SV* sv_bless(SV* sv, HV* stash)
+ SV* sv_bless(SV *const sv, HV *const stash)
=for hackers
Found in file sv.c
If the SV has the UTF-8 status set, then the bytes appended should be
valid UTF-8. Handles 'get' magic, but not 'set' magic. See C<sv_catpv_mg>.
- void sv_catpv(SV* sv, const char* ptr)
+ void sv_catpv(SV *const sv, const char* ptr)
=for hackers
Found in file sv.c
C<sv_catpvf_mg>. If the original SV was UTF-8, the pattern should be
valid UTF-8; if the original SV was bytes, the pattern should be too.
- void sv_catpvf(SV* sv, const char* pat, ...)
+ void sv_catpvf(SV *const sv, const char *const pat, ...)
=for hackers
Found in file sv.c
Like C<sv_catpvf>, but also handles 'set' magic.
- void sv_catpvf_mg(SV *sv, const char* pat, ...)
+ void sv_catpvf_mg(SV *const sv, const char *const pat, ...)
=for hackers
Found in file sv.c
status set, then the bytes appended should be valid UTF-8.
Handles 'get' magic, but not 'set' magic. See C<sv_catpvn_mg>.
- void sv_catpvn(SV* sv, const char* ptr, STRLEN len)
+ void sv_catpvn(SV *dsv, const char *sstr, STRLEN len)
=for hackers
Found in file sv.c
appropriate, else not. C<sv_catpvn> and C<sv_catpvn_nomg> are implemented
in terms of this function.
- void sv_catpvn_flags(SV* sv, const char* ptr, STRLEN len, I32 flags)
+ void sv_catpvn_flags(SV *const dstr, const char *sstr, const STRLEN len, const I32 flags)
=for hackers
Found in file sv.c
Like C<sv_catpv>, but also handles 'set' magic.
- void sv_catpv_mg(SV *sv, const char *ptr)
+ void sv_catpv_mg(SV *const sv, const char *const ptr)
=for hackers
Found in file sv.c
SV C<dsv>. Modifies C<dsv> but not C<ssv>. Handles 'get' magic, but
not 'set' magic. See C<sv_catsv_mg>.
- void sv_catsv(SV* dsv, SV* ssv)
+ void sv_catsv(SV *dstr, SV *sstr)
=for hackers
Found in file sv.c
bit set, will C<mg_get> on the SVs if appropriate, else not. C<sv_catsv>
and C<sv_catsv_nomg> are implemented in terms of this function.
- void sv_catsv_flags(SV* dsv, SV* ssv, I32 flags)
+ void sv_catsv_flags(SV *const dsv, SV *const ssv, const I32 flags)
=for hackers
Found in file sv.c
Beware: after this function returns, C<ptr> and SvPVX_const(sv) may no longer
refer to the same chunk of data.
- void sv_chop(SV* sv, const char* ptr)
+ void sv_chop(SV *const sv, const char *const ptr)
=for hackers
Found in file sv.c
you'll want to call C<sv_free()> (or its macro wrapper C<SvREFCNT_dec>)
instead.
- void sv_clear(SV* sv)
+ void sv_clear(SV *const sv)
=for hackers
Found in file sv.c
C<sv2>. Is UTF-8 and 'use bytes' aware, handles get magic, and will
coerce its args to strings if necessary. See also C<sv_cmp_locale>.
- I32 sv_cmp(SV* sv1, SV* sv2)
+ I32 sv_cmp(SV *const sv1, SV *const sv2)
=for hackers
Found in file sv.c
'use bytes' aware, handles get magic, and will coerce its args to strings
if necessary. See also C<sv_cmp>.
- I32 sv_cmp_locale(SV* sv1, SV* sv2)
+ I32 sv_cmp_locale(SV *const sv1, SV *const sv2)
=for hackers
Found in file sv.c
memory comparison can be used to compare the data according to the locale
settings.
- char* sv_collxfrm(SV* sv, STRLEN* nxp)
+ char* sv_collxfrm(SV *const sv, STRLEN *const nxp)
=for hackers
Found in file sv.c
Auto-decrement of the value in the SV, doing string to numeric conversion
if necessary. Handles 'get' magic.
- void sv_dec(SV* sv)
+ void sv_dec(SV *const sv)
=for hackers
Found in file sv.c
C<sv_unref_flags()> when unrefing. C<sv_force_normal> calls this function
with flags set to 0.
- void sv_force_normal_flags(SV *sv, U32 flags)
+ void sv_force_normal_flags(SV *const sv, const U32 flags)
=for hackers
Found in file sv.c
the body; finally, deallocate the SV's head itself.
Normally called via a wrapper macro C<SvREFCNT_dec>.
- void sv_free(SV* sv)
+ void sv_free(SV *const sv)
=for hackers
Found in file sv.c
Get a line from the filehandle and store it into the SV, optionally
appending to the currently-stored string.
- char* sv_gets(SV* sv, PerlIO* fp, I32 append)
+ char* sv_gets(SV *const sv, PerlIO *const fp, I32 append)
=for hackers
Found in file sv.c
Auto-increment of the value in the SV, doing string to numeric conversion
if necessary. Handles 'get' magic.
- void sv_inc(SV* sv)
+ void sv_inc(SV *const sv)
=for hackers
Found in file sv.c
X<sv_insert>
Inserts a string at the specified offset/length within the SV. Similar to
-the Perl substr() function.
+the Perl substr() function. Handles get magic.
+
+ void sv_insert(SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen)
+
+=for hackers
+Found in file sv.c
+
+=item sv_insert_flags
+X<sv_insert_flags>
+
+Same as C<sv_insert>, but the extra C<flags> are passed the C<SvPV_force_flags> that applies to C<bigstr>.
- void sv_insert(SV* bigsv, STRLEN offset, STRLEN len, const char* little, STRLEN littlelen)
+ void sv_insert_flags(SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen, const U32 flags)
=for hackers
Found in file sv.c
class. This does not check for subtypes; use C<sv_derived_from> to verify
an inheritance relationship.
- int sv_isa(SV* sv, const char* name)
+ int sv_isa(SV* sv, const char *const name)
=for hackers
Found in file sv.c
Returns the length of the string in the SV. Handles magic and type
coercion. See also C<SvCUR>, which gives raw access to the xpv_cur slot.
- STRLEN sv_len(SV* sv)
+ STRLEN sv_len(SV *const sv)
=for hackers
Found in file sv.c
Returns the number of characters in the string in an SV, counting wide
UTF-8 bytes as a single character. Handles magic and type coercion.
- STRLEN sv_len_utf8(SV* sv)
+ STRLEN sv_len_utf8(SV *const sv)
=for hackers
Found in file sv.c
You need to use C<sv_magicext> to add magic to SvREADONLY SVs and also
to add more than one instance of the same 'how'.
- void sv_magic(SV* sv, SV* obj, int how, const char* name, I32 namlen)
+ void sv_magic(SV *const sv, SV *const obj, const int how, const char *const name, const I32 namlen)
=for hackers
Found in file sv.c
(This is now used as a subroutine by C<sv_magic>.)
- MAGIC * sv_magicext(SV* sv, SV* obj, int how, const MGVTBL *vtbl, const char* name, I32 namlen)
+ MAGIC * sv_magicext(SV *const sv, SV *const obj, const int how, const MGVTBL *const vtbl, const char *const name, const I32 namlen)
=for hackers
Found in file sv.c
explicit call to FREETMPS, or by an implicit call at places such as
statement boundaries. See also C<sv_newmortal> and C<sv_2mortal>.
- SV* sv_mortalcopy(SV* oldsv)
+ SV* sv_mortalcopy(SV *const oldsv)
=for hackers
Found in file sv.c
Increment an SV's reference count. Use the C<SvREFCNT_inc()> wrapper
instead.
- SV* sv_newref(SV* sv)
+ SV* sv_newref(SV *const sv)
=for hackers
Found in file sv.c
start of the string, to a count of the equivalent number of UTF-8 chars.
Handles magic and type coercion.
- void sv_pos_b2u(SV* sv, I32* offsetp)
+ void sv_pos_b2u(SV *const sv, I32 *const offsetp)
=for hackers
Found in file sv.c
the offset, rather than from the start of the string. Handles magic and
type coercion.
- void sv_pos_u2b(SV* sv, I32* offsetp, I32* lenp)
+ void sv_pos_u2b(SV *const sv, I32 *const offsetp, I32 *const lenp)
=for hackers
Found in file sv.c
The backend for the C<SvPVbytex_force> macro. Always use the macro instead.
- char* sv_pvbyten_force(SV* sv, STRLEN* lp)
+ char* sv_pvbyten_force(SV *const sv, STRLEN *const lp)
=for hackers
Found in file sv.c
You normally want to use the various wrapper macros instead: see
C<SvPV_force> and C<SvPV_force_nomg>
- char* sv_pvn_force_flags(SV* sv, STRLEN* lp, I32 flags)
+ char* sv_pvn_force_flags(SV *const sv, STRLEN *const lp, const I32 flags)
=for hackers
Found in file sv.c
The backend for the C<SvPVutf8x_force> macro. Always use the macro instead.
- char* sv_pvutf8n_force(SV* sv, STRLEN* lp)
+ char* sv_pvutf8n_force(SV *const sv, STRLEN *const lp)
=for hackers
Found in file sv.c
Returns a string describing what the SV is a reference to.
- const char* sv_reftype(const SV* sv, int ob)
+ const char* sv_reftype(const SV *const sv, const int ob)
=for hackers
Found in file sv.c
Note that this is a rather specialist SV copying operation; most of the
time you'll want to use C<sv_setsv> or one of its many macro front-ends.
- void sv_replace(SV* sv, SV* nsv)
+ void sv_replace(SV *const sv, SV *const nsv)
=for hackers
Found in file sv.c
Underlying implementation for the C<reset> Perl function.
Note that the perl-level function is vaguely deprecated.
- void sv_reset(const char* s, HV* stash)
+ void sv_reset(const char* s, HV *const stash)
=for hackers
Found in file sv.c
associated with that magic. If the RV is magical, set magic will be
called after the RV is cleared.
- SV* sv_rvweaken(SV *sv)
+ SV* sv_rvweaken(SV *const sv)
=for hackers
Found in file sv.c
Copies a string into an SV. The string must be null-terminated. Does not
handle 'set' magic. See C<sv_setpv_mg>.
- void sv_setpv(SV* sv, const char* ptr)
+ void sv_setpv(SV *const sv, const char *const ptr)
=for hackers
Found in file sv.c
Works like C<sv_catpvf> but copies the text into the SV instead of
appending it. Does not handle 'set' magic. See C<sv_setpvf_mg>.
- void sv_setpvf(SV* sv, const char* pat, ...)
+ void sv_setpvf(SV *const sv, const char *const pat, ...)
=for hackers
Found in file sv.c
Like C<sv_setpvf>, but also handles 'set' magic.
- void sv_setpvf_mg(SV *sv, const char* pat, ...)
+ void sv_setpvf_mg(SV *const sv, const char *const pat, ...)
=for hackers
Found in file sv.c
Copies an integer into the given SV, also updating its string value.
Does not handle 'set' magic. See C<sv_setpviv_mg>.
- void sv_setpviv(SV* sv, IV num)
+ void sv_setpviv(SV *const sv, const IV num)
=for hackers
Found in file sv.c
Like C<sv_setpviv>, but also handles 'set' magic.
- void sv_setpviv_mg(SV *sv, IV iv)
+ void sv_setpviv_mg(SV *const sv, const IV iv)
=for hackers
Found in file sv.c
bytes to be copied. If the C<ptr> argument is NULL the SV will become
undefined. Does not handle 'set' magic. See C<sv_setpvn_mg>.
- void sv_setpvn(SV* sv, const char* ptr, STRLEN len)
+ void sv_setpvn(SV *const sv, const char *const ptr, const STRLEN len)
=for hackers
Found in file sv.c
Like C<sv_setpvn>, but also handles 'set' magic.
- void sv_setpvn_mg(SV *sv, const char *ptr, STRLEN len)
+ void sv_setpvn_mg(SV *const sv, const char *const ptr, const STRLEN len)
=for hackers
Found in file sv.c
Like C<sv_setpv>, but also handles 'set' magic.
- void sv_setpv_mg(SV *sv, const char *ptr)
+ void sv_setpv_mg(SV *const sv, const char *const ptr)
=for hackers
Found in file sv.c
blessing. Set C<classname> to C<NULL> to avoid the blessing. The new SV
will have a reference count of 1, and the RV will be returned.
- SV* sv_setref_iv(SV* rv, const char* classname, IV iv)
+ SV* sv_setref_iv(SV *const rv, const char *const classname, const IV iv)
=for hackers
Found in file sv.c
blessing. Set C<classname> to C<NULL> to avoid the blessing. The new SV
will have a reference count of 1, and the RV will be returned.
- SV* sv_setref_nv(SV* rv, const char* classname, NV nv)
+ SV* sv_setref_nv(SV *const rv, const char *const classname, const NV nv)
=for hackers
Found in file sv.c
Note that C<sv_setref_pvn> copies the string while this copies the pointer.
- SV* sv_setref_pv(SV* rv, const char* classname, void* pv)
+ SV* sv_setref_pv(SV *const rv, const char *const classname, void *const pv)
=for hackers
Found in file sv.c
Note that C<sv_setref_pv> copies the pointer while this copies the string.
- SV* sv_setref_pvn(SV* rv, const char* classname, const char* pv, STRLEN n)
+ SV* sv_setref_pvn(SV *const rv, const char *const classname, const char *const pv, const STRLEN n)
=for hackers
Found in file sv.c
blessing. Set C<classname> to C<NULL> to avoid the blessing. The new SV
will have a reference count of 1, and the RV will be returned.
- SV* sv_setref_uv(SV* rv, const char* classname, UV uv)
+ SV* sv_setref_uv(SV *const rv, const char *const classname, const UV uv)
=for hackers
Found in file sv.c
C<SvSetSV>, C<SvSetSV_nosteal>, C<SvSetMagicSV> and
C<SvSetMagicSV_nosteal>.
- void sv_setsv(SV* dsv, SV* ssv)
+ void sv_setsv(SV *dstr, SV *sstr)
=for hackers
Found in file sv.c
This is the primary function for copying scalars, and most other
copy-ish functions and macros use this underneath.
- void sv_setsv_flags(SV* dsv, SV* ssv, I32 flags)
+ void sv_setsv_flags(SV *dstr, SV *sstr, const I32 flags)
=for hackers
Found in file sv.c
Like C<sv_setsv>, but also handles 'set' magic.
- void sv_setsv_mg(SV *dstr, SV *sstr)
+ void sv_setsv_mg(SV *const dstr, SV *const sstr)
=for hackers
Found in file sv.c
X<sv_tainted>
Test an SV for taintedness. Use C<SvTAINTED> instead.
- bool sv_tainted(SV* sv)
+ bool sv_tainted(SV *const sv)
=for hackers
Found in file sv.c
Use the C<SvTRUE> macro instead, which may call C<sv_true()> or may
instead use an in-line version.
- I32 sv_true(SV *sv)
+ I32 sv_true(SV *const sv)
=for hackers
Found in file sv.c
Removes all magic of type C<type> from an SV.
- int sv_unmagic(SV* sv, int type)
+ int sv_unmagic(SV *const sv, const int type)
=for hackers
Found in file sv.c
different from one or the reference being a readonly SV).
See C<SvROK_off>.
- void sv_unref_flags(SV* sv, U32 flags)
+ void sv_unref_flags(SV *const ref, const U32 flags)
=for hackers
Found in file sv.c
X<sv_untaint>
Untaint an SV. Use C<SvTAINTED_off> instead.
- void sv_untaint(SV* sv)
+ void sv_untaint(SV *const sv)
=for hackers
Found in file sv.c
will be skipped. (i.e. the buffer is actually at least 1 byte longer than
C<len>, and already meets the requirements for storing in C<SvPVX>)
- void sv_usepvn_flags(SV* sv, char* ptr, STRLEN len, U32 flags)
+ void sv_usepvn_flags(SV *const sv, char* ptr, const STRLEN len, const U32 flags)
=for hackers
Found in file sv.c
NOTE: this function is experimental and may change or be
removed without notice.
- bool sv_utf8_decode(SV *sv)
+ bool sv_utf8_decode(SV *const sv)
=for hackers
Found in file sv.c
NOTE: this function is experimental and may change or be
removed without notice.
- bool sv_utf8_downgrade(SV *sv, bool fail_ok)
+ bool sv_utf8_downgrade(SV *const sv, const bool fail_ok)
=for hackers
Found in file sv.c
Converts the PV of an SV to UTF-8, but then turns the C<SvUTF8>
flag off so that it looks like octets again.
- void sv_utf8_encode(SV *sv)
+ void sv_utf8_encode(SV *const sv)
=for hackers
Found in file sv.c
This is not as a general purpose byte encoding to Unicode interface:
use the Encode extension for that.
- STRLEN sv_utf8_upgrade_flags(SV *sv, I32 flags)
+ STRLEN sv_utf8_upgrade_flags(SV *const sv, const I32 flags)
=for hackers
Found in file sv.c
Usually used via its frontend C<sv_catpvf>.
- void sv_vcatpvf(SV* sv, const char* pat, va_list* args)
+ void sv_vcatpvf(SV *const sv, const char *const pat, va_list *const args)
=for hackers
Found in file sv.c
Usually used via one of its frontends C<sv_vcatpvf> and C<sv_vcatpvf_mg>.
- void sv_vcatpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
+ void sv_vcatpvfn(SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const I32 svmax, bool *const maybe_tainted)
=for hackers
Found in file sv.c
Usually used via its frontend C<sv_catpvf_mg>.
- void sv_vcatpvf_mg(SV* sv, const char* pat, va_list* args)
+ void sv_vcatpvf_mg(SV *const sv, const char *const pat, va_list *const args)
=for hackers
Found in file sv.c
Usually used via its frontend C<sv_setpvf>.
- void sv_vsetpvf(SV* sv, const char* pat, va_list* args)
+ void sv_vsetpvf(SV *const sv, const char *const pat, va_list *const args)
=for hackers
Found in file sv.c
Usually used via one of its frontends C<sv_vsetpvf> and C<sv_vsetpvf_mg>.
- void sv_vsetpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
+ void sv_vsetpvfn(SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const I32 svmax, bool *const maybe_tainted)
=for hackers
Found in file sv.c
Usually used via its frontend C<sv_setpvf_mg>.
- void sv_vsetpvf_mg(SV* sv, const char* pat, va_list* args)
+ void sv_vsetpvf_mg(SV *const sv, const char *const pat, va_list *const args)
=for hackers
Found in file sv.c
instead of upper/lowercasing both the characters, see
http://www.unicode.org/unicode/reports/tr21/ (Case Mappings).
- I32 ibcmp_utf8(const char* a, char **pe1, UV l1, bool u1, const char* b, char **pe2, UV l2, bool u2)
+ I32 ibcmp_utf8(const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)
=for hackers
Found in file utf8.c
UTF-8 character. The actual number of bytes in the UTF-8 character
will be returned if it is valid, otherwise 0.
- STRLEN is_utf8_char(const U8 *p)
+ STRLEN is_utf8_char(const U8 *s)
=for hackers
Found in file utf8.c