Mercurial > projects > dwt2
annotate com.ibm.icu/src/com/ibm/icu/mangoicu/UText.d @ 92:ebefa5c2eab4
moving ICU bindings to com.ibm.icu
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sun, 19 Apr 2009 13:49:38 +0200 |
parents | base/src/java/mangoicu/UText.d@1bf55a6eb092 |
children | 536e43f63c81 |
rev | line source |
---|---|
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 /******************************************************************************* |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 @file UString.d |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 Copyright (c) 2008 Frank Benoit |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 This software is provided 'as-is', without any express or implied |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 warranty. In no event will the authors be held liable for damages |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 of any kind arising from the use of this software. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
11 Permission is hereby granted to anyone to use this software for any |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 purpose, including commercial applications, and to alter it and/or |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 redistribute it freely, subject to the following restrictions: |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 1. The origin of this software must not be misrepresented; you must |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 not claim that you wrote the original software. If you use this |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 software in a product, an acknowledgment within documentation of |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 said product would be appreciated but is not required. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 2. Altered source versions must be plainly marked as such, and must |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 not be misrepresented as being the original software. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 3. This notice may not be removed or altered from any distribution |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 of the source. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 4. Derivative works are permitted, but they must carry this notice |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 in full and credit the original source. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 @version Initial version, July 2008 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 @author Frank |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 Note that this package and documentation is built around the ICU |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 project (http://oss.software.ibm.com/icu/). Below is the license |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 statement as specified by that software: |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 ICU License - ICU 1.8.1 and later |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 COPYRIGHT AND PERMISSION NOTICE |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 Copyright (c) 1995-2003 International Business Machines Corporation and |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 others. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 All rights reserved. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 Permission is hereby granted, free of charge, to any person obtaining a |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 copy of this software and associated documentation files (the |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 "Software"), to deal in the Software without restriction, including |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 without limitation the rights to use, copy, modify, merge, publish, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 distribute, and/or sell copies of the Software, and to permit persons |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 to whom the Software is furnished to do so, provided that the above |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 copyright notice(s) and this permission notice appear in all copies of |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 the Software and that both the above copyright notice(s) and this |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 permission notice appear in supporting documentation. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
71 WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 Except as contained in this notice, the name of a copyright holder |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 shall not be used in advertising or otherwise to promote the sale, use |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 or other dealings in this Software without prior written authorization |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 of the copyright holder. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 ---------------------------------------------------------------------- |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
79 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 All trademarks and registered trademarks mentioned herein are the |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 property of their respective owners. |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 *******************************************************************************/ |
92
ebefa5c2eab4
moving ICU bindings to com.ibm.icu
Frank Benoit <benoit@tionex.de>
parents:
27
diff
changeset
|
84 module com.ibm.icu.mangoicu.UText; |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
85 |
92
ebefa5c2eab4
moving ICU bindings to com.ibm.icu
Frank Benoit <benoit@tionex.de>
parents:
27
diff
changeset
|
86 import com.ibm.icu.mangoicu.ICU; |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 struct UText { |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
89 // UText private fields -- start |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
90 private { |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
91 uint magic = UTEXT_MAGIC; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
92 int flags = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
93 int providerProperties = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 int sizeOfStruct = UText.sizeof; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 long chunkNativeLimit = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 int extraSize = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
97 int nativeIndexingLimit = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 long chunkNativeStart = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 int chunkOffset = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 int chunkLength = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
101 wchar* chunkContents = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 void* pFuncs = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 void* pExtra = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 void* context = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 void* p = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 void* q = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
107 void* r = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
108 void* privP = null; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 long a = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 int b = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
111 int c = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
112 long privA = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
113 int privB = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
114 int privC = 0; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
115 } // UText private fields -- end |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
116 // do not add any non-static fields |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 private enum { |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 UTEXT_MAGIC = 0x345ad82c |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
121 void close(){ |
21
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
122 version(D_Version2){ |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
123 utext_close(&this); |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
124 } else { |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
125 utext_close(this); |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
126 } |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
127 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 private void ensureStatusOk( ICU.UErrorCode status ){ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 if( status !is ICU.UErrorCode.OK ){ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
130 throw new Exception( "ICU Exception" ); |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
132 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
133 void openUTF8( char[] str ){ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
134 auto status = ICU.UErrorCode.OK; |
21
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
135 version(D_Version2){ |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
136 utext_openUTF8(&this, str.ptr, str.length, status ); |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
137 } else { |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
138 utext_openUTF8(this, str.ptr, str.length, status ); |
9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents:
16
diff
changeset
|
139 } |
16
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
140 ensureStatusOk( status ); |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
142 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
144 /*********************************************************************** |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 Bind the ICU functions from a shared library. This is |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 complicated by the issues regarding D and DLLs on the |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 Windows platform |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
149 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
150 ***********************************************************************/ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
151 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 private static void* library; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
153 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
154 /*********************************************************************** |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
155 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
156 ***********************************************************************/ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
157 static extern(System){ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
158 UText * function(UText* ut) utext_close; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
159 UText * function(UText* ut, char *s, long length, inout ICU.UErrorCode status) utext_openUTF8; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
160 // UText * function(UText* ut, UChar *s, int64_t length, inout UErrorCode status) utext_openUChars; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
161 // UText * function(UText* ut, U_NAMESPACE_QUALIFIER UnicodeString *s, inout UErrorCode status) utext_openUnicodeString; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
162 // UText * function(UText* ut, U_NAMESPACE_QUALIFIER UnicodeString *s, inout UErrorCode status) utext_openConstUnicodeString; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
163 // UText * function(UText* ut, U_NAMESPACE_QUALIFIER Replaceable *rep, inout UErrorCode status) utext_openReplaceable; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
164 // UText * function(UText* ut, U_NAMESPACE_QUALIFIER CharacterIterator *ic, inout UErrorCode status) utext_openCharacterIterator; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
165 // UText * function(UText* ut, UText *src, UBool deep, UBool readOnly, inout UErrorCode status) utext_clone; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
166 // UBool function(const UText *a, const UText *b) utext_equals; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
167 // int64_t function(UText* ut) utext_nativeLength; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
168 // UBool function(UText* ut) utext_isLengthExpensive; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
169 // UChar32 function(UText* ut, int64_t nativeIndex) utext_char32At; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
170 // UChar32 function(UText* ut) utext_current32; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
171 // UChar32 function(UText* ut) utext_next32; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
172 // UChar32 function(UText* ut) utext_previous32; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
173 // UChar32 function(UText* ut, int64_t nativeIndex) utext_next32From; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 // UChar32 function(UText* ut, int64_t nativeIndex) utext_previous32From; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
175 // int64_t function(UText* ut) utext_getNativeIndex; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
176 // void function(UText* ut, int64_t nativeIndex) utext_setNativeIndex; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
177 // UBool function(UText* ut, int delta) utext_moveIndex32; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 // int64_t function(UText* ut) utext_getPreviousNativeIndex; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
179 // int function(UText* ut, int64_t nativeStart, int64_t nativeLimit, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 // UChar *dest, int destCapacity, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 // inout UErrorCode status) utext_extract; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
182 // UBool function(UText* ut) utext_isWritable; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
183 // UBool function(UText* ut) utext_hasMetaData; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 // int function(UText* ut, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 // int64_t nativeStart, int64_t nativeLimit, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
186 // UChar *replacementText, int replacementLength, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
187 // inout UErrorCode status) utext_replace; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
188 // void function(UText* ut, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
189 // int64_t nativeStart, int64_t nativeLimit, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
190 // int64_t destIndex, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
191 // UBool move, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
192 // inout UErrorCode status) utext_copy; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
193 // void function(UText* ut) utext_freeze; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
194 // UText * function(UText* ut, int extraSpace, inout UErrorCode status) utext_setup; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
195 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
196 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
197 /*********************************************************************** |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
198 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
199 ***********************************************************************/ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 static FunctionLoader.Bind[] targets = [ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 {cast(void**) &utext_close, "utext_close"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 {cast(void**) &utext_openUTF8, "utext_openUTF8"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
203 // {cast(void**) &utext_openUChars, "utext_openUChars"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
204 // {cast(void**) &utext_openUnicodeString, "utext_openUnicodeString"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
205 // {cast(void**) &utext_openConstUnicodeString, "utext_openConstUnicodeString"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
206 // {cast(void**) &utext_openReplaceable, "utext_openReplaceable"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
207 // {cast(void**) &utext_openCharacterIterator, "utext_openCharacterIterator"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
208 // {cast(void**) &utext_clone, "utext_clone"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
209 // {cast(void**) &utext_equals, "utext_equals"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
210 // {cast(void**) &utext_nativeLength, "utext_nativeLength"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
211 // {cast(void**) &utext_isLengthExpensive, "utext_isLengthExpensive"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
212 // {cast(void**) &utext_char32At, "utext_char32At"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
213 // {cast(void**) &utext_current32, "utext_current32"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
214 // {cast(void**) &utext_next32, "utext_next32"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
215 // {cast(void**) &utext_next32From, "utext_next32From"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
216 // {cast(void**) &utext_previous32, "utext_previous32"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
217 // {cast(void**) &utext_previous32From, "utext_previous32From"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
218 // {cast(void**) &utext_setNativeIndex, "utext_setNativeIndex"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
219 // {cast(void**) &utext_moveIndex32, "utext_moveIndex32"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
220 // {cast(void**) &utext_getPreviousNativeIndex, "utext_getPreviousNativeIndex"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
221 // {cast(void**) &utext_extract, "utext_extract"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
222 // {cast(void**) &utext_isWritable, "utext_isWritable"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
223 // {cast(void**) &utext_hasMetaData, "utext_hasMetaData"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
224 // {cast(void**) &utext_replace, "utext_replace"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
225 // {cast(void**) &utext_copy, "utext_copy"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
226 // {cast(void**) &utext_freeze, "utext_freeze"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
227 // {cast(void**) &utext_setup, "utext_setup"}, |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
228 ]; |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
229 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
230 /*********************************************************************** |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
231 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
232 ***********************************************************************/ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
233 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
234 static this () |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
235 { |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
236 library = FunctionLoader.bind (ICU.icuuc, targets); |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
237 //test (); |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
238 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
239 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
240 /*********************************************************************** |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
241 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
242 ***********************************************************************/ |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
243 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
244 static ~this () |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
245 { |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
246 FunctionLoader.unbind (library); |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
247 } |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
248 |
dbfb303e8fb0
first complete successful compile (win-only)
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
249 } |