comparison src/if_perl.xs @ 129:2983cde45542

updated for version 7.0044
author vimboss
date Tue, 25 Jan 2005 21:57:23 +0000
parents 3fc0f57ecb91
children 52e76e2b5b65
comparison
equal deleted inserted replaced
128:8def260d486d 129:2983cde45542
462 SvRV(rv) = ptr->perl_private; \ 462 SvRV(rv) = ptr->perl_private; \
463 SvROK_on(rv); \ 463 SvROK_on(rv); \
464 return sv_bless(rv, gv_stashpv("VI" #TNAME, TRUE)); \ 464 return sv_bless(rv, gv_stashpv("VI" #TNAME, TRUE)); \
465 } 465 }
466 466
467 /* LINTED: avoid warning: cast from pointer to integer of different size */
467 newANYrv(win_T, WIN) 468 newANYrv(win_T, WIN)
469 /* LINTED: avoid warning: cast from pointer to integer of different size */
468 newANYrv(buf_T, BUF) 470 newANYrv(buf_T, BUF)
469 471
470 /* 472 /*
471 * perl_win_free 473 * perl_win_free
472 * Remove all refences to the window to be destroyed 474 * Remove all refences to the window to be destroyed
682 perl_init(); 684 perl_init();
683 } 685 }
684 { 686 {
685 dSP; 687 dSP;
686 length = strlen((char *)eap->arg); 688 length = strlen((char *)eap->arg);
687 sv = newSV(length + sizeof("sub VIM::perldo {")-1 + 1); 689 sv = newSV(length + sizeof("sub VIM::perldo {") - 1 + 1);
688 sv_setpvn(sv, "sub VIM::perldo {", sizeof("sub VIM::perldo {")-1); 690 sv_setpvn(sv, "sub VIM::perldo {", sizeof("sub VIM::perldo {") - 1);
689 sv_catpvn(sv, (char *)eap->arg, length); 691 sv_catpvn(sv, (char *)eap->arg, length);
690 sv_catpvn(sv, "}", 1); 692 sv_catpvn(sv, "}", 1);
691 perl_eval_sv(sv, G_DISCARD | G_NOARGS); 693 perl_eval_sv(sv, G_DISCARD | G_NOARGS);
692 SvREFCNT_dec(sv); 694 SvREFCNT_dec(sv);
693 str = SvPV(GvSV(PL_errgv), length); 695 str = SvPV(GvSV(PL_errgv), length);
699 701
700 ENTER; 702 ENTER;
701 SAVETMPS; 703 SAVETMPS;
702 for (i = eap->line1; i <= eap->line2; i++) 704 for (i = eap->line1; i <= eap->line2; i++)
703 { 705 {
704 sv_setpv(GvSV(PL_defgv),(char *)ml_get(i)); 706 sv_setpv(GvSV(PL_defgv), (char *)ml_get(i));
705 PUSHMARK(sp); 707 PUSHMARK(sp);
706 perl_call_pv("VIM::perldo", G_SCALAR | G_EVAL); 708 perl_call_pv("VIM::perldo", G_SCALAR | G_EVAL);
707 str = SvPV(GvSV(PL_errgv), length); 709 str = SvPV(GvSV(PL_errgv), length);
708 if (length) 710 if (length)
709 break; 711 break;