diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/LexNsis.cxx | 40 | 
1 files changed, 23 insertions, 17 deletions
| diff --git a/src/LexNsis.cxx b/src/LexNsis.cxx index dbaf28598..0f969bbfb 100644 --- a/src/LexNsis.cxx +++ b/src/LexNsis.cxx @@ -2,10 +2,9 @@  /** @file LexNsis.cxx   ** Lexer for NSIS   **/ -// Copyright 2003, 2004 by Angelo Mandato <angelo@spaceblue.com> -// Last Updated: 01/29/2004 +// Copyright 2003, 2004 by Angelo Mandato <angelo [at] spaceblue [dot] com> +// Last Updated: 02/22/2004  // The License.txt file describes the conditions under which this software may be distributed. -  #include <stdlib.h>  #include <string.h>  #include <ctype.h> @@ -38,7 +37,7 @@  #define SCE_NSIS_IFDEFINEDEF 11  #define SCE_NSIS_MACRODEF 12  #define SCE_NSIS_STRINGVAR 13 -#define SCE_NSIS_NUMBER 14 // NEW option +#define SCE_NSIS_NUMBER 14  */  static bool isNsisNumber(char ch) @@ -60,7 +59,7 @@ static int NsisCmp( char *s1, char *s2, bool bIgnoreCase )  {    if( bIgnoreCase )       return CompareCaseInsensitive( s1, s2); -  +    return strcmp( s1, s2 );  } @@ -198,7 +197,7 @@ static int classifyWordNsis(unsigned int start, unsigned int end, WordList *keyw          break;        }  	  } -     +      if( bHasSimpleNsisNumber )        return SCE_NSIS_NUMBER;    } @@ -223,16 +222,11 @@ static void ColouriseNsisDoc(unsigned int startPos, int length, int, WordList *k  	for( i = startPos; i < nLengthDoc; i++ )  	{  		cCurrChar = styler.SafeGetCharAt( i ); -		char cNextChar = styler.SafeGetCharAt( i+1, EOF ); +		char cNextChar = styler.SafeGetCharAt(i+1);  		switch(state)  		{  			case SCE_NSIS_DEFAULT: -        if( cNextChar == EOF ) -        { -          styler.ColourTo(i,SCE_NSIS_DEFAULT); -			    break; -        }  				if( cCurrChar == ';' || cCurrChar == '#' ) // we have a comment line  				{  					styler.ColourTo(i-1, state ); @@ -278,7 +272,7 @@ static void ColouriseNsisDoc(unsigned int startPos, int length, int, WordList *k  				}  				break;  			case SCE_NSIS_COMMENT: -				if( cNextChar == '\n' || cNextChar == '\r' || cNextChar == EOF ) +				if( cNextChar == '\n' || cNextChar == '\r' )          {  				  styler.ColourTo(i,state);            state = SCE_NSIS_DEFAULT; @@ -386,7 +380,7 @@ static void ColouriseNsisDoc(unsigned int startPos, int length, int, WordList *k        // Covers "${TEST}..."        else if( bClassicVarInString && cNextChar == '}' )        { -        styler.ColourTo( i, SCE_NSIS_STRINGVAR); +        styler.ColourTo( i+1, SCE_NSIS_STRINGVAR);  				bClassicVarInString = false;        } @@ -406,8 +400,20 @@ static void ColouriseNsisDoc(unsigned int startPos, int length, int, WordList *k  		}  	} -  if( state == SCE_NSIS_COMMENT ) -		styler.ColourTo(i,state); +  // Colourise remaining document +  switch( state ) +  { +    case SCE_NSIS_COMMENT: +    case SCE_NSIS_STRINGDQ: +    case SCE_NSIS_STRINGLQ: +    case SCE_NSIS_STRINGRQ: +    case SCE_NSIS_VARIABLE: +    case SCE_NSIS_STRINGVAR: +      styler.ColourTo(nLengthDoc-1,state); break; + +    default: +      styler.ColourTo(nLengthDoc-1,SCE_NSIS_DEFAULT); break; +  }  }  static void FoldNsisDoc(unsigned int startPos, int length, int, WordList *[], Accessor &styler) @@ -443,7 +449,7 @@ static void FoldNsisDoc(unsigned int startPos, int length, int, WordList *[], Ac          bArg1 = false;        }      } -   +      if( chCurr == '\n' )      {        // If we are on a new line... | 
