Author: ankit
Date: 2008-01-23 14:33:08 -0500 (Wed, 23 Jan 2008)
New Revision: 93693

Modified:
   branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog
   
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
Log:
* MSBuildFileFormat.cs: Read the full list of extensions only at init
time and handle ExtensionChange.Add correctly.


Modified: branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog
===================================================================
--- branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog       
2008-01-23 19:18:34 UTC (rev 93692)
+++ branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog       
2008-01-23 19:33:08 UTC (rev 93693)
@@ -1,3 +1,8 @@
+2008-01-24  Ankit Jain  <[EMAIL PROTECTED]>
+
+       * MSBuildFileFormat.cs: Read the full list of extensions only at init
+       time and handle ExtensionChange.Add correctly.
+
 2008-01-23  Ankit Jain  <[EMAIL PROTECTED]>
 
        Fix bug#353042.

Modified: 
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
===================================================================
--- 
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
    2008-01-23 19:18:34 UTC (rev 93692)
+++ 
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
    2008-01-23 19:33:08 UTC (rev 93693)
@@ -884,26 +884,32 @@
                                return;
 
                        extensions = new List<MSBuildProjectExtension> ();
-                       OnProjectExtensionsChanged (null, null);
+                       languageTypeGuids = new Dictionary<string,string> ();
+
+                       foreach (MSBuildProjectExtension extn in 
AddinManager.GetExtensionObjects (
+                                               
"/MonoDevelop/Prj2Make/MSBuildProjectExtension", typeof 
(MSBuildProjectExtension)))
+                               AddExtension (extn);
+
+                       extensions.Add (new DefaultMSBuildProjectExtension ());
                        AddinManager.AddExtensionNodeHandler 
("/MonoDevelop/Prj2Make/MSBuildProjectExtension", OnProjectExtensionsChanged);
                }
 
                static void OnProjectExtensionsChanged (object s, 
ExtensionNodeEventArgs args)
                {
-                       extensions.Clear ();
-                       if (languageTypeGuids == null)
-                               languageTypeGuids = new 
Dictionary<string,string> ();
-                       else
-                               LanguageTypeGuids.Clear ();
-
-                       foreach (MSBuildProjectExtension extn in
-                               AddinManager.GetExtensionObjects 
("/MonoDevelop/Prj2Make/MSBuildProjectExtension", typeof 
(MSBuildProjectExtension))) {
-                               extensions.Add (extn);
-                               if (extn.IsLanguage)
-                                       LanguageTypeGuids [extn.LanguageId] = 
extn.TypeGuid;
+                       if (args.Change == ExtensionChange.Add) {
+                               MSBuildProjectExtension extn = 
(MSBuildProjectExtension) args.ExtensionObject;
+                               if (!extensions.Contains (extn))
+                                       AddExtension (extn);
                        }
-                       extensions.Add (new DefaultMSBuildProjectExtension ());
+                       //FIXME: ExtensionChange.Remove
                }
+               
+               static void AddExtension (MSBuildProjectExtension extn)
+               {
+                       extensions.Add (extn);
+                       if (extn.IsLanguage)
+                               LanguageTypeGuids [extn.LanguageId] = 
extn.TypeGuid;
+               }
 
                static Regex conditionRegex = null;
                static Regex ConditionRegex {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to