PApp

 view release on metacpan or  search on metacpan

PApp.xs  view on Meta::CPAN

  sessionid    = gv_fetchpv ("PApp::sessionid"   , TRUE, SVt_IV);
  surlstyle    = gv_fetchpv ("PApp::surlstyle"   , TRUE, SVt_IV);
}

# the most complex piece of shit
void
surl(...)
	PROTOTYPE: @
        ALIAS:
           salternative = 1
	PPCODE:
{
        int i;
        UV xalternative;
        SV *surl;
        AV *args = newAV ();
        SV *path = 0;
        char *svp; STRLEN svl;
        int style = 1;

        if (SvIOK (GvSV (surlstyle)))

PApp.xs  view on Meta::CPAN


                    flags = 0;
                  }
              }
          }

void
find_path (path)
	SV *	path
        PROTOTYPE: $
        PPCODE:
        HV *hash;
        char *elem = find_path (path, &hash);

        EXTEND (SP, 2);
        PUSHs (sv_2mortal (newRV_inc ((SV *)hash)));
        PUSHs (sv_2mortal (newSVpv (elem, 0)));

SV *
modpath_freeze(modules)
	SV * modules

PApp.xs  view on Meta::CPAN

isobject(SV *rv)
	CODE:
        if (sv_isobject (rv))
          XSRETURN_YES;
        else
          XSRETURN_NO;

void
obj_of (SV *ref)
	PROTOTYPE: $
	PPCODE:

        if (SvROK (ref) && SvMAGICAL (SvRV (ref)))
          {
            MAGIC *mg = mg_find (SvRV (ref), PERL_MAGIC_tiedelem);

            if (mg && mg->mg_obj)
              {
                XPUSHs (newSVsv (mg->mg_obj));
                XSRETURN (1);
              }

PApp.xs  view on Meta::CPAN

MODULE = PApp		PACKAGE = agni::object

void
DESTROY(SV *rv)
	CODE:
        /* turn magic off before destruction, to ease perls job */
        SvRMAGICAL_off (SvRV (rv));

void
FETCH(SV *self, SV *key)
        PPCODE:
        agni_try_patch (Perl_pp_helem, agni_fetch_op);
{
        SV *ret;
        PUTBACK;
        ret = agni_fetch (self, key);
        SPAGAIN;
        if (ret)
          XPUSHs (ret);
}

void
STORE(SV *self, SV *key, SV *value)
        PPCODE:
        /*agni_try_patch (Perl_pp_helem, agni_store_op);*/
        PUTBACK;
        agni_store (self, key, value);
        SPAGAIN;

void
EXISTS(SV *self, SV *key)
        PPCODE:
        HV *hv = (HV*) SvRV (self);
        HV *hvt;
        char *key_ = SvPV_nolen (key);
        
        SvRMAGICAL_off (hv);

        /* check _-keys in $self and non-_-keys in $self->{_type} */
        if (key_[0] == '_')
          hvt = hv;
        else if (key_[0] >= '1' && key_[0] <= '9')
          hvt = (HV *)SvRV (*(hv_fetch (hv, ATTRp, ATTRl, 0)));
        else
          hvt = (HV *)SvRV (*(hv_fetch (hv, TYPEp, TYPEl, 0)));

        XPUSHs (sv_2mortal (newSViv (hv_exists_ent (hvt, key, 0))));

        SvRMAGICAL_on (hv);

void
DELETE(SV *self, SV *key)
        PPCODE:
        HV *hv = (HV*) SvRV (self);
        char *key_ = SvPV_nolen (key);
        SV *value;
        
        SvRMAGICAL_off (hv);

        if (key_[0] != '_' || 1)
          {
            value = hv_delete_ent (hv, key, 0, 0);

PApp.xs  view on Meta::CPAN

              XPUSHs (value);
          }

        SvRMAGICAL_on (hv);

void
NEXTKEY(self, ...)
	SV *	self
        ALIAS:
          FIRSTKEY = 1
        PPCODE:
        HV *hv = (HV*) SvRV (self);
        HV *hvt;
        HE *he;

        SvRMAGICAL_off (hv);

        hvt = (HV *)SvRV (*(hv_fetch (hv, TYPEp, TYPEl, 0)));

        if (ix)
          hv_iterinit (hvt);

Storable/Storable.xs  view on Meta::CPAN

#define InputStream		PerlIO *
#endif	/* !OutputStream */

MODULE = PApp::Storable	PACKAGE = PApp::Storable::Cxt

void
DESTROY(self)
    SV *self
PREINIT:
	stcxt_t *cxt = (stcxt_t *)SvPVX(SvRV(self));
PPCODE:
	if (kbuf)
		Safefree(kbuf);
	if (!cxt->membuf_ro && mbase)
		Safefree(mbase);
	if (cxt->membuf_ro && (cxt->msaved).arena)
		Safefree((cxt->msaved).arena);


MODULE = PApp::Storable	PACKAGE = PApp::Storable



( run in 0.757 second using v1.01-cache-2.11-cpan-5511b514fd6 )