diff --git a/engine/slc.h b/engine/slc.h index 8050ba8..564e752 100644 --- a/engine/slc.h +++ b/engine/slc.h @@ -378,7 +378,7 @@ static inline slc_state slc_word_statechange( return current_state; } -#define SLC_SET_START_STATE \ +#define SET_SLC_START \ comment_i = 0; \ multiline_i = 0; \ prefix_i = 0; \ @@ -455,7 +455,7 @@ static inline void slc( int wordname_i; char wordname[SL_MAX_WORD_NAME + 1]; - SLC_SET_START_STATE + SET_SLC_START char prevc = 0; char c = 0; @@ -517,7 +517,7 @@ static inline void slc( break; case SLC_COMMENT: - if(endsline(c)) state = SLC_START; + if(endsline(c)) { SET_SLC_START } break; case SLC_MULTILINE_COMMENT: state = slc_multiline_comment_statechange_out( @@ -525,6 +525,7 @@ static inline void slc( c, multiline_comment_closer, &multiline_i); + if(state == SLC_START) { SET_SLC_START } break; case SLC_DEF_NAME: // TODO @@ -539,7 +540,7 @@ static inline void slc( break; case SLC_SYN_ERROR: /* Recover from slc syntax errors at endlines for now */ - if(endsline(c)) state = SLC_START; + if(endsline(c)) { SET_SLC_START } break; }