]> git.saurik.com Git - wxWidgets.git/commitdiff
use wxCOMPILE_TIME_ASSERT instead of the run-time checks
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 6 Feb 2002 20:11:32 +0000 (20:11 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 6 Feb 2002 20:11:32 +0000 (20:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/intl.cpp

index de62ef5bb6ef3903dcd816130e4034a1508a1057..296c3a933e1b70bf562d6a1f0a5387cb494857be 100644 (file)
@@ -88,20 +88,9 @@ typedef unsigned char size_t8;
         typedef unsigned long size_t32;
     #else
         // assume sizeof(int) == 4 - what else can we do
-        typedef unsigned int size_t32;
+        wxCOMPILE_TIME_ASSERT( sizeof(int) == 4, IntMustBeExactly4Bytes);
 
-        // ... but at least check it during run time
-        static class IntSizeChecker
-        {
-        public:
-            IntSizeChecker()
-            {
-                // Asserting a sizeof directly causes some compilers to
-                // issue a "using constant in a conditional expression" warning
-                wxASSERT_MSG( wxAssertIsEqual(sizeof(int), 4),
-                              "size_t32 is incorrectly defined!" );
-            }
-        } intsizechecker;
+        typedef unsigned int size_t32;
     #endif
 #endif // Win/!Win
 
@@ -1488,6 +1477,58 @@ bool wxLocale::AddCatalog(const wxChar *szDomain)
   }
 }
 
+// ----------------------------------------------------------------------------
+// accessors for locale-dependent data
+// ----------------------------------------------------------------------------
+
+#ifdef __WXMSW__
+
+/* static */
+wxString wxLocale::GetInfo(wxLocaleInfo index)
+{
+    wxString str;
+    wxChar buffer[256];
+    size_t count;
+    buffer[0] = wxT('\0');
+    switch (index)
+    {
+        case wxSYS_DECIMAL_SEPARATOR:
+            count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, buffer, 256);
+            if (!count)
+                str << ".";
+            else
+                str << buffer;
+            break;
+        case wxSYS_LIST_SEPARATOR:
+            count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, buffer, 256);
+            if (!count)
+                str << ",";
+            else
+                str << buffer;
+            break;
+        case wxSYS_LEADING_ZERO: // 0 means no leading zero, 1 means leading zero
+            count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILZERO, buffer, 256);
+            if (!count)
+                str << "0";
+            else
+                str << buffer;
+            break;
+        default:
+            wxFAIL_MSG("Unknown System String !");
+    }
+    return str;
+}
+
+#else // !__WXMSW__
+
+/* static */
+wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory)
+{
+    return wxEmptyString;
+}
+
+#endif // __WXMSW__/!__WXMSW__
+
 // ----------------------------------------------------------------------------
 // global functions and variables
 // ----------------------------------------------------------------------------