Acme-Goto-Line

 view release on metacpan or  search on metacpan

Line.xs  view on Meta::CPAN

    return 0;
  if(op->op_type == OP_NEXTSTATE) {
      COP* cop = (COP*) op;
      //      printf("Matching line %d == %d \n", cop->cop_line, line);
      if(cop->cop_line == line) {
	//	printf("Matched line %d\n", line);
	PL_op = op;
	return 1;
      }    
  }
  if(op && op->op_flags & OPf_KIDS) {
    UNOP* uop = (UNOP*) op;
    OP* kid;
    for(kid = uop->op_first; kid; kid = kid->op_sibling) {
      IV ret = acme_goto_line_walkop(kid, line);
      if(ret)
	return 1;
    }
  }
    return 0;
}

Line.xs  view on Meta::CPAN

  } else {
    op = CvROOT(caller);
  }
  acme_goto_line_walkop(op, line);
}

OP* acme_goto_line_newgoto(aTHX_) {
  dSP;
  IV line;

  if(PL_op->op_flags & OPf_STACKED) {
    SV* top = POPs;
    line = SvIV(top);
    PUSHs(top);
  } else {
    char* label = cPVOP->op_pv;
    SV* temp = newSVpv(label,0);
    line = SvIV(temp);
    SvREFCNT_dec(temp);
  }

ppport.h  view on Meta::CPAN

#  define PTR2ul(p)     INT2PTR(unsigned long,p)        
#endif

#endif /* !INT2PTR */

#ifndef boolSV
#	define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
#endif

#ifndef gv_stashpvn
#	define gv_stashpvn(str,len,flags) gv_stashpv(str,flags)
#endif

#ifndef newSVpvn
#	define newSVpvn(data,len) ((len) ? newSVpv ((data), (len)) : newSVpv ("", 0))
#endif

#ifndef newRV_inc
/* Replace: 1 */
#	define newRV_inc(sv) newRV(sv)
/* Replace: 0 */



( run in 3.795 seconds using v1.01-cache-2.11-cpan-94b05bcf43c )