Mercurial > projects > qtd
annotate d2/qtd/String.d @ 407:eb959324f82a
merge
author | Eldar Insafutdinov |
---|---|
date | Fri, 18 Mar 2011 00:31:03 +0000 |
parents | 185df9220ea7 |
children |
rev | line source |
---|---|
188 | 1 /** |
2 * | |
3 * Copyright: Copyright QtD Team, 2008-2009 | |
4 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a> | |
5 * | |
6 * Copyright QtD Team, 2008-2009 | |
7 * Distributed under the Boost Software License, Version 1.0. | |
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 * | |
10 */ | |
11 | |
356 | 12 module qtd.String; |
188 | 13 |
357
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
14 import |
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
15 core.stdc.string, |
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
16 qtd.Core; |
218 | 17 import std.utf : toUTF8; |
188 | 18 |
247 | 19 alias immutable(char)* stringz; |
20 alias const(char)* cstringz; | |
21 | |
350
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
22 /** |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
23 */ |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
24 static char** toStringzArray(string[] args) |
188 | 25 { |
26 if ( args is null ) | |
27 { | |
28 return null; | |
29 } | |
30 char** argv = (new char*[args.length]).ptr; | |
31 int argc = 0; | |
32 foreach (string p; args) | |
33 { | |
34 argv[argc++] = cast(char*)(p.dup~'\0'); | |
35 } | |
36 argv[argc] = null; | |
254 | 37 |
188 | 38 return argv; |
39 } | |
40 | |
350
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
41 /** |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
42 */ |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
43 bool isDigit(char s) |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
44 { |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
45 return (s >= '0' && s <= '9'); |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
46 } |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
47 |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
48 /** |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
49 */ |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
50 bool isOctalChar(char s) |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
51 { |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
52 return (s >= '0' && s <= '7'); |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
53 } |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
54 |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
55 /** |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
56 */ |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
57 bool isHexChar(char s) |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
58 { |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
59 return ((s >= 'a' && s <= 'f') |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
60 || (s >= 'A' && s <= 'F') |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
61 || (s >= '0' && s <= '9') |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
62 ); |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
63 } |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
64 |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
65 /** |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
66 */ |
31520b2c0b3c
Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents:
344
diff
changeset
|
67 string fromStringz(const (char) *s) |
188 | 68 { |
69 return s ? s[0 .. strlen(s)].idup : cast(string)null; | |
70 } | |
71 | |
357
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
72 mixin(qtdExport("void", "toUtf8", "wchar* arr, uint size, string* str", |
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
73 q{ |
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
74 *str = toUTF8(arr[0..size]); |
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
75 })); |
188 | 76 |
366
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
77 // to work around the standard startsWith not being runnable at compile time. |
368
185df9220ea7
Fixed startsWith. Implemented meta-object members as ranges. Freed QMetaObject from stuff that belongs to MetaClass
Max Samukha <maxter@maxter.com>
parents:
366
diff
changeset
|
78 bool startsWith(string s, string pattern) |
366
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
79 { |
368
185df9220ea7
Fixed startsWith. Implemented meta-object members as ranges. Freed QMetaObject from stuff that belongs to MetaClass
Max Samukha <maxter@maxter.com>
parents:
366
diff
changeset
|
80 return pattern.length <= s.length && s[0..pattern.length] == pattern; |
366
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
81 } |
254 | 82 |
357
9784459f0750
An attempt (failed due to optlink) to improve locality of declarations exported from QtD executables
Max Samukha <maxter@spambox.com>
parents:
356
diff
changeset
|
83 |
366
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
84 |
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
85 |
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
86 |
da4235301224
Fixed VoidFunc. Updated to dmd.2.047.
Max Samukha <maxter@spambox.com>
parents:
357
diff
changeset
|
87 |