comparison base/src/java/lang/String.d @ 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 c81e3dc6b9ad
comparison
equal deleted inserted replaced
114:46539f5c5993 115:b31c27b8e86d
128 } 128 }
129 assert( ate > 0 ); 129 assert( ate > 0 );
130 assert( res.length is 1 ); 130 assert( res.length is 1 );
131 return res[0]; 131 return res[0];
132 } else { // Phobos 132 } else { // Phobos
133 implMissing( __FILE__, __LINE__ ); 133 size_t ate = 0;
134 return '\0'; 134 auto res = std.utf.decode(str, ate);
135
136 if (ate == 0)
137 getDwtLogger().trace( __FILE__, __LINE__, "str.length={} str={:X2}", str.length, cast(ubyte[])str );
138
139 assert(ate > 0);
140 consumed = ate;
141
142 return res;
135 } 143 }
136 } 144 }
137 dchar firstCodePoint( CString16 str, out int consumed ){ 145 dchar firstCodePoint( CString16 str, out int consumed ){
138 version(Tango){ 146 version(Tango){
139 dchar[1] buf; 147 dchar[1] buf;
145 } 153 }
146 assert( ate > 0 ); 154 assert( ate > 0 );
147 assert( res.length is 1 ); 155 assert( res.length is 1 );
148 return res[0]; 156 return res[0];
149 } else { // Phobos 157 } else { // Phobos
150 implMissing( __FILE__, __LINE__ ); 158 size_t ate = 0;
151 return '\0'; 159 auto res = std.utf.decode(str, ate);
160
161 if (ate == 0)
162 getDwtLogger().trace( __FILE__, __LINE__, "str.length={} str={:X2}", str.length, cast(ubyte[])str );
163
164 assert(ate > 0);
165 consumed = ate;
166
167 return res;
152 } 168 }
153 } 169 }
154 170
155 String dcharToString( dchar key ){ 171 String dcharToString( dchar key ){
156 version(Tango){ 172 version(Tango){