changeset 115:b31c27b8e86d

Added Phobos implementation of java.lang.String.firstCodePoint.
author Jacob Carlborg <doob@me.com>
date Sun, 17 Apr 2011 16:53:26 +0200
parents 46539f5c5993
children 3daece18b48e
files base/src/java/lang/String.d
diffstat 1 files changed, 20 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/base/src/java/lang/String.d	Fri Apr 08 20:12:20 2011 +0900
+++ b/base/src/java/lang/String.d	Sun Apr 17 16:53:26 2011 +0200
@@ -130,8 +130,16 @@
         assert( res.length is 1 );
         return res[0];
     } else { // Phobos
-        implMissing( __FILE__, __LINE__ );
-        return '\0';
+        size_t ate = 0;
+        auto res = std.utf.decode(str, ate);
+
+        if (ate == 0)
+            getDwtLogger().trace( __FILE__, __LINE__, "str.length={} str={:X2}", str.length, cast(ubyte[])str );
+
+        assert(ate > 0);
+        consumed = ate;
+
+        return res;
     }
 }
 dchar firstCodePoint( CString16 str, out int consumed ){
@@ -147,8 +155,16 @@
         assert( res.length is 1 );
         return res[0];
     } else { // Phobos
-        implMissing( __FILE__, __LINE__ );
-        return '\0';
+        size_t ate = 0;
+        auto res = std.utf.decode(str, ate);
+
+        if (ate == 0)
+            getDwtLogger().trace( __FILE__, __LINE__, "str.length={} str={:X2}", str.length, cast(ubyte[])str );
+
+        assert(ate > 0);
+        consumed = ate;
+
+        return res;
     }
 }