Mercurial > projects > qtd
diff d2/qtd/String.d @ 356:12cec2d14e1c
a better name for qtd.Str
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Tue, 25 May 2010 20:14:04 +0300 |
parents | d2/qtd/Str.d@31520b2c0b3c |
children | 9784459f0750 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/d2/qtd/String.d Tue May 25 20:14:04 2010 +0300 @@ -0,0 +1,76 @@ +/** + * + * Copyright: Copyright QtD Team, 2008-2009 + * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a> + * + * Copyright QtD Team, 2008-2009 + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file boost-license-1.0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + * + */ + +module qtd.String; + +import core.stdc.string; +import std.utf : toUTF8; + +alias immutable(char)* stringz; +alias const(char)* cstringz; + +/** + */ +static char** toStringzArray(string[] args) +{ + if ( args is null ) + { + return null; + } + char** argv = (new char*[args.length]).ptr; + int argc = 0; + foreach (string p; args) + { + argv[argc++] = cast(char*)(p.dup~'\0'); + } + argv[argc] = null; + + return argv; +} + +/** + */ +bool isDigit(char s) +{ + return (s >= '0' && s <= '9'); +} + +/** + */ +bool isOctalChar(char s) +{ + return (s >= '0' && s <= '7'); +} + +/** + */ +bool isHexChar(char s) +{ + return ((s >= 'a' && s <= 'f') + || (s >= 'A' && s <= 'F') + || (s >= '0' && s <= '9') + ); +} + +/** + */ +string fromStringz(const (char) *s) +{ + return s ? s[0 .. strlen(s)].idup : cast(string)null; +} + +extern(C) void qtd_toUtf8(wchar* arr, uint size, string* str) +{ + *str = toUTF8(arr[0..size]); +} + + +