Author: gonzalo
Date: 2005-03-22 22:23:17 -0500 (Tue, 22 Mar 2005)
New Revision: 42131

Modified:
   branches/mono-1-0/mcs/class/corlib/System.Resources/ChangeLog
   branches/mono-1-0/mcs/class/corlib/System.Resources/ResourceManager.cs
Log:
2005-03-22 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>

        * ResourceManager.cs: use culture.Equals in InternalGetResourceSet().



Modified: branches/mono-1-0/mcs/class/corlib/System.Resources/ChangeLog
===================================================================
--- branches/mono-1-0/mcs/class/corlib/System.Resources/ChangeLog       
2005-03-23 03:22:49 UTC (rev 42130)
+++ branches/mono-1-0/mcs/class/corlib/System.Resources/ChangeLog       
2005-03-23 03:23:17 UTC (rev 42131)
@@ -1,3 +1,7 @@
+2005-03-22 Gonzalo Paniagua Javier <[EMAIL PROTECTED]>
+
+       * ResourceManager.cs: use culture.Equals in InternalGetResourceSet().
+
 2004-05-02  Sebastien Pouliot  <[EMAIL PROTECTED]>
 
        * ResourceManager.cs: Avoid endless recursion when a resource file

Modified: branches/mono-1-0/mcs/class/corlib/System.Resources/ResourceManager.cs
===================================================================
--- branches/mono-1-0/mcs/class/corlib/System.Resources/ResourceManager.cs      
2005-03-23 03:22:49 UTC (rev 42130)
+++ branches/mono-1-0/mcs/class/corlib/System.Resources/ResourceManager.cs      
2005-03-23 03:23:17 UTC (rev 42131)
@@ -269,6 +269,14 @@
                        }
                }
                
+               static Stream GetManifestResourceStreamNoCase (Assembly ass, 
string fn)
+               {
+                       foreach (string s in ass.GetManifestResourceNames ())
+                               if (String.Compare (fn, s, true, 
CultureInfo.InvariantCulture) == 0)
+                                       return ass.GetManifestResourceStream 
(s);
+                       return null;
+               }
+               
                protected virtual ResourceSet InternalGetResourceSet 
(CultureInfo culture, bool Createifnotexists, bool tryParents)
                {
                        ResourceSet set;
@@ -292,6 +300,9 @@
                                string filename=GetResourceFileName(culture);
                                
                                
stream=MainAssembly.GetManifestResourceStream(filename);
+                               if (stream == null)
+                                       stream = 
GetManifestResourceStreamNoCase (MainAssembly, filename);
+                               
                                if(stream==null) {
                                        /* Try a satellite assembly */
                                        Version 
sat_version=GetSatelliteContractVersion(MainAssembly);
@@ -299,6 +310,9 @@
                                        try {
                                                a = 
MainAssembly.GetSatelliteAssembly (culture, sat_version);
                                                
stream=a.GetManifestResourceStream(filename);
+                                               if (stream == null)
+                                                       stream = 
GetManifestResourceStreamNoCase (a, filename);
+                                       
                                        } catch (Exception) {} // Ignored
                                }
 
@@ -313,11 +327,13 @@
                                         * with it?
                                         */
                                        
set=(ResourceSet)Activator.CreateInstance(resourceSetType, args);
-                               } else if (culture == 
CultureInfo.InvariantCulture) {
+                               } else if (culture.Equals 
(CultureInfo.InvariantCulture)) {
                                        string msg = "Could not find any 
resource appropiate for the " +
-                                                    "specified culture or its 
parents (assembly:{0})";
+                                                    "specified culture or its 
parents. " +
+                                                    "Make sure \"{1}\" was 
correctly embedded or " +
+                                                    "linked into assembly 
\"{0}\".";
                                                     
-                                       msg = String.Format (msg, MainAssembly 
!= null ? MainAssembly.GetName ().Name : "");
+                                       msg = String.Format (msg, MainAssembly 
!= null ? MainAssembly.GetName ().Name : "", filename);
                                                            
                                        throw new 
MissingManifestResourceException (msg);
                                }

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

Reply via email to