diff base/src/java/nonstandard/Locale.d @ 120:536e43f63c81

Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661 ===D2=== * added [Try]Immutable/Const/Shared templates to work with differenses in D1/D2 instead of version statements used these templates to work with strict type storage rules of dmd-2.053 * com.ibm.icu now also compilable with D2, but not tested yet * small fixes Snippet288 - shared data is in TLS ===Phobos=== * fixed critical bugs in Phobos implemention completely incorrect segfault prone fromStringz (Linux's port ruthless killer) terrible, incorrect StringBuffer realization (StyledText killer) * fixed small bugs as well Snippet72 - misprint in the snippet * implemented missed functionality for Phobos ByteArrayOutputStream implemented (image loading available) formatting correctly works for all DWT's cases As a result, folowing snippets now works with Phobos (Snippet### - what is fixed): Snippet24, 42, 111, 115, 130, 235, 276 - bad string formatting Snippet48, 282 - crash on image loading Snippet163, 189, 211, 213, 217, 218, 222 - crash on copy/cut in StyledText Snippet244 - hang-up ===Tango=== * few changes for the latest Tango trunc-r5661 * few small performance improvments ===General=== * implMissing-s for only one version changed to implMissingInTango/InPhobos * incorrect calls to Format in toString-s fixed * fixed loading \uXXXX characters in ResourceBundle * added good UTF-8 support for StyledText, TextLayout (Win32) and friends UTF functions revised and tested. It is now in java.nonstandard.*Utf modules StyledText and TextLayout (Win32) modules revised for UTF-8 support * removed small diferences in most identical files in *.swt.* folders *.swt.internal.image, *.swt.events and *.swt.custom are identical in Win32/Linux32 now 179 of 576 (~31%) files in *.swt.* folders are fully identical * Win32: snippets now have right subsystem, pretty icons and native system style controls * small fixes in snippets Snippet44 - it's not Snippet44 Snippet212 - functions work with different images and offsets arrays Win32: Snippet282 - crash on close if the button has an image Snippet293 - setGrayed is commented and others Win32: As a result, folowing snippets now works Snippet68 - color doesn't change Snippet163, 189, 211, 213, 217, 218, 222 - UTF-8 issues (see above) Snippet193 - no tabel headers
author Denis Shelomovskij <verylonglogin.reg@gmail.com>
date Sat, 09 Jul 2011 15:50:20 +0300
parents 3daece18b48e
children
line wrap: on
line diff
--- a/base/src/java/nonstandard/Locale.d	Sun Apr 17 17:58:36 2011 +0200
+++ b/base/src/java/nonstandard/Locale.d	Sat Jul 09 15:50:20 2011 +0300
@@ -14,71 +14,71 @@
 } else { // Phobos
     private import std.conv;
     private import std.exception;
-}
-version (Windows) {
-    private import std.c.string;
-    private import std.c.windows.windows;
-    private bool W_VERSION;
-    static this() {
-        W_VERSION = GetVersion < 0x80000000;
-    }
-    private extern (Windows) {
-        enum LCID : DWORD {
-            /// The default locale for the user or process.
-            LOCALE_USER_DEFAULT     = 0x0400,
-        }
-        enum LCTYPE : DWORD {
-            /// ISO639 language name.
-            LOCALE_SISO639LANGNAME  = 0x0059,
-            /// ISO3166 country name.
-            LOCALE_SISO3166CTRYNAME = 0x005A
+
+    version (Windows) {
+        private import std.c.string;
+        private import std.c.windows.windows;
+        private bool W_VERSION;
+        static this() {
+            W_VERSION = GetVersion < 0x80000000;
         }
-        /// Retrieves information about a locale specified by identifier.
-        /// See_Also: GetLocaleInfo Function (Windows)
-        ///           (http://msdn.microsoft.com/en-us/library/dd318101%28VS.85%29.aspx)
-        INT GetLocaleInfoW(
-            LCID Locale,
-            LCTYPE LCType,
-            LPWSTR lpLCData,
-            INT cchData
-        );
-        /// ditto
-        INT GetLocaleInfoA(
-            LCID Locale,
-            LCTYPE LCType,
-            LPCSTR lpLCData,
-            INT cchData
-        );
+        private extern (Windows) {
+            enum LCID : DWORD {
+                /// The default locale for the user or process.
+                LOCALE_USER_DEFAULT     = 0x0400,
+            }
+            enum LCTYPE : DWORD {
+                /// ISO639 language name.
+                LOCALE_SISO639LANGNAME  = 0x0059,
+                /// ISO3166 country name.
+                LOCALE_SISO3166CTRYNAME = 0x005A
+            }
+            /// Retrieves information about a locale specified by identifier.
+            /// See_Also: GetLocaleInfo Function (Windows)
+            ///           (http://msdn.microsoft.com/en-us/library/dd318101%28VS.85%29.aspx)
+            INT GetLocaleInfoW(
+                LCID Locale,
+                LCTYPE LCType,
+                LPWSTR lpLCData,
+                INT cchData
+            );
+            /// ditto
+            INT GetLocaleInfoA(
+                LCID Locale,
+                LCTYPE LCType,
+                LPCSTR lpLCData,
+                INT cchData
+            );
+        }
+        /// A purpose of this templete is switch of W or A in Windows.
+        private String caltureNameImpl(Char, alias GetLocalInfo)() {
+            INT len;
+            Char[] res;
+            Char[] buf;
+            len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
+                LCTYPE.LOCALE_SISO639LANGNAME, null, 0);
+            enforce(len, new Exception("LOCALE_SISO639LANGNAME (len)", __FILE__, __LINE__));
+            buf.length = len;
+            len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
+                LCTYPE.LOCALE_SISO639LANGNAME, buf.ptr, buf.length);
+            enforce(len, new Exception("LOCALE_SISO639LANGNAME", __FILE__, __LINE__));
+            res ~= buf[0 .. len - 1];
+            res ~= "-";
+            len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
+                LCTYPE.LOCALE_SISO3166CTRYNAME, null, 0);
+            enforce(len, new Exception("LOCALE_SISO3166CTRYNAME (len)", __FILE__, __LINE__));
+            buf.length = len;
+            len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
+                LCTYPE.LOCALE_SISO3166CTRYNAME, buf.ptr, buf.length);
+            enforce(len, new Exception("LOCALE_SISO3166CTRYNAME", __FILE__, __LINE__));
+            res ~= buf[0 .. len - 1];
+            return to!(String)(res);
+        }
+    } else version (Posix) {
+        private import std.process : getenv;
+        private import std.string : indexOf, replace;
     }
-    /// A purpose of this templete is switch of W or A in Windows.
-    private String caltureNameImpl(Char, alias GetLocalInfo)() {
-        INT len;
-        Char[] res;
-        Char[] buf;
-        len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
-            LCTYPE.LOCALE_SISO639LANGNAME, null, 0);
-        enforce(len, new Exception("LOCALE_SISO639LANGNAME (len)", __FILE__, __LINE__));
-        buf.length = len;
-        len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
-            LCTYPE.LOCALE_SISO639LANGNAME, buf.ptr, buf.length);
-        enforce(len, new Exception("LOCALE_SISO639LANGNAME", __FILE__, __LINE__));
-        res ~= buf[0 .. len - 1];
-        res ~= "-";
-        len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
-            LCTYPE.LOCALE_SISO3166CTRYNAME, null, 0);
-        enforce(len, new Exception("LOCALE_SISO3166CTRYNAME (len)", __FILE__, __LINE__));
-        buf.length = len;
-        len = GetLocalInfo(LCID.LOCALE_USER_DEFAULT,
-            LCTYPE.LOCALE_SISO3166CTRYNAME, buf.ptr, buf.length);
-        enforce(len, new Exception("LOCALE_SISO3166CTRYNAME", __FILE__, __LINE__));
-        res ~= buf[0 .. len - 1];
-        return to!(String)(res);
-    }
-} else version (Posix) {
-    private import std.process : getenv;
-    private import std.string : indexOf, replace;
 }
-
 /// Get a omitted calture name. for example: "en-US"
 String caltureName() {
     version(Tango){
@@ -103,8 +103,7 @@
             if (dot != -1) res = res[0 .. dot];
             return .replace(res, "_", "-");
         } else {
-            implMissing(__FILE__, __LINE__);
-            return "";
+            static assert(0);
         }
     }
 }