comparison com.ibm.icu/src/com/ibm/icu/mangoicu/UEnumeration.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 ebefa5c2eab4
children
comparison
equal deleted inserted replaced
119:d00e8db0a568 120:536e43f63c81
193 If the native service string is a char* string, it is 193 If the native service string is a char* string, it is
194 converted to UChar* with the invariant converter. 194 converted to UChar* with the invariant converter.
195 195
196 ***********************************************************************/ 196 ***********************************************************************/
197 197
198 bool next (inout wchar[] dst) 198 bool next (ref wchar[] dst)
199 { 199 {
200 ICU.UErrorCode e; 200 ICU.UErrorCode e;
201 uint len; 201 uint len;
202 202
203 wchar* p = uenum_unext (handle, &len, e); 203 wchar* p = uenum_unext (handle, &len, e);
214 complicated by the issues regarding D and DLLs on the 214 complicated by the issues regarding D and DLLs on the
215 Windows platform 215 Windows platform
216 216
217 ***********************************************************************/ 217 ***********************************************************************/
218 218
219 private static void* library; 219 mixin(genICUNative!("uc"
220 220 ,"void function (Handle)", "uenum_close"
221 /*********************************************************************** 221 ,"uint function (Handle, ref UErrorCode)", "uenum_count"
222 222 ,"void function (Handle, ref UErrorCode)", "uenum_reset"
223 ***********************************************************************/ 223 ,"char* function (Handle, uint*, ref UErrorCode)", "uenum_next"
224 224 ,"wchar* function (Handle, uint*, ref UErrorCode)", "uenum_unext"
225 private static extern (C) 225 ));
226 {
227 void function (Handle) uenum_close;
228 uint function (Handle, inout UErrorCode) uenum_count;
229 void function (Handle, inout UErrorCode) uenum_reset;
230 char* function (Handle, uint*, inout UErrorCode) uenum_next;
231 wchar* function (Handle, uint*, inout UErrorCode) uenum_unext;
232 }
233
234 /***********************************************************************
235
236 ***********************************************************************/
237
238 static FunctionLoader.Bind[] targets =
239 [
240 {cast(void**) &uenum_close, "uenum_close"},
241 {cast(void**) &uenum_count, "uenum_count"},
242 {cast(void**) &uenum_reset, "uenum_reset"},
243 {cast(void**) &uenum_next, "uenum_next"},
244 {cast(void**) &uenum_unext, "uenum_unext"},
245 ];
246
247 /***********************************************************************
248
249 ***********************************************************************/
250
251 static this ()
252 {
253 library = FunctionLoader.bind (icuuc, targets);
254 }
255
256 /***********************************************************************
257
258 ***********************************************************************/
259
260 static ~this ()
261 {
262 FunctionLoader.unbind (library);
263 }
264 } 226 }