annotate d2/qtd/Str.d @ 350:31520b2c0b3c

Removed dependency on parent trait and stringof
author Max Samukha <maxter@spambox.com>
date Thu, 20 May 2010 15:49:08 +0300
parents 96a75b1e5b26
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
1 /**
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
2 *
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
3 * Copyright: Copyright QtD Team, 2008-2009
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
4 * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
5 *
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
6 * Copyright QtD Team, 2008-2009
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
7 * Distributed under the Boost Software License, Version 1.0.
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
8 * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
9 *
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
10 */
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
11
344
96a75b1e5b26 project structure changes
Max Samukha <maxter@spambox.com>
parents: 254
diff changeset
12 module qtd.Str;
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
13
350
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
14 import core.stdc.string;
218
438877e90dbe D2 windows fixes
eldar
parents: 188
diff changeset
15 import std.utf : toUTF8;
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
16
247
27497bbe62a1 Implemented qVersion, qSharedBuild. Fixes #31
maxter
parents: 218
diff changeset
17 alias immutable(char)* stringz;
27497bbe62a1 Implemented qVersion, qSharedBuild. Fixes #31
maxter
parents: 218
diff changeset
18 alias const(char)* cstringz;
27497bbe62a1 Implemented qVersion, qSharedBuild. Fixes #31
maxter
parents: 218
diff changeset
19
350
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
20 /**
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
21 */
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
22 static char** toStringzArray(string[] args)
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
23 {
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
24 if ( args is null )
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
25 {
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
26 return null;
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
27 }
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
28 char** argv = (new char*[args.length]).ptr;
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
29 int argc = 0;
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
30 foreach (string p; args)
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
31 {
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
32 argv[argc++] = cast(char*)(p.dup~'\0');
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
33 }
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
34 argv[argc] = null;
254
maxter
parents: 252
diff changeset
35
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
36 return argv;
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
37 }
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
38
350
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
39 /**
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
40 */
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
41 bool isDigit(char s)
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 return (s >= '0' && s <= '9');
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
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 bool isOctalChar(char s)
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 return (s >= '0' && s <= '7');
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
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 bool isHexChar(char s)
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 return ((s >= 'a' && s <= 'f')
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
58 || (s >= 'A' && s <= 'F')
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
59 || (s >= '0' && s <= '9')
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
60 );
31520b2c0b3c Removed dependency on parent trait and stringof
Max Samukha <maxter@spambox.com>
parents: 344
diff changeset
61 }
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 string fromStringz(const (char) *s)
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
66 {
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
67 return s ? s[0 .. strlen(s)].idup : cast(string)null;
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
68 }
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
69
254
maxter
parents: 252
diff changeset
70 extern(C) void qtd_toUtf8(wchar* arr, uint size, string* str)
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
71 {
254
maxter
parents: 252
diff changeset
72 *str = toUTF8(arr[0..size]);
188
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
73 }
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
74
7dd099050621 initial commit for D2 support
eldar
parents:
diff changeset
75
254
maxter
parents: 252
diff changeset
76