From da4c59394e12a8f18002dfad5f63fde7d87919be Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Tue, 20 Oct 2009 10:22:14 +0000 Subject: Ensure enough styles allocated when choosing a lexer. Fixes bug #2881279. --- src/ScintillaBase.cxx | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 8b6e7a4cb..344b7e296 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -481,6 +481,8 @@ void ScintillaBase::SetLexer(uptr_t wParam) { lexCurrent = LexerModule::Find(lexLanguage); if (!lexCurrent) lexCurrent = LexerModule::Find(SCLEX_NULL); + int bits = lexCurrent ? lexCurrent->GetStyleBitsNeeded() : 5; + vs.EnsureStyle((1 << bits) - 1); } void ScintillaBase::SetLexerLanguage(const char *languageName) { @@ -490,6 +492,8 @@ void ScintillaBase::SetLexerLanguage(const char *languageName) { lexCurrent = LexerModule::Find(SCLEX_NULL); if (lexCurrent) lexLanguage = lexCurrent->GetLanguage(); + int bits = lexCurrent ? lexCurrent->GetStyleBitsNeeded() : 5; + vs.EnsureStyle((1 << bits) - 1); } void ScintillaBase::Colourise(int start, int end) { -- cgit v1.2.3