diff src/screen.c @ 482:6f8b578776ab v7.0131

updated for version 7.0131
author vimboss
date Tue, 16 Aug 2005 23:01:50 +0000
parents a5fcf36ef512
children 08012a1ff8d4
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -2594,7 +2594,7 @@ win_line(wp, lnum, startrow, endrow)
     extra_check = 0;
 #endif
 #ifdef FEAT_SYN_HL
-    if (syntax_present(wp->w_buffer))
+    if (syntax_present(wp->w_buffer) && !wp->w_buffer->b_syn_error)
     {
 	/* Prepare for syntax highlighting in this line.  When there is an
 	 * error, stop syntax highlighting. */
@@ -2602,7 +2602,7 @@ win_line(wp, lnum, startrow, endrow)
 	did_emsg = FALSE;
 	syntax_start(wp, lnum);
 	if (did_emsg)
-	    syntax_clear(wp->w_buffer);
+	    wp->w_buffer->b_syn_error = TRUE;
 	else
 	{
 	    did_emsg = save_did_emsg;
@@ -3643,7 +3643,10 @@ win_line(wp, lnum, startrow, endrow)
 					       has_spell ? &can_spell : NULL);
 
 		    if (did_emsg)
-			syntax_clear(wp->w_buffer);
+		    {
+			wp->w_buffer->b_syn_error = TRUE;
+			has_syntax = FALSE;
+		    }
 		    else
 			did_emsg = save_did_emsg;