Data-Peek

 view release on metacpan or  search on metacpan

Peek.xs  view on Meta::CPAN

    warn ("%s\n  PV: %s\n  IV: %s\n  NV: %s\n  RV: %s\n",
	sv_peek (sv), sv_peek (pv), sv_peek (iv), sv_peek (nv), sv_peek (rv));
#endif
    } /* _Dump_Dual */

MODULE = Data::Peek		PACKAGE = Data::Peek

void
DPeek (...)
  PROTOTYPE: ;$
  PPCODE:
    I32 gimme = GIMME_V;
    SV *sv    = items ? ST (0) : DEFSV;
    if (items == 0) EXTEND (SP, 1);
    ST (0) = _DPeek (aTHX_ items, sv);
    if (gimme == G_VOID) warn ("%s\n", SvPVX (ST (0)));
    XSRETURN (1);
    /* XS DPeek */

void
DDisplay (...)
  PROTOTYPE: ;$
  PPCODE:
    I32 gimme = GIMME_V;
    SV *sv    = items ? ST (0) : DEFSV;
    SV *dsp   = newSVpv ("", 0);
    if (SvPOK (sv) || SvPOKp (sv))
	pv_pretty (dsp, SvPVX (sv), SvCUR (sv), 0,
	    NULL, NULL,
	    (PERL_PV_PRETTY_DUMP | PERL_PV_ESCAPE_UNI_DETECT));
    if (items == 0) EXTEND (SP, 1);
    ST (0) = dsp;
    if (gimme == G_VOID) warn ("%s\n", SvPVX (ST (0)));
    XSRETURN (1);
    /* XS DDisplay */

void
triplevar (pv, iv, nv)
    SV  *pv
    SV  *iv
    SV  *nv

  PROTOTYPE: $$$
  PPCODE:
    SV  *tv = newSVpvs ("");
    SvUPGRADE (tv, SVt_PVNV);

    if (SvPOK (pv) || SvPOKp (pv)) {
	sv_setpvn (tv, SvPVX (pv), SvCUR (pv));
	if (SvUTF8 (pv)) SvUTF8_on (tv);
	}
    else
	sv_setpvn (tv, NULL, 0);

Peek.xs  view on Meta::CPAN


    ST (0) = tv;
    XSRETURN (1);
    /* XS triplevar */

void
DDual (sv, ...)
    SV   *sv

  PROTOTYPE: $;$
  PPCODE:
    I32 gimme = GIMME_V;

    if (items > 1 && SvGMAGICAL (sv) && SvTRUE (ST (1)))
	mg_get (sv);

    EXTEND (SP, 5);
    if (SvPOK (sv) || SvPOKp (sv)) {
	SV *xv = newSVpv (SvPVX (sv), 0);
	if (SvUTF8 (sv)) SvUTF8_on (xv);
	mPUSHs (xv);

Peek.xs  view on Meta::CPAN


    if (gimme == G_VOID) _Dump_Dual (aTHX_ sv, ST (0), ST (1), ST (2), ST (3));
    /* XS DDual */

void
DGrow (sv, size)
    SV     *sv
    IV      size

  PROTOTYPE: $$
  PPCODE:
    if (SvROK (sv))
	sv = SvRV (sv);
    if (!SvPOK (sv))
	sv_setpvn (sv, "", 0);
    SvGROW (sv, size);
    EXTEND (SP, 1);
    mPUSHi (SvLEN (sv));
    /* XS DGrow */

void
DDump_XS (sv)
    SV   *sv

  PROTOTYPE: $
  PPCODE:
    SV   *dd = _DDump (aTHX_ sv);

    if (dd) {
	ST (0) = dd;
	XSRETURN (1);
	}

    XSRETURN (0);
    /* XS DDump */

void
DDump_IO (io, sv, level)
    PerlIO *io
    SV     *sv
    IV      level

  PPCODE:
    do_sv_dump (0, io, sv, 1, level, 1, 0);
    XSRETURN (1);
    /* XS DDump */



( run in 0.564 second using v1.01-cache-2.11-cpan-71847e10f99 )