aboutsummaryrefslogtreecommitdiffhomepage
path: root/win32/ExternalLexer.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2001-05-21 11:11:14 +0000
committernyamatongwe <unknown>2001-05-21 11:11:14 +0000
commit54ccb03d29f1f1dfeba0c8d81c0c13743a862ec7 (patch)
treeee8791ea91777108d786e220244a74a3a5a656af /win32/ExternalLexer.cxx
parent877f10c2fc4bb89b4755b9cbc82977a92070c849 (diff)
downloadscintilla-mirror-54ccb03d29f1f1dfeba0c8d81c0c13743a862ec7.tar.gz
Update from Simon to make startup and finalise work properly.
Diffstat (limited to 'win32/ExternalLexer.cxx')
-rw-r--r--win32/ExternalLexer.cxx31
1 files changed, 30 insertions, 1 deletions
diff --git a/win32/ExternalLexer.cxx b/win32/ExternalLexer.cxx
index d6df40343..77c235940 100644
--- a/win32/ExternalLexer.cxx
+++ b/win32/ExternalLexer.cxx
@@ -21,6 +21,7 @@
int LexerManager::UseCount = 0;
LexerLibrary *LexerManager::first = NULL;
LexerLibrary *LexerManager::last = NULL;
+LexerManager *LexerManager::firstlm = NULL;
//------------------------------------------
//
@@ -210,7 +211,8 @@ LexerManager::LexerManager() {
UseCount++;
if (1 == UseCount) {
- EnumerateLexers();
+ firstlm = this;
+ m_bLoaded = false;
}
}
@@ -279,4 +281,31 @@ LexerManager::~LexerManager() {
last = NULL;
}
}
+ if (this == firstlm)
+ firstlm = NULL;
+}
+
+void LexerManager::Load()
+{
+ if(!m_bLoaded)
+ {
+ m_bLoaded = true;
+ EnumerateLexers();
+ }
}
+
+// Return a LexerManager, or create one and then return it.
+LexerManager *LexerManager::GetInstance() {
+ if(!firstlm)
+ firstlm = new LexerManager;
+ return firstlm;
+}
+
+LMMinder::~LMMinder()
+{
+ LexerManager *rem = LexerManager::firstlm;
+ if(rem)
+ delete rem;
+}
+
+LMMinder minder;