dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Globalization CompareI


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/runtime/System/Globalization CompareInfo.cs,1.5,1.6 CultureInfo.cs,1.12,1.13
Date: Wed, 13 Nov 2002 23:04:20 -0500

Update of /cvsroot/dotgnu-pnet/pnetlib/runtime/System/Globalization
In directory subversions:/tmp/cvs-serv4455/runtime/System/Globalization

Modified Files:
        CompareInfo.cs CultureInfo.cs 
Log Message:


Resolve some circularity problems with the initialization of "CurrentCulture".


Index: CompareInfo.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/runtime/System/Globalization/CompareInfo.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** CompareInfo.cs      14 Nov 2002 03:17:10 -0000      1.5
--- CompareInfo.cs      14 Nov 2002 04:04:16 -0000      1.6
***************
*** 86,90 ****
                                        throw new 
ArgumentNullException("culture");
                                }
!                               return 
GetCompareInfo(CultureInfo.MapNameToID(culture));
                        }
        public static CompareInfo GetCompareInfo(int culture, Assembly assembly)
--- 86,90 ----
                                        throw new 
ArgumentNullException("culture");
                                }
!                               return 
GetCompareInfo(CultureInfo.MapNameToID(culture, true));
                        }
        public static CompareInfo GetCompareInfo(int culture, Assembly assembly)

Index: CultureInfo.cs
===================================================================
RCS file: 
/cvsroot/dotgnu-pnet/pnetlib/runtime/System/Globalization/CultureInfo.cs,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** CultureInfo.cs      14 Nov 2002 03:26:02 -0000      1.12
--- CultureInfo.cs      14 Nov 2002 04:04:16 -0000      1.13
***************
*** 33,36 ****
--- 33,37 ----
        private static CultureInfo invariantCulture;
        private static CultureInfo currentCulture;
+       private static bool gettingCurrent;
  
        // Internal state.
***************
*** 71,75 ****
                                {
                                        cultureID   = culture;
!                                       cultureName = 
CultureNameTable.GetNameInfoByID(0x0C0A);
                                }
                                else if(culture == 0x007F)
--- 72,78 ----
                                {
                                        cultureID   = culture;
!                                       cultureName = 
CultureNameTable.GetNameInfoByID
!                                               (0x0C0A, true);
!                                       handler = 
_I18NCultureHandler.GetCultureHandler(cultureID);
                                }
                                else if(culture == 0x007F)
***************
*** 85,92 ****
                                {
                                        cultureID   = culture;
!                                       cultureName = 
CultureNameTable.GetNameInfoByID(culture);
                                }
                                userOverride = useUserOverride;
-                               handler = 
_I18NCultureHandler.GetCultureHandler(cultureID);
                        }
        public CultureInfo(String name, bool useUserOverride)
--- 88,96 ----
                                {
                                        cultureID   = culture;
!                                       cultureName = 
CultureNameTable.GetNameInfoByID
!                                               (culture, true);
!                                       handler = 
_I18NCultureHandler.GetCultureHandler(cultureID);
                                }
                                userOverride = useUserOverride;
                        }
        public CultureInfo(String name, bool useUserOverride)
***************
*** 96,100 ****
                                        throw new ArgumentNullException("name");
                                }
!                               cultureName = 
CultureNameTable.GetNameInfoByName(name);
                                cultureID   = cultureName.cultureID;
                                userOverride = useUserOverride;
--- 100,104 ----
                                        throw new ArgumentNullException("name");
                                }
!                               cultureName = 
CultureNameTable.GetNameInfoByName(name, true);
                                cultureID   = cultureName.cultureID;
                                userOverride = useUserOverride;
***************
*** 138,141 ****
--- 142,152 ----
                                                        return currentCulture;
                                                }
+                                               if(gettingCurrent)
+                                               {
+                                                       // We were recursively 
called during initialization,
+                                                       // so return the 
invariant culture for now.
+                                                       return InvariantCulture;
+                                               }
+                                               gettingCurrent = true;
                                                int id = InternalCultureID();
                                                if(id <= 0)
***************
*** 144,155 ****
                                                        // engine doesn't know 
about culture ID's.
                                                        String name = 
InternalCultureName();
!                                                       try
!                                                       {
!                                                               id = 
MapNameToID(name);
!                                                       }
!                                                       catch(ArgumentException)
!                                                       {
!                                                               id = -1;
!                                                       }
                                                }
                                                if(id <= 0 ||
--- 155,159 ----
                                                        // engine doesn't know 
about culture ID's.
                                                        String name = 
InternalCultureName();
!                                                       id = MapNameToID(name, 
false);
                                                }
                                                if(id <= 0 ||
***************
*** 163,166 ****
--- 167,171 ----
                                                        currentCulture.readOnly 
= true;
                                                }
+                                               gettingCurrent = false;
                                                return currentCulture;
                                        }
***************
*** 578,586 ****
  
        // Map a culture name to an identifier.
!       internal static int MapNameToID(String name)
                        {
                                CultureName cultureName =
!                                       
CultureNameTable.GetNameInfoByName(name);
!                               return cultureName.cultureID;
                        }
  
--- 583,598 ----
  
        // Map a culture name to an identifier.
!       internal static int MapNameToID(String name, bool throwOnError)
                        {
                                CultureName cultureName =
!                                       
CultureNameTable.GetNameInfoByName(name, throwOnError);
!                               if(cultureName != null)
!                               {
!                                       return cultureName.cultureID;
!                               }
!                               else
!                               {
!                                       return 0;
!                               }
                        }
  





reply via email to

[Prev in Thread] Current Thread [Next in Thread]