Mercurial > vim
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; |