*fix
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java
index d389d9c..62bfad1 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/DefinitionManager.java
@@ -53,7 +53,7 @@
}
public NamespaceScopeProcessor createProcessor() {
- return getCoreProcessor();
+ return new NamespaceScopeProcessor(getCoreProcessor());
}
public NamespaceScopeProcessor createNewProcessor() {
diff --git a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java
index be71301..f4c20e1 100644
--- a/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java
+++ b/tcl/plugins/org.eclipse.dltk.tcl.parser/src/org/eclipse/dltk/tcl/parser/definitions/NamespaceScopeProcessor.java
@@ -19,6 +19,7 @@
import java.util.Map;
import java.util.Set;
import java.util.Stack;
+import java.util.Map.Entry;
import org.eclipse.dltk.tcl.ast.TclCommand;
import org.eclipse.dltk.tcl.definitions.Command;
@@ -44,6 +45,15 @@
public NamespaceScopeProcessor() {
}
+ // Copy internal data.
+ public NamespaceScopeProcessor(NamespaceScopeProcessor coreProcessor) {
+ this.scopes = new HashSet(coreProcessor.scopes);
+ Map<String, Set<Command>> map = coreProcessor.commands;
+ for (Entry<String, Set<Command>> entry : map.entrySet()) {
+ commands.put(entry.getKey(), new HashSet(entry.getValue()));
+ }
+ }
+
public void addScope(Scope scope) {
if (scopes.add(scope)) {
fillCommandsMap(scope, "");