File tree Expand file tree Collapse file tree 2 files changed +20
-0
lines changed
Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Original file line number Diff line number Diff line change 7676# define EXTERN_C
7777#endif
7878
79+ #if (PERL_REVISION == 5 ) && (PERL_VERSION >= 14 ) && defined(_MSC_VER )
80+ /* Using PL_errgv to get the error message after perl_eval_sv() causes a crash
81+ * with MSVC and Perl version 5.14. */
82+ # define AVOID_PL_ERRGV
83+ #endif
84+
7985/* Compatibility hacks over */
8086
8187static PerlInterpreter * perl_interp = NULL ;
@@ -796,7 +802,11 @@ ex_perl(eap)
796802
797803 SvREFCNT_dec (sv );
798804
805+ #ifdef AVOID_PL_ERRGV
806+ err = SvPV (perl_get_sv ("@" , GV_ADD ), length );
807+ #else
799808 err = SvPV (GvSV (PL_errgv ), length );
809+ #endif
800810
801811 FREETMPS ;
802812 LEAVE ;
@@ -866,7 +876,11 @@ ex_perldo(eap)
866876 sv_catpvn (sv , "}" , 1 );
867877 perl_eval_sv (sv , G_DISCARD | G_NOARGS );
868878 SvREFCNT_dec (sv );
879+ #ifdef AVOID_PL_ERRGV
880+ str = SvPV (perl_get_sv ("@" , GV_ADD ), length );
881+ #else
869882 str = SvPV (GvSV (PL_errgv ), length );
883+ #endif
870884 if (length )
871885 goto err ;
872886
@@ -880,7 +894,11 @@ ex_perldo(eap)
880894 sv_setpv (GvSV (PL_defgv ), (char * )ml_get (i ));
881895 PUSHMARK (sp );
882896 perl_call_pv ("VIM::perldo" , G_SCALAR | G_EVAL );
897+ #ifdef AVOID_PL_ERRGV
898+ str = SvPV (perl_get_sv ("@" , GV_ADD ), length );
899+ #else
883900 str = SvPV (GvSV (PL_errgv ), length );
901+ #endif
884902 if (length )
885903 break ;
886904 SPAGAIN ;
Original file line number Diff line number Diff line change @@ -714,6 +714,8 @@ static char *(features[]) =
714714
715715static int included_patches [] =
716716{ /* Add new patch number below this line */
717+ /**/
718+ 623 ,
717719/**/
718720 622 ,
719721/**/
You can’t perform that action at this time.
0 commit comments