*
* It also holds the debugging version of the runops function.
-=head1 Display and Dump functions
+=for apidoc_section Display and Dump functions
*/
#include "EXTERN.h"
Returns a pointer to the escaped text as held by C<dsv>.
+=for apidoc Amnh||PERL_PV_ESCAPE_ALL
+=for apidoc Amnh||PERL_PV_ESCAPE_FIRSTCHAR
+=for apidoc Amnh||PERL_PV_ESCAPE_NOBACKSLASH
+=for apidoc Amnh||PERL_PV_ESCAPE_NOCLEAR
+=for apidoc Amnh||PERL_PV_ESCAPE_NONASCII
+=for apidoc Amnh||PERL_PV_ESCAPE_QUOTE
+=for apidoc Amnh||PERL_PV_ESCAPE_RE
+=for apidoc Amnh||PERL_PV_ESCAPE_UNI
+=for apidoc Amnh||PERL_PV_ESCAPE_UNI_DETECT
+
+=cut
+
+Unused or not for public use
+=for apidoc Cmnh||PERL_PV_PRETTY_REGPROP
+=for apidoc Cmnh||PERL_PV_PRETTY_DUMP
+=for apidoc Cmnh||PERL_PV_PRETTY_NOCLEAR
+
=cut
*/
#define PV_ESCAPE_OCTBUFSIZE 32
Returns a pointer to the prettified text as held by C<dsv>.
+=for apidoc Amnh||PERL_PV_PRETTY_QUOTE
+=for apidoc Amnh||PERL_PV_PRETTY_LTGT
+=for apidoc Amnh||PERL_PV_PRETTY_ELLIPSES
+
=cut
*/
char *
Perl_sv_peek(pTHX_ SV *sv)
{
- dVAR;
SV * const t = sv_newmortal();
int unref = 0;
U32 type;
return SvPV_nolen(t);
}
-/*
-=head1 Debugging Utilities
-*/
-
void
Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
{
STATIC UV
S_sequence_num(pTHX_ const OP *o)
{
- dVAR;
SV *op,
**seq;
const char *key;
case OP_TRANS:
case OP_TRANSR:
- if (o->op_private & (OPpTRANS_FROM_UTF | OPpTRANS_TO_UTF)) {
- /* utf8: table stored as a swash */
+ if (o->op_private & OPpTRANS_USE_SVOP) {
+ /* utf8: table stored as an inversion map */
#ifndef USE_ITHREADS
- /* with ITHREADS, swash is stored in the pad, and the right pad
+ /* with ITHREADS, it is stored in the pad, and the right pad
* may not be active here, so skip */
S_opdump_indent(aTHX_ o, level, bar, file,
- "SWASH = 0x%" UVxf "\n",
+ "INVMAP = 0x%" UVxf "\n",
PTR2UV(MUTABLE_SV(cSVOPo->op_sv)));
#endif
}
void
Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim)
{
- dVAR;
SV *d;
const char *s;
U32 flags;
* pointer to a table of shorts used to look up translations.
* Under utf8, however, a simple table isn't practical; instead,
* the OP is an SVOP (or, under threads, a PADOP),
- * and the SV is a reference to a swash
- * (i.e., an RV pointing to an HV).
+ * and the SV is an AV.
*/
return (!custom &&
- (o->op_private & (OPpTRANS_TO_UTF|OPpTRANS_FROM_UTF))
+ (o->op_private & OPpTRANS_USE_SVOP)
)
#if defined(USE_ITHREADS)
? OPclass_PADOP : OPclass_PVOP;