diff options
| author | nyamatongwe <unknown> | 2010-04-30 06:58:46 +0000 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2010-04-30 06:58:46 +0000 | 
| commit | 03583d15f483886327216abe0b76a26c88ddfea9 (patch) | |
| tree | a299fdca1a8527d73149cb2073d85233b10787ce /src | |
| parent | aff97b192694d5f150eb6336f8624b74e68a2ef6 (diff) | |
| download | scintilla-mirror-03583d15f483886327216abe0b76a26c88ddfea9.tar.gz | |
Fix bug #2994224 CSS @font-face displayed incorrectly
Diffstat (limited to 'src')
| -rw-r--r-- | src/LexCSS.cxx | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/src/LexCSS.cxx b/src/LexCSS.cxx index 25f974e63..f63103de3 100644 --- a/src/LexCSS.cxx +++ b/src/LexCSS.cxx @@ -141,9 +141,9 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo  					sc.SetState(SCE_CSS_TAG);  				break;  			case '{': -				if (lastState == SCE_CSS_DIRECTIVE) +				if (lastState == SCE_CSS_MEDIA)  					sc.SetState(SCE_CSS_DEFAULT); -				else if (lastState == SCE_CSS_TAG) +				else if (lastState == SCE_CSS_TAG || lastState == SCE_CSS_DIRECTIVE)  					sc.SetState(SCE_CSS_IDENTIFIER);  				break;  			case '}': @@ -220,7 +220,8 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo  			sc.state == SCE_CSS_PSEUDOCLASS || sc.state == SCE_CSS_PSEUDOELEMENT ||  			sc.state == SCE_CSS_EXTENDED_PSEUDOCLASS || sc.state == SCE_CSS_EXTENDED_PSEUDOELEMENT ||  			sc.state == SCE_CSS_UNKNOWN_PSEUDOCLASS || -			sc.state == SCE_CSS_IMPORTANT +			sc.state == SCE_CSS_IMPORTANT || +			sc.state == SCE_CSS_DIRECTIVE  		)) {  			char s[100];  			sc.GetCurrentLowered(s, sizeof(s)); @@ -264,6 +265,10 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo  				if (strcmp(s2, "important") != 0)  					sc.ChangeState(SCE_CSS_VALUE);  				break; +			case SCE_CSS_DIRECTIVE: +				if (op == '@' && strcmp(s2, "media") == 0) +					sc.ChangeState(SCE_CSS_MEDIA); +				break;  			}  		} @@ -288,7 +293,7 @@ static void ColouriseCssDoc(unsigned int startPos, int length, int initStyle, Wo  		} else if (IsCssOperator(sc.ch)  			&& (sc.state != SCE_CSS_ATTRIBUTE || sc.ch == ']')  			&& (sc.state != SCE_CSS_VALUE || sc.ch == ';' || sc.ch == '}' || sc.ch == '!') -			&& (sc.state != SCE_CSS_DIRECTIVE || sc.ch == ';' || sc.ch == '{') +			&& ((sc.state != SCE_CSS_DIRECTIVE && sc.state != SCE_CSS_MEDIA) || sc.ch == ';' || sc.ch == '{')  		) {  			if (sc.state != SCE_CSS_OPERATOR)  				lastState = sc.state; | 
