Mercurial > projects > dwt2
annotate base/src/java/lang/String.d @ 121:dc6fc593e8d7
Update for dmd-2.054 and small fixes in java.lang.Character
author | Denis Shelomovskij <verylonglogin.reg@gmail.com> |
---|---|
date | Tue, 12 Jul 2011 11:59:58 +0300 |
parents | 536e43f63c81 |
children |
rev | line source |
---|---|
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 module java.lang.String; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 import java.lang.util; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 import java.lang.interfaces; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 import java.lang.exceptions; |
88
9e0ab372d5d8
Revert from TypeInfo/ClassInfo to java.lang.Class
Frank Benoit <benoit@tionex.de>
parents:
87
diff
changeset
|
6 import java.lang.Class; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 static import tango.stdc.stringz; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 static import tango.text.Util; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
11 static import tango.text.Unicode; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 static import tango.text.convert.Utf; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 } else { // Phobos |
112 | 14 static import std.array; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 static import std.string; |
112 | 16 static import std.conv; |
17 static import std.exception; | |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
20 alias TryImmutable!(char)[] String; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
21 alias TryImmutable!(wchar)[] String16; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
23 String new_String( String cont, int offset, int len ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
24 return _idup(cont[ offset .. offset+len ]); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
27 String new_String( String cont ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
28 return _idup(cont); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 String String_valueOf( bool v ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 return v ? "true" : "false"; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 String String_valueOf( byte v ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
36 return String_valueOf( cast(long) v ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 String String_valueOf( ubyte v ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
40 return String_valueOf( cast(uint) v ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 String String_valueOf( short v ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
44 return String_valueOf( cast(long) v ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 String String_valueOf( int v ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
48 return String_valueOf( cast(long) v ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 String String_valueOf( uint v ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 return tango.text.convert.Integer.toString(v); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 } else { // Phobos |
112 | 55 return std.conv.to!(String)(v); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 String String_valueOf( long v ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 return tango.text.convert.Integer.toString(v); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 } else { // Phobos |
112 | 63 return std.conv.to!(String)(v); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
66 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
67 String String_valueOf( float v ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
68 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
69 return tango.text.convert.Float.toString(v); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
70 } else { // Phobos |
112 | 71 return std.conv.to!(String)(v); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
72 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
73 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
74 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
75 String String_valueOf( double v ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
76 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
77 return tango.text.convert.Float.toString(v); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
78 } else { // Phobos |
112 | 79 return std.conv.to!(String)(v); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
80 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
81 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
82 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
83 String String_valueOf( dchar v ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
84 version(Tango){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
85 dchar[1] buf = v; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
86 return tango.text.convert.Utf.toString( buf ); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
87 } else { // Phobos |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
88 return std.conv.to!(String)(v); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
89 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
90 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
91 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
92 String dcharToString( dchar v ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
93 return String_valueOf(v); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
94 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
95 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
96 String String_valueOf( char[] v ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
97 return _idup(v); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
98 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
99 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
100 String String_valueOf( char[] v, int offset, int len ){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
101 return _idup(v[ offset .. offset+len ]); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
102 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
103 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
104 String String_valueOf( Object v ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
105 return v is null ? "null" : v.toString(); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
106 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
107 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
108 String String_valueOf( in wchar[] wstr ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
109 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
110 return tango.text.convert.Utf.toString(wstr); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
111 } else { // Phobos |
112 | 112 return std.conv.to!(String)(wstr); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
113 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
114 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
115 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
116 int length( String str ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
117 return str.length; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
118 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
119 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
120 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
121 public String toUpperCase( String str ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
122 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
123 return tango.text.Unicode.toUpper( str ); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
124 } else { // Phobos |
121
dc6fc593e8d7
Update for dmd-2.054 and small fixes in java.lang.Character
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
120
diff
changeset
|
125 return cast(String) std.string.toUpper( str ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
126 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
127 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
128 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
129 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
130 public String replaceFirst( String str, String regex, String replacement ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
131 implMissing(__FILE__,__LINE__); |
39
0ecb2b338560
further work on phobosification
Frank Benoit <benoit@tionex.de>
parents:
27
diff
changeset
|
132 return null; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
133 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
134 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
135 version(Tango) int tangoToJavaIdx(T)(int idx, T[] arr) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
136 return idx is arr.length ? -1 : idx; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
137 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
138 |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
139 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
140 public int indexOf( in char[] str, char searched ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
141 version(Tango){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
142 return tangoToJavaIdx(tango.text.Util.locate( str, searched ), str); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
143 } else { // Phobos |
112 | 144 return std.string.indexOf(str, searched); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
145 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
146 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
147 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
148 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
149 public int indexOf( in char[] str, char searched, int fromIndex ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
150 if(fromIndex >= str.length) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
151 return -1; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
152 version(Tango){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
153 return tangoToJavaIdx(tango.text.Util.locate( str, searched, fromIndex ), str); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
154 } else { // Phobos |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
155 int res = std.string.indexOf(str[fromIndex .. $], searched); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
156 if (res !is -1) res += fromIndex; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
157 return res; |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
158 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
159 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
160 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
161 /// Extension to String |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
162 public int indexOf(in char[] str, in char[] sub){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
163 return indexOf( str, sub, 0 ); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
164 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
165 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
166 /// Extension to String |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
167 public int indexOf(in char[] str, in char[] sub, int fromIndex){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
168 if(fromIndex + sub.length > str.length) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
169 return -1; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
170 if(!sub.length) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
171 return fromIndex; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
172 version(Tango){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
173 return tangoToJavaIdx(tango.text.Util.locatePattern( str, sub, fromIndex ), str); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
174 } else { // Phobos |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
175 int res = std.string.indexOf(str[fromIndex .. $], sub); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
176 if (res !is -1) res += fromIndex; |
112 | 177 return res; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
178 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
179 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
180 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
181 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
182 public int lastIndexOf(in char[] str, char ch){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
183 return lastIndexOf( str, ch, str.length - 1 ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
184 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
185 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
186 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
187 public int lastIndexOf(in char[] str, char ch, int fromIndex){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
188 if(fromIndex >= str.length) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
189 fromIndex = str.length - 1; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
190 version(Tango){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
191 return tangoToJavaIdx(tango.text.Util.locatePrior( str, ch, fromIndex + 1 ), str); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
192 } else { // Phobos |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
193 return std.string.lastIndexOf(str[0 .. fromIndex + 1], ch); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
194 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
195 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
196 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
197 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
198 public int lastIndexOf(in char[] str, in char[] sub ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
199 return lastIndexOf( str, sub, str.length - sub.length ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
200 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
201 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
202 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
203 public int lastIndexOf(in char[] str, in char[] sub, int fromIndex){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
204 int max = cast(int)str.length - cast(int)sub.length; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
205 if(fromIndex > max) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
206 fromIndex = max; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
207 if(!sub.length) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
208 return fromIndex; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
209 version(Tango){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
210 return tangoToJavaIdx(tango.text.Util.locatePatternPrior( str, sub, fromIndex + 1 ), str); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
211 } else { // Phobos |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
212 size_t to = fromIndex + sub.length; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
213 return std.string.lastIndexOf(str[0 .. to < $ ? to : $], sub); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
214 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
215 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
216 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
217 unittest { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
218 sizediff_t i; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
219 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
220 i = lastIndexOf("", 'a'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
221 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
222 i = lastIndexOf("def", 'a'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
223 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
224 i = lastIndexOf("abba", 'a'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
225 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
226 i = lastIndexOf("abba", 'a', 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
227 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
228 i = lastIndexOf("abba", 'a', 1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
229 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
230 i = lastIndexOf("abba", 'a', 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
231 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
232 i = lastIndexOf("abba", 'a', 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
233 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
234 i = lastIndexOf("abba", 'a', 4); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
235 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
236 i = lastIndexOf("abba", 'a', 10); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
237 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
238 i = lastIndexOf("def", 'f'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
239 assert(i == 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
240 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
241 i = lastIndexOf("", "a"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
242 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
243 i = lastIndexOf("", ""); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
244 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
245 i = lastIndexOf("abcdefcdef", "c"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
246 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
247 i = lastIndexOf("abcdefcdef", "cd"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
248 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
249 i = lastIndexOf("abcdefcdef", "cd", 5); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
250 assert(i == 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
251 i = lastIndexOf("abcdefcdef", "cd", 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
252 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
253 i = lastIndexOf("abcdefcdef", "cd", 7); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
254 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
255 i = lastIndexOf("abcdefcdef", "cd", 10); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
256 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
257 i = lastIndexOf("abcdefcdef", "x"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
258 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
259 i = lastIndexOf("abcdefcdef", "xy"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
260 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
261 i = lastIndexOf("abcdefcdef", ""); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
262 assert(i == 10); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
263 i = lastIndexOf("abcdefcdef", "", 9); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
264 assert(i == 9); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
265 i = lastIndexOf("abcabc", "abc"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
266 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
267 i = lastIndexOf("abcabc", "abc", 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
268 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
269 i = lastIndexOf("abcabc", "abc", 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
270 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
271 i = lastIndexOf("abcabc", "abc", 4); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
272 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
273 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
274 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
275 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
276 i = indexOf("", 'a'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
277 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
278 i = indexOf("def", 'a'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
279 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
280 i = indexOf("abba", 'a'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
281 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
282 i = indexOf("abba", 'a', 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
283 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
284 i = indexOf("abba", 'a', 1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
285 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
286 i = indexOf("abba", 'a', 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
287 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
288 i = indexOf("abba", 'a', 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
289 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
290 i = indexOf("abba", 'a', 4); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
291 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
292 i = indexOf("abba", 'a', 10); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
293 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
294 i = indexOf("def", 'f'); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
295 assert(i == 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
296 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
297 i = indexOf("", "a"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
298 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
299 i = indexOf("", ""); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
300 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
301 i = indexOf("abcdefcdef", "c"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
302 assert(i == 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
303 i = indexOf("abcdefcdef", "cd"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
304 assert(i == 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
305 i = indexOf("abcdefcdef", "cd", 4); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
306 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
307 i = indexOf("abcdefcdef", "cd", 5); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
308 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
309 i = indexOf("abcdefcdef", "cd", 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
310 assert(i == 6); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
311 i = indexOf("abcdefcdef", "cd", 7); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
312 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
313 i = indexOf("abcdefcdef", "cd", 10); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
314 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
315 i = indexOf("abcdefcdef", "x"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
316 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
317 i = indexOf("abcdefcdef", "xy"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
318 assert(i == -1); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
319 i = indexOf("abcdefcdef", ""); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
320 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
321 i = indexOf("abcabc", "abc"); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
322 assert(i == 0); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
323 i = indexOf("abcabc", "abc", 2); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
324 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
325 i = indexOf("abcabc", "abc", 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
326 assert(i == 3); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
327 i = indexOf("abcabc", "abc", 4); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
328 assert(i == -1); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
329 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
330 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
331 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
332 public String replaceAll( String str, String regex, String replacement ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
333 implMissing(__FILE__,__LINE__); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
334 return null; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
335 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
336 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
337 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
338 public String replace( String str, char from, char to ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
339 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
340 return tango.text.Util.replace( str.dup, from, to ); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
341 } else { // Phobos |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
342 char[1] f = from, t = to; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
343 auto res = std.array.replace(str, f[], t[]); |
112 | 344 return std.exception.assumeUnique(res); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
345 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
346 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
347 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
348 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
349 public String substring( String str, int start ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
350 return _idup(str[ start .. $ ]); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
351 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
352 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
353 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
354 public String substring( String str, int start, int end ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
355 return _idup(str[ start .. end ]); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
356 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
357 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
358 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
359 public wchar[] substring( String16 str, int start ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
360 return str[ start .. $ ].dup; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
361 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
362 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
363 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
364 public wchar[] substring( String16 str, int start, int end ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
365 return str[ start .. end ].dup; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
366 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
367 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
368 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
369 public char charAt( String str, int pos ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
370 return str[ pos ]; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
371 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
372 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
373 /// Extension to String |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
374 public void getChars( String src, int srcBegin, int srcEnd, char[] dst, int dstBegin){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
375 dst[ dstBegin .. dstBegin + srcEnd - srcBegin ] = src[ srcBegin .. srcEnd ]; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
376 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
377 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
378 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
379 public String16 toWCharArray( in char[] str ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
380 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
381 return tango.text.convert.Utf.toString16(str); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
382 } else { // Phobos |
112 | 383 return std.conv.to!(String16)(str); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
384 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
385 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
386 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
387 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
388 public char[] toCharArray( String str ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
389 return cast(char[])str; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
390 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
391 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
392 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
393 public bool endsWith( String src, String pattern ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
394 if( src.length < pattern.length ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
395 return false; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
396 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
397 return src[ $-pattern.length .. $ ] == pattern; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
398 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
399 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
400 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
401 public bool equals( in char[] src, in char[] other ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
402 return src == other; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
403 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
404 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
405 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
406 public bool equalsIgnoreCase( in char[] src, in char[] other ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
407 version(Tango) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
408 if(src.length != other.length) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
409 return false; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
410 String s1b = new char[ src.length * 2 ]; //*2, or Tango may reallocate buffers |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
411 String s2b = new char[ other.length * 2 ]; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
412 scope(exit) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
413 delete s1b; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
414 delete s2b; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
415 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
416 return tango.text.Unicode.toFold( src, s1b ) == |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
417 tango.text.Unicode.toFold( other, s2b ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
418 } else { // Phobos |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
419 return std.string.icmp(src, other) == 0; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
420 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
421 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
422 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
423 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
424 public int compareToIgnoreCase( in char[] src, in char[] other ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
425 version(Tango){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
426 String s1b = new char[ src.length * 2 ]; //*2, or Tango may reallocate buffers |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
427 String s2b = new char[ other.length * 2 ]; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
428 scope(exit) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
429 delete s1b; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
430 delete s2b; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
431 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
432 return compareTo( tango.text.Unicode.toFold(src, s1b), |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
433 tango.text.Unicode.toFold(other, s2b)); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
434 } else { // Phobos |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
435 return std.string.icmp(src, other); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
436 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
437 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
438 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
439 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
440 public int compareTo( in char[] src, in char[] other ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
441 version(Tango){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
442 return typeid(String).compare( cast(void*)&src, cast(void*)&other ); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
443 } else { // Phobos |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
444 return std.string.cmp(src, other); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
445 } |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
446 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
447 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
448 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
449 public bool startsWith( String src, String pattern ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
450 if( src.length < pattern.length ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
451 return false; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
452 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
453 return src[ 0 .. pattern.length ] == pattern; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
454 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
455 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
456 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
457 public String toLowerCase( String src ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
458 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
459 return tango.text.Unicode.toLower( src ); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
460 } else { // Phobos |
121
dc6fc593e8d7
Update for dmd-2.054 and small fixes in java.lang.Character
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
120
diff
changeset
|
461 return cast(String) std.string.toLower(src); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
462 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
463 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
464 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
465 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
466 public hash_t toHash( String src ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
467 return typeid(String).getHash(&src); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
468 } |
84 | 469 public alias toHash String_toHash; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
470 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
471 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
472 public String trim( String str ){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
473 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
474 return tango.text.Util.trim( str ).dup; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
475 } else { // Phobos |
114 | 476 return std.string.strip( str.idup ); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
477 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
478 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
479 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
480 /// Extension to String |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
481 public String intern( String str ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
482 return _idup(str); |
25 | 483 } |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
484 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
485 version(Tango){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
486 public alias tango.stdc.stringz.toStringz toStringz; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
487 public alias tango.stdc.stringz.toString16z toString16z; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
488 public alias tango.stdc.stringz.fromStringz fromStringz; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
489 public alias tango.stdc.stringz.fromString16z fromString16z; |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
490 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
491 /++ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
492 + This is like tango.stdc.stringz.toStringz, but in case of an empty input string, |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
493 + this function returns a pointer to a null value instead of a null ptr. |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
494 +/ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
495 public char* toStringzValidPtr( String src ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
496 if( src ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
497 return src.toStringz(); |
113
fb3aa8075988
D2 support for the linux port.
Jacob Carlborg <doob@me.com>
parents:
112
diff
changeset
|
498 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
499 else{ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
500 return "".ptr; |
113
fb3aa8075988
D2 support for the linux port.
Jacob Carlborg <doob@me.com>
parents:
112
diff
changeset
|
501 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
502 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
503 } else { // Phobos |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
504 static import std.c.string; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
505 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
506 public char* toStringzValidPtr( in char[] s ) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
507 auto copy = new char[s.length + 1]; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
508 copy[0..s.length] = s; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
509 copy[s.length] = 0; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
510 return copy.ptr; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
511 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
512 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
513 public char* toStringz( in char[] s ) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
514 return s is null ? null : toStringzValidPtr(s); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
515 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
516 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
517 public char[] fromStringz( in char* s ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
518 return s ? s[0 .. std.c.string.strlen(s)].dup : cast(char[])null; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
519 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
520 /*public string fromStringz( in char* s ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
521 return std.conv.to!(string)(s); |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
522 }*/ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
523 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
524 private size_t w_strlen(in wchar* s) { |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
525 size_t res = 0; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
526 while(*(s+res)) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
527 ++res; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
528 return res; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
529 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
530 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
531 public wchar* toString16z( in wchar[] s ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
532 if(s is null) |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
533 return null; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
534 auto copy = new wchar[s.length + 1]; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
535 copy[0..s.length] = s; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
536 copy[s.length] = 0; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
537 return copy.ptr; |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
538 } |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
539 |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
540 //Copy of std.conv.toImpl(T, S)(S s) for C-style strings |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
541 public wstring fromString16z( in wchar* s ){ |
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
542 return s ? s[0 .. w_strlen(s)].idup : cast(wstring)null; |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
543 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
544 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
545 |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
546 static String toHex(uint i){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
547 version(Tango){ |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
548 return tango.text.convert.Integer.toString(i, "x"); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
549 } else { // Phobos |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
550 return std.conv.to!(String)(i, 16); |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
551 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
552 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
553 |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
554 /++ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
555 + String in java is implementing the interface CharSequence |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
556 +/ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
557 class StringCharSequence : CharSequence { |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
558 private String str; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
559 this( String str ){ |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
560 this.str = str; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
561 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
562 char charAt(int index){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
563 return str[index]; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
564 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
565 int length(){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
566 return str.length; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
567 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
568 CharSequence subSequence(int start, int end){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
569 return new StringCharSequence( str[ start .. end ]); |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
570 } |
120
536e43f63c81
Comprehensive update for Win32/Linux32 dmd-2.053/dmd-1.068+Tango-r5661
Denis Shelomovskij <verylonglogin.reg@gmail.com>
parents:
119
diff
changeset
|
571 String toString(){ |
23
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
572 return str; |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
573 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
574 } |
aaa0a4e20edf
Added missing files to repository
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
575 |
84 | 576 class StringCls { |
88
9e0ab372d5d8
Revert from TypeInfo/ClassInfo to java.lang.Class
Frank Benoit <benoit@tionex.de>
parents:
87
diff
changeset
|
577 private static Class TYPE_; |
9e0ab372d5d8
Revert from TypeInfo/ClassInfo to java.lang.Class
Frank Benoit <benoit@tionex.de>
parents:
87
diff
changeset
|
578 public static Class TYPE(){ |
84 | 579 if( TYPE_ is null ){ |
88
9e0ab372d5d8
Revert from TypeInfo/ClassInfo to java.lang.Class
Frank Benoit <benoit@tionex.de>
parents:
87
diff
changeset
|
580 TYPE_ = Class.fromType!(char[]); |
84 | 581 } |
582 return TYPE_; | |
583 } | |
584 | |
585 } |